{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@depay/solana-web3.js/dist/esm/index.js","webpack:///./node_modules/@ethersproject/bytes/lib.esm/index.js","webpack:///./node_modules/@ethersproject/bytes/lib.esm/_version.js","webpack:///./node_modules/@depay/web3-blockchains/dist/esm/index.js","webpack:///./node_modules/@ethersproject/logger/lib.esm/index.js","webpack:///./node_modules/@ethersproject/logger/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/bignumber/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","webpack:///./node_modules/@ethersproject/properties/lib.esm/index.js","webpack:///./node_modules/@ethersproject/properties/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","webpack:///./node_modules/@ethersproject/keccak256/lib.esm/index.js","webpack:///./node_modules/@ethersproject/rlp/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/rlp/lib.esm/index.js","webpack:///./node_modules/@ethersproject/address/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/address/lib.esm/index.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/utf8.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/id.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/address.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/array.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/null.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/bignumbers.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/number.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/string.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/fragments.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/abi-coder.js","webpack:///./node_modules/@ethersproject/abi/lib.esm/interface.js","webpack:///./node_modules/@ethersproject/abstract-provider/lib.esm/index.js","webpack:///./node_modules/@ethersproject/abstract-provider/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/abstract-signer/lib.esm/index.js","webpack:///./node_modules/@ethersproject/abstract-signer/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/index.js","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/transactions/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/transactions/lib.esm/index.js","webpack:///./node_modules/@ethersproject/contracts/lib.esm/index.js","webpack:///./node_modules/@ethersproject/contracts/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/message.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/typed-data.js","webpack:///./node_modules/@ethersproject/basex/lib.esm/index.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/types.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/sha2/lib.esm/sha2.js","webpack:///./node_modules/@ethersproject/pbkdf2/lib.esm/pbkdf2.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/wordlist.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/lang-en.js","webpack:///./node_modules/@ethersproject/wordlists/lib.esm/wordlists.js","webpack:///./node_modules/@ethersproject/hdnode/lib.esm/index.js","webpack:///./node_modules/@ethersproject/hdnode/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/utils.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/keystore.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/crowdsale.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/inspect.js","webpack:///./node_modules/@ethersproject/json-wallets/lib.esm/index.js","webpack:///./node_modules/@ethersproject/wallet/lib.esm/index.js","webpack:///./node_modules/@ethersproject/wallet/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/addresses.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/hashes.js","webpack:///./node_modules/@ethersproject/constants/lib.esm/strings.js","webpack:///./node_modules/@ethersproject/networks/lib.esm/index.js","webpack:///./node_modules/@ethersproject/networks/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/base64/lib.esm/base64.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js","webpack:///./node_modules/@ethersproject/hash/lib.esm/namehash.js","webpack:///./node_modules/@ethersproject/web/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/web/lib.esm/geturl.js","webpack:///./node_modules/@ethersproject/web/lib.esm/index.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/formatter.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/base-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/ws.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/ankr-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js","webpack:///./node_modules/@ethersproject/random/lib.esm/shuffle.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/fallback-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/ipc-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/infura-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/pocket-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/web3-provider.js","webpack:///./node_modules/@ethersproject/providers/lib.esm/index.js","webpack:///./node_modules/@ethersproject/solidity/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/solidity/lib.esm/index.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/idna.js","webpack:///./node_modules/@ethersproject/strings/lib.esm/bytes32.js","webpack:///./node_modules/@ethersproject/units/lib.esm/_version.js","webpack:///./node_modules/@ethersproject/units/lib.esm/index.js","webpack:///./node_modules/ethers/lib.esm/_version.js","webpack:///./node_modules/ethers/lib.esm/ethers.js","webpack:///./node_modules/ethers/lib.esm/index.js","webpack:///./node_modules/@depay/web3-tokens/dist/esm/index.js","webpack:///./node_modules/@depay/web3-client/dist/esm/index.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/@depay/coinbase-wallet-sdk/dist/esm/index.js","webpack:///./node_modules/@depay/web3-wallets/dist/esm/index.js","webpack:///./node_modules/@depay/react-dialog-stack/dist/esm/index.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@depay/worldcoin-precompiled/dist/esm/index.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@depay/local-currency/dist/esm/index.js","webpack:///./node_modules/@depay/web3-exchanges/dist/esm/index.js","webpack:///./node_modules/decimal.js/decimal.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/aes-js/index.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@depay/react-token-image/dist/esm/index.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/@depay/web3-payments/dist/esm/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/scrypt-js/scrypt.js","webpack:///./node_modules/fuse.js/dist/fuse.esm.js","webpack:///./node_modules/@depay/react-dialog/dist/esm/index.js","webpack:///./node_modules/@depay/widgets/dist/esm/index.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/bech32/index.js","webpack:///./node_modules/qr-code-styling/lib/qr-code-styling.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","webpack:///./node_modules/js-sha3/src/sha3.js","webpack:///./node_modules/@ethersproject/bignumber/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/@ethersproject/random/lib.esm/_version.js","webpack:///./node_modules/@depay/walletconnect-v2/dist/esm/index.js","webpack:///./node_modules/@depay/web3-assets/dist/esm/index.js","webpack:///./node_modules/@uiw/copy-to-clipboard/dist/copy-to-clipboard.umd.js","webpack:///./node_modules/@depay/react-shadow-dom/dist/esm/index.js","webpack:///./node_modules/@depay/js-verify-signature-web/dist/esm/index.web.js","webpack:///./node_modules/@tanstack/react-virtual/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js","webpack:///./node_modules/@tanstack/virtual-core/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js","webpack:///./node_modules/@tanstack/virtual-core/build/lib/utils.esm.js","webpack:///./node_modules/@tanstack/virtual-core/build/lib/index.esm.js","webpack:///./node_modules/@tanstack/react-virtual/build/lib/index.esm.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/index.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@popperjs/core/lib/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/@ethersproject/random/lib.esm/random.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./app/javascript/packs/payment/payment.js","webpack:///./app/javascript/packs/payment/index.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof3","obj","iterator","constructor","__defineProperties","target","props","length","descriptor","configurable","writable","_global$1","global","self","window","undefined","XMLHttpRequest","instance","Constructor","TypeError","_classCallCheck3","this","protoProps","staticProps","location","crypto","getRandomValues","abv","parseInt","Math","random","toString","replace","randomBytes","size","array","Uint8Array","fetch","commonjsGlobal","globalThis","getDefaultExportFromCjs$1","x","getAugmentedNamespace","f","default","a","apply","arguments","keys","forEach","k","getOwnPropertyDescriptor","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","push","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","return","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","_typeof$1","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_classCallCheck","_defineProperties","_createClass","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Map","indexOf","has","set","Wrapper","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_superPropBase","_get","receiver","base","desc","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","minLen","test","len","arr2","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","normalCompletion","didErr","step","_e3","cjs$1","global$1","lookup","revLookup","Arr","inited","init","code","charCodeAt","encodeChunk","uint8","start","end","tmp","num","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","pow","write","rt","abs","floor","log","LN2","Buffer$1","TYPED_ARRAY_SUPPORT","_kMaxLength","kMaxLength","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","internalIsBuffer","checked","copy","val","data","fromObject","assertSize","b","_isBuffer","isView","loweredCase","utf8ToBytes$2","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","buf","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","poolSize","_augment","alloc","fill","allocUnsafeSlow","isBuffer","compare","y","concat","list","pos","swap16","swap32","swap64","equals","inspect","match","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","subarray","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","b64","placeHolders","L","toByteArray","trim","stringtrim","base64clean","src","dst","isFastBuffer","isSlowBuffer","_polyfillNode_buffer","freeze","Buffer","INSPECT_MAX_BYTES","SlowBuffer","number$1","isSafeInteger","isBytes$2","_len","lengths","_key","exists","checkFinished","destroyed","finished","outputLen","crypto$1","u32$1","Uint32Array","isBytes$1","createView","DataView","rotr","word","shift","utf8ToBytes$1","TextEncoder","encode","toBytes","concatBytes$1","sum","_i2","pad","_a","Hash","_cloneInto","wrapConstructor","hashCons","hashC","msg","update","digest","blockLen","bytesLength","SHA2","_Hash","_super","padOffset","_this","view","take","process","dataView","roundClean","setBigUint64","_32n","BigInt","_u32_max","wh","wl","h","setUint32","oview","outLen","digestInto","destroy","to","_to","U32_MASK64","fromBig","le","split","lst","Ah","Al","_fromBig2","_ref","rotlSH","rotlSL","rotlBH","rotlBL","u64$2","toBig","shrSH","_l","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","_h","rotr32L","add","Bh","Bl","add3L","Cl","add3H","low","Ch","add4L","Dl","add4H","Dh","add5H","Eh","add5L","El","_ref2","map","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","SHA512","_SHA","Fh","Fl","Gh","Gl","Hh","Hl","getUint32","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","_i4","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","_u64$add","All","_u64$add2","_u64$add3","_u64$add4","_u64$add5","_u64$add6","_u64$add7","_u64$add8","_u64$add9","sha512","_0n$5","_1n$7","_2n$5","isBytes","hexes","_","padStart","bytesToHex","hex","numberToHexUnpadded","hexToNumber","asciis","asciiToBase16","_char","hexToBytes","hl","al","ai","n1","n2","_char2","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","ensureBytes","title","expectedLength","concatBytes","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","v","reseed","seed","sl","pred","validatorFns","bigint","stringOrUint8Array","field","Fp","isValid","hash","validateObject","validators","optValidators","checkField","fieldName","isOptional","checkVal","_i3","_Object$entries","entries","_Object$entries$_i2","_Object$entries2","_Object$entries2$_i2","_fieldName","_type","ut","numberToVarBytesBE","equalBytes","diff","utf8ToBytes","bitLen","bitGet","bitSet","_0n$4","_1n$6","_2n$4","_3n$1","_4n","_5n$1","_8n$1","mod","power","modulo","pow2","invert","number","u","FpSqrt","P","p1div4","root","eql","sqr","c1","nv","ONE","Q","S","Z","legendreC","Q1div2","neg","g","ZERO","t2","ge","tonelliShanks","FIELD_FIELDS","FpPow","FpInvertBatch","nums","lastMultiplied","reduce","acc","is0","inverted","inv","reduceRight","nLength","nBitLength","_nBitLength","nByteLength","ceil","Field","ORDER","redef","_nLength","BITS","BYTES","sqrtP","MASK","isOdd","lhs","rhs","div","sqrN","addN","subN","mulN","sqrt","invertBatch","cmov","fromBytes","getFieldBytesLength","fieldOrder","bitLength","getMinHashLength","_0n$3","_1n$5","wNAF","bits","constTimeNegate","condition","item","negate","opts","W","windows","windowSize","unsafeLadder","elm","precomputeWindow","_opts","points","precomputes","_opts2","BASE","mask","maxNumber","shiftBy","wbits","offset1","offset2","cond1","cond2","wNAFCached","precomputesMap","transform","_WINDOW_SIZE","comp","validateBasic","curve","Gx","Gy","_0n$2","_1n$4","_2n$3","_8n","VERIFY_DEFAULT","zip215","twistedEdwards","curveDef","CURVE","adjustScalarBytes","domain","uvRatio","mapToCurve","CURVE_ORDER","prehash","cHash","cofactor","modP","ctx","phflag","inBig","inRange","in0MaskRange","assertInRange","assertGE0","pointPrecomputes","isPoint","other","Point","ex","ey","ez","et","toAffine","X","Y","T","X2","Y2","Z2","Z4","aX2","X1","Y1","Z1","X1Z2","X2Z1","Y1Z2","Y2Z1","A","B","C","D","x1y1","E","G","H","X3","Y3","T3","T1","T2","_A","_B","_F","_C","_D","_E","_G","_H","_X","_Y","_T","wnaf","normalizeZ","scalar","_this$wNAF","I","multiplyUnsafe","iz","z","ax","ay","zz","_this$toAffine","toRawBytes","toInv","fromAffine","normed","lastByte","y2","_uvRatio","isXOdd","isLastByteOdd","privKey","getExtendedPublicKey","point","modN","modN_LE","hashed","head","prefix","multiply","pointBytes","hashDomainToScalar","msgs","verifyOpts","_setWindowSize","utils","randomPrivateKey","precompute","getPublicKey","sign","options","_getExtendedPublicKey","R","verify","sig","publicKey","SB","fromHex","isSmallOrder","RkA","subtract","clearCofactor","ExtendedPoint","ED25519_P","ED25519_SQRT_M1","_1n$3","_2n$2","_5n","_10n","_20n","_40n","_80n","Fp$1","ed25519Defaults","v3","b2","b4","b5","b10","b20","b40","b80","b160","b240","b250","pow_p_5_8","ed25519_pow_2_252_3","vx2","root1","root2","useRoot1","useRoot2","noRoot","ed25519","ed25519_domain","ELL2_C1","FpSqrtEven","bn$2","require$$1$1","assert","inherits","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","red","_init","wordSize","parseHex4Bits","index","parseHexByte","lowerBound","parseBase","move","dest","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","toArray","w","off","_strip","limbLen","limbPow","total","imuln","_iaddn","_move","clone","_expand","_normSign","zeros","groupSizes","groupBases","padding","carry","groupSize","groupBase","isZero","modrn","idivn","toNumber","toBuffer","toArrayLike","smallMulTo","ncarry","rword","maxJ","ArrayType","reqLength","allocate","_toArrayLikeLE","position","_toArrayLikeBE","clz32","_countBits","_zeroBits","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","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","bl2","bh2","b3","bl3","bh3","bl4","bh4","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","mulTo","mulf","isNegNum","muln","isqr","toBitArray","q","iushln","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divmod","positive","divn","umod","divRound","dm","half","r2","andln","modn","egcd","isEven","yp","xp","im","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","input","mod3","one","nOne","lpow","wnd","current","currentLen","mont","BN$1","safeBuffer$1","copyProps","SafeBuffer","_Buffer$1","src$2","ALPHABET","BASE_MAP","xc","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","decode","bs58$5","Maj","SHA256_K","IV","SHA256_W","SHA256","W15","W2","s0","s1","sha256","lib$1","bn$1","safeBuffer","_Buffer","src$1","bs58$3","ToDictionary","Stream","tokens","endOfStream","prepend","token","unshift","decoderError","fatal","opt_code_point","DEFAULT_ENCODING","TextDecoder$1","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","TextEncoder$1","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","UTF8Encoder","count","temp","input_stream","code_points","cp","codePointsToString","opt_string","stringToCodePoints","require$$2","TextDecoder","__createBinding","k2","__setModuleDefault","__decorate","decorators","decorate","__importStar","__importDefault","deserializeUnchecked_1","deserializeUnchecked","deserialize_1","deserialize","serialize_1","serialize","BinaryReader","BinaryWriter","BorshError","baseDecode","baseEncode","bn_js_1","bs58_1","textDecoder","INITIAL_LENGTH","_Error","message","fieldPath","originalMessage","splice","maybeResize","writeBuffer","writeU32","_step","_iterator","elem","handlingRangeError","propertyKey","propertyDescriptor","originalMethod","readBuffer","readU32","capitalizeFirstLetter","toUpperCase","serializeField","schema","fieldType","writer","writeFixedArray","writeArray","kind","writeU8","serializeStruct","addToFieldPath","borshSerialize","structSchema","fields","idx","_structSchema$values$2","Writer","deserializeField","reader","readFixedArray","readArray","readU8","deserializeStruct","classType","borshDeserialize","_step2","_iterator2","_step2$value2","_structSchema$values$4","Reader","Layout$3","s16","s8","nu64be","u48be","u40be","u32be","u24be","u16be","nu64$1","nu64","u48","u40","u32","u24","u16","u8","offset$1","greedy","Constant","UTF8","CString","Blob","BitField","BitStructure","VariantLayout","Union","UnionLayoutDiscriminator","UnionDiscriminator","Structure","Sequence","DoubleBE","Double","FloatBE","Float","NearInt64BE","NearInt64","NearUInt64BE","NearUInt64","IntBE","Int","UIntBE","UInt","OffsetLayout","GreedyCount","ExternalLayout","bindConstructorLayout","nameWithProperty","Layout","uint8ArrayToBuffer","checkUint8Array","constant","utf8","cstr","blob$1","blob","unionLayoutDiscriminator","union","seq$1","seq","struct","f64be","f64","f32be","f32","ns64be","s48be","s40be","s32be","s24be","s16be","ns64","s48","s40","s32","s24","buffer_1","Layout$2","span","isInteger","rv","assign","nameWithProperty$1","layout","layout_","boundConstructor_","makeDestinationObject","ExternalLayout$1","_Layout","GreedyCount$1","_ExternalLayout","_super2","elementSpan","rem","OffsetLayout$1","_ExternalLayout2","_super3","_this2","UInt$1","UIntBE$1","_Layout2","_super4","_this3","_Layout3","_super5","_this4","Int$1","_Layout4","_super6","_this5","IntBE$1","_Layout5","_super7","_this6","V2E32$1","divmodInt64$1","hi32","lo32","roundedInt64$1","NearUInt64$1","_Layout6","_super8","NearUInt64BE$1","_Layout7","_super9","NearInt64$1","_Layout8","_super10","NearInt64BE$1","_Layout9","_super11","Float$1","_Layout10","_super12","FloatBE$1","_Layout11","_super13","Double$1","_Layout12","_super14","DoubleBE$1","_Layout13","_super15","Sequence$1","_Layout14","_super16","elementLayout","_this7","isCount","getSpan","elo","Structure$1","_Layout15","_super17","decodePrefixes","_this8","fd","fsp","_step3","firstOffset","lastOffset","lastWrote","_iterator3","fv","_step4","_iterator4","_step5","_iterator5","_step6","_iterator6","UnionDiscriminator$1","UnionLayoutDiscriminator$1","_UnionDiscriminator","_super18","_this9","Union$1","_Layout16","_super19","discr","defaultLayout","_this10","discriminator","replicate","usesPrefixDiscriminator","registry","boundGetSourceVariant","defaultGetSourceVariant","getSourceVariant","configGetSourceVariant","gsv","vlo","getVariant","tag","_vlo","dlo","clo","contentOffset","variant","VariantLayout$1","vb","_Layout17","_super20","_this11","fromArray","fixBitwiseResult$1","BitStructure$1","_Layout18","_super21","msb","_this12","_packedSetValue","_packedGetValue","_step7","_iterator7","_step8","_iterator8","bf","BitField$1","Boolean$2","_step9","_iterator9","container","totalBits","usedBits","valueMask","wordMask","wordValue","_BitField","_super22","Blob$1","_Layout19","_super23","_this13","srcBuffer","CString$1","_Layout20","_super24","srcb","UTF8$1","_Layout21","_super25","maxSpan","_this14","Constant$1","_Layout22","_super26","_this15","browser$1","toBigIntLE_1","toBigIntLE","reversed","toBigIntBE","toBufferLE_1","toBufferLE","toBufferBE","_excluded$1","_marked","toFailures","StructError","_TypeError","failure","failures","cached","rest","path","_cached","isIterable","isObject","print","JSON","stringify","shiftIterator","_input$next","toFailure","branch","_result","refinement","_result$message","_context","t0","run","_callee","_options$path","_options$branch","_options$coerce","coerce","_options$mask","valid","_failure","_step3$value2","ts","_context2","coercer","validator","Set","t1","refiner","t3","Struct$1","Struct","_props$coercer","_props$entries","_callee2","_context3","_assert","_create","_is","_validate","_mask","tuples","tuple","_callee3","_context4","Element","_step9$value2","_context7","_boolean","literal","description","nullable","optional","Key","Value","_context13","Elements","Never","_context15","_iterator18","_step18","_context16","Structs","_step19","_iterator19","_run3","_step20","_iterator20","unknown","_coercer","rnds8","rng","msCrypto","REGEX","validate","uuid","_nodeId","_clockseq","byteToHex","stringify$1","_lastMSecs","_lastNSecs","parse","v35","version","hashfunc","generateUUID","namespace","unescape","encodeURIComponent","stringToBytes","DNS","URL","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","cnt","md5ff","md5gg","md5hh","md5ii","length32","hexTab","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","v3$1","ROTL","v5","K","N","M","_t","_t2","v5$1","esmBrowser","v1","node","clockseq","seedBytes","msecs","Date","now","nsecs","dt","tl","tmh","v4","rnds","NIL","require$$0","uuid$1","generateRequest_1","params","id","request","jsonrpc","notificationIdNull","generateRequest","ClientBrowser","callServer","reviver","replacer","browser","callback","isBatch","isRaw","hasCallback","response","_parseResponse","responseText","isError","RpcClient","client","interopRequireDefault","hasRequired_typeof","hasRequiredRegeneratorRuntime","regenerator","hasRequiredRegenerator","regeneratorRuntime$1","_typeof","require_typeof","requireRegeneratorRuntime","hasRequiredAsyncToGenerator","asyncToGenerator","hasRequiredClassCallCheck","classCallCheck","requireClassCallCheck","hasRequiredCreateClass","createClass","requireCreateClass","hasRequiredSetPrototypeOf","hasRequiredInherits","requireSetPrototypeOf","requireInherits","hasRequiredAssertThisInitialized","hasRequiredPossibleConstructorReturn","possibleConstructorReturn","assertThisInitialized","requireAssertThisInitialized","requirePossibleConstructorReturn","hasRequiredGetPrototypeOf","requireGetPrototypeOf","hasRequiredEventemitter3","eventemitter3","requireEventemitter3","Events","EE","once","addListener","emitter","event","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","names","listeners","handlers","ee","listenerCount","emit","removeListener","on","removeAllListeners","prefixed","_interopRequireDefault","_regenerator","runtime","regeneratorRuntime","accidentalStrictMode","requireRegenerator","_asyncToGenerator2","_typeof2","_classCallCheck2","_createClass2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_eventemitter","__rest","CommonClient","_EventEmitter","_unsubscribe","_subscribe","_listMethods","_login","webSocketFactory","address","generate_request_id","_a$autoconnect","autoconnect","_a$reconnect","reconnect","_a$reconnect_interval","reconnect_interval","_a$max_reconnects","max_reconnects","rest_options","queue","rpc_id","ready","reconnect_timer_id","current_reconnects","_connect","socket","timeout","ws_opts","send","promise","setTimeout","resp","_x","_x2","_callee4","_x3","close","clearTimeout","addEventListener","notification","reason","RpcWebSocketCommonClient","websocket_browser","WebSocketBrowserImpl","protocols","WebSocket","onopen","onmessage","onerror","onclose","optionsOrCallback","cb","createRpc","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n$1","_1n$2","_2n$1","_7n","_256n","_0x71n","round","_split2","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","Keccak","suffix","enableXOF","rounds","posOut","state32","_round2","_x4","idx1","idx0","B0","B1","Th","Tl","_y2","curH","curL","_Th","_Tl","PI","_y4","_x6","_x8","keccakP","keccak","bufferOut","writeInto","xofInto","keccak_256","b2n","h2b","DER","Err","DERErr","_parseInt","toSig","_DER$_parseInt","sBytes","_DER$_parseInt2","hexFromSig","rhl","rl","_0n","_1n$1","_3n","weierstrassPoints","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","allowInfinityPoint","endo","beta","splitScalar","validatePointOpts","_c","_isCompressed","tail","weierstrassEquation","x3","isWithinCurveOrder","assertGE","normPrivateKeyToScalar","assertPrjPoint","px","py","pz","U1","U2","Z3","t4","t5","_endo$splitScalar","k1neg","k1","k2neg","k1p","k2p","fake","_endo$splitScalar3","_this$wNAF2","f1p","_this$wNAF4","f2p","_this$wNAF6","isCompressed","assertValidity","privateKey","_bits","ProjectivePoint","weierstrass","hmac","bits2int","bits2int_modN","lowS","compressedLen","uncompressedLen","invN","_weierstrassPoints","cat","hasEvenY","numToNByteStr","isBiggerThanHalfOrder","normalizeS","slcNum","Signature","recovery","msgHash","rec","radj","ir","u1","u2","multiplyAndAddUnsafe","hasHighS","toDERHex","toCompactHex","_DER$toSig","isValidPrivateKey","fieldLen","reduced","mapHashToField","isProbPub","ORDER_MASK","int2octets","prepSig","defaultSigOpts","some","ent","extraEntropy","h1int","seedArgs","k2sig","kBytes","ik","normS","defaultVerOpts","fromPrivateKey","getSharedSecret","privateA","publicB","_prepSig","drbg","signature","_Point$BASE$multiplyA","sg","_sig","fromDER","derError","fromCompact","_r","_sig2","is","HMAC","hash$1","iHash","oHash","secp256k1P","secp256k1N","_1n","_2n","divNearest","defHash","_6n","_11n","_22n","_23n","_44n","_88n","b11","b22","b44","b88","b176","b220","b223","secp256k1","POW_2_128","c2","getHash","_excluded","_excluded2","_excluded3","_excluded4","generatePrivateKey","generateKeypair","privateScalar","secretKey","_isOnCurve","_unused","_class","_sign","properties","SOLANA_SCHEMA","Enum","_Struct","PUBLIC_KEY_LENGTH","uniquePublicKeyCounter","PublicKey","_Struct2","_Symbol$toStringTag2","_findProgramAddress","_createProgramAddress","_createWithSeed","_bn","isPublicKeyData","decoded","toBase58","zeroPad","fromPublicKey","programId","publicKeyBytes","seeds","createProgramAddressSync","_x5","nonce","seedsWithNonce","findProgramAddressSync","_x7","pubkeyData","Account","_publicKey","_secretKey","secretKeyBuffer","BPF_LOADER_DEPRECATED_PROGRAM_ID","PACKET_DATA_SIZE","VERSION_PREFIX_MASK","SIGNATURE_LENGTH_IN_BYTES","TransactionExpiredBlockheightExceededError","TransactionExpiredTimeoutError","_Error2","timeoutSeconds","toFixed","TransactionExpiredNonceInvalidError","_Error3","MessageAccountKeys","staticAccountKeys","accountKeysFromLookups","keySegments","readonly","keySegment","flat","instructions","U8_MAX","keyIndexMap","findKeyIndex","keyIndex","instruction","programIdIndex","accountKeyIndexes","meta","pubkey","rustString","rsl","_decode","_encode","rslShim","chars","getAlloc","getItemAlloc","decodeLength","encodeLength","rem_len","CompiledKeys","payer","keyMetaMap","mapEntries","writableSigners","isSigner","isWritable","readonlySigners","_ref3","writableNonSigners","_ref5","readonlyNonSigners","_ref7","header","numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","_ref9","_ref11","_ref13","_ref15","lookupTable","_this$drainKeysFoundI2","drainKeysFoundInLookupTable","addresses","keyMeta","isInvoked","writableIndexes","drainedWritableKeys","_this$drainKeysFoundI4","readonlyIndexes","drainedReadonlyKeys","accountKey","lookupTableEntries","keyMetaFilter","lookupTableIndexes","drainedKeys","_loop","_step2$value","lookupTableIndex","findIndex","getOrInsertDefault","payerKeyMeta","ix","accountMeta","Message","accountKeys","recentBlockhash","indexToProgramIds","account","accounts","numSignedAccounts","isProgramId","numKeys","keyCount","keyIndicesCount","dataCount","keyIndices","dataLength","instructionCount","instructionBuffer","instructionBufferLength","signDataLayout","transaction","signData","_compiledKeys$getMess2","compile","payerKey","getMessageComponents","compileInstructions","accountCount","_accountCount","dataSlice","MessageV0","compiledInstructions","addressTableLookups","numAccountKeysFromLookups","addressLookupTableAccounts","resolveAddressTableLookups","numStaticAccountKeys","lookupAccountKeysIndex","numWritableLookupAccountKeys","_loop2","tableLookup","tableAccount","find","_index","encodedStaticAccountKeysLength","serializedInstructions","serializeInstructions","encodedInstructionsLength","serializedAddressTableLookups","serializeAddressTableLookups","encodedAddressTableLookupsLength","messageLayout","serializedMessage","serializedMessageLength","staticAccountKeysLength","instructionsLength","addressTableLookupsLength","serializedLength","encodedAccountKeyIndexesLength","encodedDataLength","_step10","_iterator10","encodedWritableIndexesLength","encodedReadonlyIndexesLength","_step11","compiledKeys","_iterator11","extractResult","extractTableLookup","_accountKeysFromLooku","_accountKeysFromLooku2","_extractResult2","addressTableLookup","_extractResult$2","_compiledKeys$getMess4","maskedPrefix","accountKeyIndexesLength","addressTableLookupsCount","_i6","writableIndexesLength","readonlyIndexesLength","VersionedMessage","deserializeMessageVersion","TransactionStatus","DEFAULT_SIGNATURE","TransactionInstruction","_ref17","Transaction","signatures","feePayer","lastValidBlockHeight","nonceInfo","minNonceContextSlot","_message","_json","minContextSlot","blockhash","_nonceInfo","_getEstimatedFee","nonceInstruction","signers","_ref18","items","console","warn","programIds","accountMetas","uniqueMetas","pubkeyString","uniqueIndex","sort","localeCompare","localeMatcher","usage","sensitivity","ignorePunctuation","numeric","caseFirst","feePayerIndex","payerMeta","_step12","_iterator12","_loop3","signedKeys","unsignedKeys","_ref19","compileMessage","every","pair","_compile","connection","getFeeForMessage","_len2","_key2","seen","_len3","_key3","uniqueSigners","_i7","_signers","signer","_partialSign","_len4","_key4","_i8","_signers2","_len5","_key5","_addSignature","sigpair","requireAllSignatures","_verifySignatures","serializeMessage","_step13","_iterator13","_step13$value2","_signature","config","_Object$assign","verifySignatures","_serialize","signatureCount","transactionLength","wireTransaction","_ref20","keyObj","_signature2","populate","sigPubkeyPair","isAccountSigner","isAccountWritable","TransactionMessage","numWritableSignedAccounts","numWritableUnsignedAccounts","getAccountKeys","_step14","_iterator14","_step15","compiledIx","_iterator15","VersionedTransaction","defaultSignatures","encodedSignaturesLength","transactionLayout","serializedTransaction","serializedTransactionLength","_step16","messageData","signerPubkeys","_iterator16","_loop4","signerIndex","signaturesLength","SYSVAR_CLOCK_PUBKEY","SYSVAR_EPOCH_SCHEDULE_PUBKEY","SYSVAR_INSTRUCTIONS_PUBKEY","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","SYSVAR_REWARDS_PUBKEY","SYSVAR_SLOT_HASHES_PUBKEY","SYSVAR_SLOT_HISTORY_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","sendAndConfirmTransaction","_x9","_x10","_x11","_x12","_sendAndConfirmTransaction","_callee109","sendOptions","status","nonceAccountPubkey","_context109","skipPreflight","preflightCommitment","commitment","maxRetries","sendTransaction","confirmTransaction","abortSignal","nonceValue","sleep","ms","encodeData","allocLength","layoutFields","decodeData$1","FeeCalculatorLayout","NonceAccountLayout","NONCE_ACCOUNT_LENGTH","NonceAccount","authorizedPubkey","feeCalculator","nonceAccount","u64","_encodeDecode","encodeDecode","bigIntLayout","bigInt","SystemInstruction","checkProgramId","typeIndex","_i9","SYSTEM_INSTRUCTION_LAYOUTS","ixType","checkKeyLength","_decodeData$","Create","lamports","space","fromPubkey","newAccountPubkey","Transfer","toPubkey","_decodeData$3","TransferWithSeed","basePubkey","Allocate","accountPubkey","_decodeData$5","AllocateWithSeed","Assign","_decodeData$7","AssignWithSeed","_decodeData$8","CreateWithSeed","authorized","InitializeNonceAccount","noncePubkey","AdvanceNonceAccount","WithdrawNonceAccount","AuthorizeNonceAccount","newAuthorizedPubkey","SystemProgram","UpgradeNonceAccount","createAccountWithSeed","createAccount","initParams","nonceInitialize","instructionData","Loader","_load","chunkSize","_callee5","program","balanceNeeded","programInfo","dataLayout","transactions","_data","_transaction","_dataLayout","_data2","_transaction2","deployCommitment","finalizeSignature","_yield$connection$con2","_context5","getMinimumBalanceForRentExemption","getAccountInfo","executable","owner","transfer","bytesLengthPadding","_rpcEndpoint","all","getSlot","slot","MS_PER_SLOT","_x13","_x14","_x15","_x16","_x17","BPF_LOADER_PROGRAM_ID","BpfLoader","getMinNumSignatures","elf","loaderProgramId","load","getDefaultExportFromCjs","objToString","objKeys","isArrayProp","propVal","toStr","fastStableStringify$1","returnVal","trailingZeros","EpochSchedule","slotsPerEpoch","leaderScheduleSlotOffset","warmup","firstNormalEpoch","firstNormalSlot","getEpochAndSlotIndex","epoch","getSlotsInEpoch","normalSlotIndex","normalEpochIndex","getFirstSlotInEpoch","SendTransactionError","_Error4","logs","SolanaJSONRPCError","_Error5","_ref21","customMessage","fetchImpl","RpcWebSocketClient","_RpcWebSocketCommonCl","url","rpc","underlyingSocket","_this$underlyingSocke","_get2","readyState","_len6","_key6","_this$underlyingSocke2","_get3","_len7","_key7","AddressLookupTableAccount","U64_MAX","deactivationSlot","accountData","decodeData","LookupTableMetaLayout","serializedAddressesLen","numSerializedAddresses","lastExtendedSlot","lastExtendedSlotStartIndex","lastExtendedStartIndex","authority","URL_RE","PublicKeyFromString","RawAccountDataResult","BufferFromRawAccountData","extractCommitmentFromConfig","commitmentOrConfig","createRpcResult","UnknownRpcResult","jsonRpcResult","jsonRpcResultAndContext","notificationResultAndContext","versionedMessageFromResponse","GetInflationGovernorResult","foundation","foundationTerm","initial","taper","terminal","GetInflationRewardResult","effectiveSlot","amount","postBalance","commission","GetRecentPrioritizationFeesResult","prioritizationFee","GetInflationRateResult","GetEpochInfoResult","slotIndex","slotsInEpoch","absoluteSlot","blockHeight","transactionCount","GetEpochScheduleResult","GetLeaderScheduleResult","TransactionErrorResult","SignatureStatusResult","SignatureReceivedResult","VersionResult","SimulatedTransactionResponseStruct","rentEpoch","unitsConsumed","returnData","BlockProductionResponseStruct","byIdentity","range","firstSlot","lastSlot","GetInflationGovernorRpcResult","GetInflationRateRpcResult","GetRecentPrioritizationFeesRpcResult","GetEpochInfoRpcResult","GetEpochScheduleRpcResult","GetLeaderScheduleRpcResult","SlotRpcResult","GetSupplyRpcResult","circulating","nonCirculating","nonCirculatingAccounts","TokenAmountResult","uiAmount","decimals","uiAmountString","GetTokenLargestAccountsResult","GetTokenAccountsByOwner","ParsedAccountDataResult","GetParsedTokenAccountsByOwner","GetLargestAccountsRpcResult","AccountInfoResult","KeyedAccountInfoResult","ParsedOrRawAccountData","ParsedAccountInfoResult","KeyedParsedAccountInfoResult","StakeActivationResult","active","inactive","GetConfirmedSignaturesForAddress2RpcResult","memo","blockTime","GetSignaturesForAddressRpcResult","AccountNotificationResult","subscription","ProgramAccountInfoResult","ProgramAccountNotificationResult","SlotInfoResult","parent","SlotNotificationResult","SlotUpdateResult","timestamp","stats","numTransactionEntries","numSuccessfulTransactions","numFailedTransactions","maxTransactionsPerEntry","SlotUpdateNotificationResult","SignatureNotificationResult","RootNotificationResult","ContactInfoResult","gossip","tpu","VoteAccountInfoResult","votePubkey","nodePubkey","activatedStake","epochVoteAccount","epochCredits","lastVote","rootSlot","GetVoteAccounts","delinquent","ConfirmationStatus","SignatureStatusResponse","confirmations","confirmationStatus","GetSignatureStatusesRpcResult","GetMinimumBalanceForRentExemptionRpcResult","AddressTableLookupStruct","ConfirmedTransactionResult","AnnotatedAccountKey","ConfirmedTransactionAccountsModeResult","ParsedInstructionResult","RawInstructionResult","ParsedOrRawInstruction","ParsedConfirmedTransactionResult","TokenBalanceResult","accountIndex","mint","uiTokenAmount","LoadedAddressesResult","ConfirmedTransactionMetaResult","fee","innerInstructions","preBalances","postBalances","logMessages","preTokenBalances","postTokenBalances","loadedAddresses","computeUnitsConsumed","ParsedConfirmedTransactionMetaResult","TransactionVersionStruct","RewardsResult","rewardType","GetBlockRpcResult","previousBlockhash","parentSlot","rewards","GetNoneModeBlockRpcResult","GetAccountsModeBlockRpcResult","GetParsedBlockRpcResult","GetParsedAccountsModeBlockRpcResult","GetParsedNoneModeBlockRpcResult","GetConfirmedBlockRpcResult","GetBlockSignaturesRpcResult","GetTransactionRpcResult","GetParsedTransactionRpcResult","GetRecentBlockhashAndContextRpcResult","lamportsPerSignature","GetLatestBlockhashRpcResult","IsBlockhashValidRpcResult","GetRecentPerformanceSamplesRpcResult","numTransactions","numSlots","samplePeriodSecs","GetFeeCalculatorRpcResult","RequestAirdropRpcResult","SendTransactionRpcResult","LogsResult","LogsNotificationResult","COMMON_HTTP_HEADERS","Connection","endpoint","_commitmentOrConfig","requestPromises","wsEndpoint","httpHeaders","fetchMiddleware","disableRetryOnRateLimit","httpAgent","_commitment","_confirmTransactionInitialTimeout","_rpcWsEndpoint","_rpcClient","_rpcRequest","_rpcBatchRequest","_rpcWebSocket","_rpcWebSocketConnected","_rpcWebSocketHeartbeat","_rpcWebSocketIdleTimeout","_rpcWebSocketGeneration","_disableBlockhashCaching","_pollingBlockhash","_blockhashInfo","latestBlockhash","lastFetch","transactionSignatures","simulatedSignatures","_nextClientSubscriptionId","_subscriptionDisposeFunctionsByClientSubscriptionId","_subscriptionHashByClientSubscriptionId","_subscriptionStateChangeCallbacksByHash","_subscriptionCallbacksByServerSubscriptionId","_subscriptionsByHash","_subscriptionsAutoDisposedByRpc","getBlockHeight","_ref24","_callee9","_requestPromises$requ","_extractCommitmentFro","requestHash","_context9","_buildArgs","_callee8","unsafeRes","_context8","_x22","confirmTransactionInitialTimeout","putativeUrl","assertEndpointUrl","matches","_matches","hostish","portWithColon","protocol","startsWith","startPort","websocketPort","makeWebsocketUrl","customFetch","fetchWithMiddleware","_ref22","_callee6","modifiedFetchArgs","_context6","modifiedInfo","modifiedInit","_x18","_x19","clientBrowser","_ref23","_callee7","too_many_requests_retries","waitTime","text","body","agent","headers","statusText","ok","_x20","_x21","createRpcClient","createRpcRequest","requests","batch","methodName","createRpcBatchRequest","_wsOnOpen","_wsOnError","_wsOnClose","_wsOnAccountNotification","_wsOnProgramAccountNotification","_wsOnSlotNotification","_wsOnSlotUpdatesNotification","_wsOnSignatureNotification","_wsOnRootNotification","_wsOnLogsNotification","_removeRootChangeListener","_removeSignatureListener","_unsubscribeClientSubscription2","_removeSlotUpdateListener","_removeSlotChangeListener","_removeOnLogsListener","_removeProgramAccountChangeListener","_removeAccountChangeListener","_updateSubscriptions2","_sendEncodedTransaction","_sendRawTransaction","_sendTransaction","_simulateTransaction","_getStakeMinimumDelegation","_pollNewBlockhash2","_blockhashWithExpiryBlockHeight2","_requestAirdrop","_getNonce","_getNonceAndContext","_getAddressLookupTable","_getSignaturesForAddress","_getConfirmedSignaturesForAddress2","_getConfirmedSignaturesForAddress","_getParsedConfirmedTransactions","_getParsedConfirmedTransaction","_getConfirmedTransaction","_getConfirmedBlockSignatures","_getBlockSignatures","_getBlocks","_getConfirmedBlock","_getTransactions","_getParsedTransactions","_getParsedTransaction","_getTransaction","_getBlockProduction","_getParsedBlock","_getBlock","_getGenesisHash","_getVersion","_isBlockhashValid","_getLatestBlockhashAndContext","_getLatestBlockhash","_getRecentBlockhash","_getRecentPrioritizationFees","_getFeeForMessage","_getFeeCalculatorForBlockhash","_getRecentPerformanceSamples","_getRecentBlockhashAndContext","_getMinimumBalanceForRentExemption","_getLeaderSchedule","_getEpochSchedule","_getEpochInfo","_getInflationRate","_getInflationReward","_getInflationGovernor","_getTotalSupply","_getTransactionCount","_getSignatureStatuses","_getSignatureStatus","_getSlotLeaders","_getSlotLeader","_getSlot","_getVoteAccounts","_getClusterNodes","_confirmTransactionUsingLegacyTimeoutStrategy","_confirmTransactionUsingDurableNonceStrategy","_confirmTransactionUsingBlockHeightExceedanceStrategy","_confirmTransaction","_getParsedProgramAccounts","_getProgramAccounts","_getStakeActivation","_getMultipleAccountsInfo","_getMultipleAccountsInfoAndContext","_getMultipleParsedAccounts","_getAccountInfo","_getParsedAccountInfo","_getAccountInfoAndContext","_getTokenLargestAccounts","_getLargestAccounts","_getParsedTokenAccountsByOwner","_getTokenAccountsByOwner","_getTokenAccountBalance","_getTokenSupply","_getSupply","_getFirstAvailableBlock","_getMinimumLedgerSlot","_getBlockTime","_getBalance","_getBalanceAndContext","_callee10","_extractCommitmentFro2","_context10","_x23","_x24","_callee11","_context11","getBalanceAndContext","_x25","_x26","_callee12","_context12","_x27","_callee13","_callee14","_context14","_callee15","configArg","_x28","_callee16","tokenMintAddress","_x29","_x30","_callee17","tokenAddress","_context17","_x31","_x32","_callee18","ownerAddress","_extractCommitmentFro3","_args","_context18","_x33","_x34","_x35","_callee19","_context19","_x36","_x37","_x38","_callee20","_context20","_x39","_callee21","mintAddress","_context21","_x40","_x41","_callee22","_extractCommitmentFro4","_context22","_x42","_x43","_callee23","_extractCommitmentFro5","_context23","_x44","_x45","_callee24","_context24","getAccountInfoAndContext","_x46","_x47","_callee25","publicKeys","rawConfig","_extractCommitmentFro6","_context25","_x48","_x49","_callee26","_extractCommitmentFro7","_context26","_x50","_x51","_callee27","_context27","getMultipleAccountsInfoAndContext","_x52","_x53","_callee28","_extractCommitmentFro8","_context28","_x54","_x55","_x56","_callee29","configOrCommitment","_extractCommitmentFro9","_ref26","configWithoutEncoding","baseSchema","_context29","withContext","_x57","_x58","_callee30","_extractCommitmentFro10","_context30","_x59","_x60","_callee31","strategy","rawSignature","_config$abortSignal","decodedSignature","_context31","aborted","confirmTransactionUsingLegacyTimeoutStrategy","confirmTransactionUsingBlockHeightExceedanceStrategy","confirmTransactionUsingDurableNonceStrategy","_x61","_x62","signal","_ref27","signatureSubscriptionId","disposeSignatureSubscriptionStateChangeObserver","_this16","abortConfirmation","removeSignatureListener","confirmationPromise","onSignature","__type","PROCESSED","subscriptionSetupPromise","resolveSubscriptionSetup","_onSubscriptionStateChange","nextState","_callee32","_context32","getSignatureStatus","_callee35","_ref29","_ref29$strategy","expiryPromise","_this$getTransactionC","cancellationPromise","outcome","_this17","_context35","checkBlockHeight","_ref30","_callee33","_context33","_callee34","currentBlockHeight","_context34","BLOCKHEIGHT_EXCEEDED","getTransactionConfirmationPromise","getCancellationPromise","race","_x63","_callee38","_ref32","_ref32$strategy","_this$getTransactionC2","_signatureStatus","signatureStatus","_outcome$slotInWhichN","commitmentForStatus","_this18","_context38","currentNonceValue","lastCheckedSlot","getCurrentNonceValue","_ref33","_callee36","_yield$_this18$getNon2","_context36","getNonceAndContext","_callee37","_context37","NONCE_INVALID","slotInWhichNonceDidAdvance","_x64","_callee39","_ref35","timeoutId","_this$getTransactionC3","_this19","_context39","timeoutMs","TIMED_OUT","_x65","_callee40","_context40","_callee41","_context41","_x66","_callee42","_extractCommitmentFro11","_context42","_x67","_callee43","_extractCommitmentFro12","_context43","_x68","_callee44","startSlot","_context44","_x69","_x70","_callee45","_yield$this$getSignat","_context45","getSignatureStatuses","_x71","_x72","_callee46","_context46","_x73","_x74","_callee47","_extractCommitmentFro13","_context47","_x75","_callee48","_context48","getSupply","excludeNonCirculatingAccountsList","_x76","_callee49","_context49","_x77","_callee50","_extractCommitmentFro14","_context50","_x78","_x79","_x80","_callee51","_context51","_callee52","_extractCommitmentFro15","_context52","_x81","_callee53","epochSchedule","_context53","_callee54","_context54","_callee55","_context55","_x82","_x83","_callee56","_context56","_x84","_callee57","_context57","_x85","_callee58","_res$result","_context58","_x86","_x87","_callee59","wireMessage","_context59","_x88","_x89","_callee60","_config$lockedWritabl","_context60","lockedWritableAccounts","_x90","_callee61","_context61","getRecentBlockhashAndContext","_x91","_callee62","_context62","getLatestBlockhashAndContext","_x92","_callee63","_extractCommitmentFro16","_context63","_x93","_callee64","_extractCommitmentFro17","_context64","_x94","_x95","_callee65","_context65","_callee66","_context66","_callee67","_extractCommitmentFro18","_res","_res2","_context67","_buildArgsAtLeastConfirmed","transactionDetails","_ref36","_x96","_x97","_callee68","_extractCommitmentFro19","_res3","_res4","_context68","_x98","_x99","_callee69","extra","_context69","_x100","_callee70","_extractCommitmentFro20","_context70","_x101","_x102","_callee71","_extractCommitmentFro21","_context71","_x103","_x104","_callee72","_extractCommitmentFro22","_this20","_context72","_x105","_x106","_callee73","_extractCommitmentFro23","_this21","_context73","_x107","_x108","_callee74","block","_context74","_ref37","_ref38","_x109","_x110","_callee75","endSlot","_context75","_x111","_x112","_x113","_callee76","_context76","_x114","_x115","_callee77","_context77","_x116","_x117","_callee78","_context78","_x118","_x119","_callee79","_context79","_x120","_x121","_callee80","_this22","_context80","_x122","_x123","_callee81","firstAvailableBlock","highestConfirmedRoot","_block","confirmedSignatureInfo","_context81","getFirstAvailableBlock","getConfirmedBlockSignatures","until","before","getConfirmedSignaturesForAddress2","_x124","_x125","_x126","_callee82","_context82","_x127","_x128","_x129","_callee83","_context83","_x130","_x131","_x132","_callee84","_yield$this$getAccoun","accountInfo","_context84","_x133","_x134","_callee85","_yield$this$getAccoun2","_context85","fromAccountData","_x135","_x136","_callee86","_context86","_x137","_x138","_callee87","_context87","_x139","_x140","_callee88","disableCache","timeSinceFetch","expired","_context88","_pollNewBlockhash","_x141","_callee89","startTime","cachedLatestBlockhash","cachedBlockhash","_context89","getLatestBlockhash","_callee90","_extractCommitmentFro24","_context90","_x142","_callee91","transactionOrMessage","configOrSigners","includeAccounts","_wireTransaction","_encodedTransaction","_config","_args92","_unsafeRes","_res5","originalTx","_transaction3","_transaction4","_signature3","encodedTransaction","traceIndent","logTrace","_context91","_blockhashWithExpiryBlockHeight","nonProgramIds","sigVerify","_x143","_x144","_x145","_callee92","signersOrOptions","_wireTransaction2","_signature4","_context92","sendRawTransaction","_x146","_x147","_x148","_callee93","rawTransaction","_context93","sendEncodedTransaction","_x149","_x150","_callee94","_context94","_x151","_x152","_this23","setInterval","_callee95","_context95","notify","_updateSubscriptions","_this24","MAX_SAFE_INTEGER","clearInterval","_ref40","_ref41","_setSubscription","nextSubscription","_this$_subscriptionsB","prevState","stateChangeCallbacks","_unused4","clientSubscriptionId","_this$_subscriptionSt","_this25","_callee99","activeWebSocketGeneration","isCurrentConnectionStillActive","_this26","_context99","connect","_ref42","_callee98","_context98","callbacks","serverSubscriptionId","_callee96","_context96","_callee97","unsubscribeMethod","_context97","_x153","callbackArgs","_create$1","_handleServerNotification","subscriptionConfig","_this27","existingSubscription","_callee100","_context100","_makeSubscription","_callee101","_context101","_unsubscribeClientSubscription","_x154","_create2","accountId","filters","_callee102","_context102","_x155","mentions","_callee103","_context103","_x156","_create3","_create4","_callee104","_context104","_x157","_create5","_callee105","_context105","_x158","_callee106","subscriptionName","dispose","_context106","_x159","_x160","override","_create6","_callback","_this28","_err","_callback2","_this29","_options$commitment","_callee107","_context107","_x161","_create7","_callee108","_context108","_x162","Keypair","keypair","_keypair","skipValidation","computedPublicKey","ii","LOOKUP_TABLE_INSTRUCTION_LAYOUTS","CreateLookupTable","FreezeLookupTable","ExtendLookupTable","DeactivateLookupTable","CloseLookupTable","AddressLookupTableInstruction","_i10","layoutType","checkKeysLength","recentSlot","recipient","AddressLookupTableProgram","_PublicKey$findProgra2","lookupTableAddress","bumpSeed","addr","ComputeBudgetInstruction","_i11","_Object$entries3","COMPUTE_BUDGET_INSTRUCTION_LAYOUTS","_Object$entries3$_i2","_decodeData$14","RequestUnits","additionalFee","RequestHeapFrame","SetComputeUnitLimit","microLamports","SetComputeUnitPrice","ComputeBudgetProgram","ED25519_INSTRUCTION_LAYOUT","Ed25519Program","instructionIndex","publicKeyOffset","signatureOffset","messageDataOffset","numSignatures","signatureInstructionIndex","publicKeyInstructionIndex","messageDataSize","messageInstructionIndex","fromSecretKey","_publicKey2","_signature5","createInstructionWithPublicKey","_class2","publicKeyCreate","SECP256K1_INSTRUCTION_LAYOUT","Secp256k1Program","recoveryId","createInstructionWithEthAddress","ethAddress","publicKeyToEthAddress","rawAddress","_params$instructionIn","ethAddressOffset","ethAddressInstructionIndex","pkey","_publicKey3","_ecdsaSign3","toCompactRawBytes","ecdsaSign","_ecdsaSign4","_signature6","STAKE_CONFIG_ID","Authorized","staker","withdrawer","Lockup","unixTimestamp","custodian","StakeInstruction","_i12","_Object$entries4","STAKE_INSTRUCTION_LAYOUTS","_Object$entries4$_i2","_decodeData$18","Initialize","lockup","stakePubkey","Delegate","_decodeData$19","Authorize","newAuthorized","stakeAuthorizationType","custodianPubkey","_decodeData$20","AuthorizeWithSeed","authoritySeed","authorityOwner","authorityBase","Split","splitStakePubkey","Merge","sourceStakePubKey","Withdraw","Deactivate","StakeProgram","StakeAuthorizationLayout","Staker","Withdrawer","initialize","splitInstruction","VoteInit","authorizedVoter","authorizedWithdrawer","VoteInstruction","_i13","_Object$entries5","VOTE_INSTRUCTION_LAYOUTS","_Object$entries5$_i2","voteInit","InitializeAccount","_decodeData$24","voteAuthorizationType","_decodeData$25$voteAu","voteAuthorizeWithSeedArgs","currentAuthorityDerivedKeyOwnerPubkey","currentAuthorityDerivedKeySeed","currentAuthorityDerivedKeyBasePubkey","authorizedWithdrawerPubkey","VoteProgram","VoteAuthorizationLayout","Voter","initializeAccount","currentVoteAccountBalance","rentExemptMinimum","withdraw","VALIDATOR_INFO_KEY","InfoString","website","details","keybaseUsername","ValidatorInfo","configKeys","_publicKey4","rawInfo","VOTE_PROGRAM_ID","VoteAccountLayout","VoteAccount","votes","authorizedVoters","priorVoters","lastTimestamp","va","rootSlotValid","parseAuthorizedVoter","getPriorVoters","_ref46","parsePriorVoters","_ref47","epochOfLastAuthorizedSwitch","targetEpoch","_ref48","isEmpty","http","devnet","testnet","https","_sendAndConfirmRawTransaction","_callee110","confirmationStrategyOrConfirmOptions","maybeConfirmOptions","confirmationStrategy","_context110","index_browser_esm","BLOCKHASH_CACHE_TIMEOUT_MS","LAMPORTS_PER_SOL","MAX_SEED_LENGTH","SolanaJSONRPCErrorCode","JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP","JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE","JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY","JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_NO_SNAPSHOT","JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX","JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE","JSON_RPC_SCAN_ERROR","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH","JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET","JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION","JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED","clusterApiUrl","cluster","tls","sendAndConfirmRawTransaction","_x163","_x164","_x165","_x166","require$$1","cjs","SolanaMobileWalletAdapterErrorCode","ERROR_ASSOCIATION_PORT_OUT_OF_RANGE","ERROR_FORBIDDEN_WALLET_BASE_URL","ERROR_SECURE_CONTEXT_REQUIRED","ERROR_SESSION_CLOSED","ERROR_SESSION_TIMEOUT","ERROR_WALLET_NOT_FOUND","SolanaMobileWalletAdapterError","SolanaMobileWalletAdapterProtocolError","jsonRpcMessageId","__awaiter$1","thisArg","_arguments","fulfilled","rejected","createHelloReq","ecdhPublicKey","associationKeypairPrivateKey","publicKeyBuffer","signatureBuffer","subtle","exportKey","createSequenceNumberVector","sequenceNumber","generateAssociationKeypair","generateKey","namedCurve","generateECDHKeypair","_utf8Decoder","encryptJsonRpcMessage","jsonRpcMessage","sharedSecret","plaintext","sequenceNumberVector","initializationVector","ciphertext","encrypt","getAlgorithmParams","decryptJsonRpcMessage","plaintextBuffer","SEQUENCE_NUMBER_BYTES","decrypt","getUtf8Decoder","additionalData","iv","tagLength","parseHelloRsp","payloadBuffer","associationPublicKey","ecdhPrivateKey","_yield$Promise$all","_yield$Promise$all2","associationPublicKeyBuffer","walletPublicKey","ecdhSecretKey","aesKeyMaterialVal","importKey","deriveBits","deriveKey","salt","assertAssociationPort","port","arrayBufferToBase64String","binary","btoa","getPathParts","pathString","getIntentURL","methodPathname","intentUrlBase","baseUrl","pathname","getAssociateAndroidIntentURL","putativePort","associationURLBase","associationPort","exportedKey","encodedKey","searchParams","Browser","_frame","startSession","randomAssociationPort","associationUrl","detectionPromise","navigator","userAgent","document","createElement","style","display","appendChild","contentWindow","href","cleanup","removeEventListener","handleBlur","WEBSOCKET_CONNECTION_CONFIG","assertSecureContext","isSecureContext","assertSecureEndpointSpecificURI","walletUriBase","SolanaMobileWalletAdapterProtocolErrorCode","ERROR_AUTHORIZATION_FAILED","ERROR_INVALID_PAYLOADS","ERROR_NOT_SIGNED","ERROR_NOT_SUBMITTED","ERROR_TOO_MANY_PAYLOADS","ERROR_ATTEST_ORIGIN_ANDROID","transact","associationKeypair","sessionPort","websocketURL","connectionStartTime","getNextRetryDelayMs","nextJsonRpcMessageId","lastKnownInboundSequenceNumber","baseUri","schedule","disposeSocket","retryWaitTimeoutId","jsonRpcResponsePromises","handleOpen","ecdhKeypair","handleClose","wasClean","closeEvent","handleError","_evt","retryDelayMs","attemptSocketConnection","handleMessage","responseBuffer","responsePromise","_responsePromise","wallet","arrayBuffer","letter","_resolve","wallet_uri_base","deleteProperty","bs58$2","web3_js","mobileWalletAdapterProtocol","_interopDefaultLegacy","bs58__default","__awaiter","fromUint8Array","_String$fromCharCode","toUint8Array","base64EncodedByteArray","atob","getPayloadFromTransaction","getTransactionFromWireMessage","messageOffset","augmentedCallback","augmentedAPI","payloads","_yield$wallet$signAnd","base64EncodedSignatures","signAndSendTransactions","min_context_slot","base64EncodedPayloads","_yield$wallet$signMes","base64EncodedSignedMessages","signedMessages","signMessages","signed_payloads","_yield$wallet$signTra","base64EncodedCompiledTransactions","compiledTransactions","signedTransactions","signTransactions","Layout$1","V2E32","divmodInt64","roundedInt64","upv","fixBitwiseResult","Boolean$1","lib","bn","rustEnum","vecU8","tagged","vec","bool","option","i128","u128","i64","i32","i16","i8","buffer_layout_1","web3_js_1","buffer_layout_2","BNLayout","_buffer_layout_1$Layo","signed","WrappedLayout","_buffer_layout_1$Layo2","decoder","encoder","OptionLayout","_buffer_layout_1$Layo3","decodeBool","encodeBool","wrappedLayout","receivedTag","variants","discriminant","unionLayout","addVariant","_ref4","MapEntryLayout","_buffer_layout_1$Layo4","keyLayout","valueLayout","keyBytes","Web3MobileWallet","ACCOUNT_LAYOUT","publicKey$1","struct$1","u16$1","u32$2","u64$3","u8$1","logger","isHexable","toHexString","addSlice","isBytesLike","isHexString","arrayify","checkSafeUint53","allowMissingPrefix","substring","hexPad","throwArgumentError","objects","accum","stripZeros","HexCharacters","hexlify","hexDataLength","hexDataSlice","endOffset","hexConcat","hexValue","trimmed","hexStripZeros","hexZeroPad","splitSignature","_vs","recoveryParam","yParityAndS","compact","_vs2","recId","vs","joinSignature","logo$a","currencyLogo$6","bsc","networkId","platform","label","fullName","logo","logoBackgroundColor","logoWhiteBackground","currency","symbol","wrapped","stables","usd","explorer","explorerUrlFor","endpoints","zero","maxInt","permit2","currencyLogo$5","wrappedLogo$4","ethereum","currencyLogo$4","wrappedLogo$3","fantom","currencyLogo$3","wrappedLogo$2","polygon","logo$6","currencyLogo$2","solana","sockets","logo$5","arbitrum","_ref6","currencyLogo$1","wrappedLogo$1","avalanche","currencyLogo","wrappedLogo","gnosis","_ref8","optimism","_ref10","worldchain","findById","fixedId","blockchain","findByNetworkId","findByName","_permanentCensorErrors","_censorErrors","LogLevels","debug","warning","_logLevel","_globalLogger","LogLevel","ErrorCode","_normalizeError","missing","form","normalize","_checkNormalize","HEX","Logger","logLevel","level","_log","levels","DEBUG","INFO","WARNING","makeError","errors","UNKNOWN_ERROR","messageDetails","NUMERIC_FAULT","fault","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","throwError","INVALID_ARGUMENT","argument","UNSUPPORTED_OPERATION","operation","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","censorship","permanent","globalLogger","_constructorGuard","MAX_SAFE","_warnedToStringRadix","BigNumber","constructorGuard","_hex","_isBigNumber","toBigNumber","toBN","throwFault","isNegative","anyValue","defineReadOnly","getStatic","resolveProperties","promises","results","checkProperties","shallowCopy","opaque","boolean","_isFrozen","isFrozen","_deepCopy","deepCopy","Description","checkResultErrors","checkErrors","childPath","Coder","localName","dynamic","_dataLength","_padding","_writeData","paddingOffset","BUFFER_OVERRUN","_getValue","coerceFunc","allowLoose","_offset","_coerceFunc","loose","alignedLength","_peekBytes","readBytes","keccak256","arrayifyInteger","unarrayifyInteger","payload","child","_length","_decodeChildren","childOffset","consumed","lengthLength","_length2","_lengthLength","_length3","_length4","getChecksumAddress","expanded","ibanLookup","safeDigits","log10","LN10","ibanChecksum","checksum","isAddress","getIcapAddress","base36","getCreate2Address","initCodeHash","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","checkNormalize","escapeChar","_toEscapedUtf8String","_toUtf8String","toUtf8String","toUtf8CodePoints","_Coder","AddressCoder","_throwError","writeValue","readValue","AnonymousCoder","coder","defaultValue","pack","coders","arrayValues","unique","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","writeUpdatableValue","baseOffset","func","appendWriter","unpack","baseReader","subReader","offsetReader","baseType","uniqueNames","ArrayCoder","defaultChild","checkArgumentCount","BooleanCoder","DynamicBytesCoder","writeBytes","_DynamicBytesCoder","BytesCoder","FixedBytesCoder","NullCoder","NegativeOne","Zero","One","Two","WeiPerEther","MaxUint256","MinInt256","MaxInt256","NumberCoder","maxUintValue","bounds","StringCoder","TupleCoder","types","ModifiersBytes","calldata","memory","storage","ModifiersNest","checkModifier","FormatTypes","sighash","minimal","full","json","paramTypeArray","RegExp","ParamType","arrayLength","arrayChildren","components","_isParamType","_format","indexed","format","allowIndexed","isParamType","verifyType","param","originalParam","newNode","allowType","allowParams","allowName","allowArray","sibling","parseParamType","parseParams","allowIndex","depth","splitNesting","Fragment","_isFragment","isFragment","EventFragment","ErrorFragment","_Fragment","_format2","anonymous","inputs","isEventFragment","verifyIdentifier","regexParen","modifier","parseGas","gas","comps","parseModifiers","payable","stateMutability","verifyState","_Fragment2","ConstructorFragment","_format3","isConstructorFragment","parens","_ConstructorFragment","FunctionFragment","_format4","outputs","isFunctionFragment","returns","checkForbidden","fragment","_Fragment3","_format5","isErrorFragment","regexIdentifier","paramTypeBytes","paramTypeNumber","AbiCoder","_getCoder","component","_size","_getWordSize","_getWriter","_getReader","defaultAbiCoder","LogDescription","_Description","TransactionDescription","_Description2","ErrorDescription","_Description3","Indexed","_Description4","_isIndexed","BuiltinErrors","wrapAccessError","Interface","fragments","bucket","deploy","functions","abi","nameOrSignatureOrSighash","getSighash","_name","matching","nameOrSignatureOrTopic","topichash","getEventTopic","_name2","_name3","getFunction","getError","eventFragment","getEvent","_abiCoder","_encodeParams","_decodeParams","functionFragment","errorArgs","errorName","errorSignature","selector","builtin","topics","encodeTopic","dataTypes","dataValues","topicHash","expected","nonIndexed","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","tx","topic","decodeEventLog","hexData","errorFragment","_isInterface","ForkEvent","_isForkEvent","Provider","checkAbstract","_yield$resolvePropert","gasPrice","lastBaseFeePerGas","maxFeePerGas","maxPriorityFeePerGas","getBlock","getGasPrice","baseFeePerGas","eventName","_isProvider","allowedTransactionKeys","forwardErrors","Signer","blockTag","_checkProvider","provider","getBalance","getAddress","getTransactionCount","checkTransaction","estimateGas","signedTx","populateTransaction","signTransaction","network","getNetwork","chainId","getFeeData","resolveName","hasEip1559","feeData","gasLimit","getChainId","_isSigner","_Signer","VoidSigner","_fail","_curve","getCurve","SigningKey","keyPair","keyFromPrivate","getPublic","_isSigningKey","p0","keyFromPublic","p1","pub","encodeCompressed","digestBytes","canonical","otherKey","otherKeyPair","computePublicKey","derive","recoverPublicKey","rs","recoverPubKey","compressed","signingKey","TransactionTypes","handleAddress","handleNumber","transactionFields","maxLength","computeAddress","recoverAddress","formatNumber","accessSetify","storageKeys","storageKey","accessListify","formatAccessList","_serializeEip1559","accessList","_serializeEip2930","raw","fieldInfo","transactionType","_parseEipSignature","recid","_parse","_parseEip2930","_parseEip1559","customData","ccipReadEnabled","resolver","nameOrPromise","resolveAddresses","paramType","contract","overrides","resolved","ro","intrinsic","roValue","leftovers","check","resolvedAddress","interface","encodeFunctionData","addContractWait","wait","receipt","parseLog","eventSignature","blockHash","getTransaction","transactionHash","getTransactionReceipt","buildCall","collapseSimple","signerOrProvider","deployTransaction","_deployed","decodeFunctionResult","buildDefault","txRequest","buildSend","getEventTag","RunningEvent","_listeners","argsCopy","ErrorRunningEvent","_RunningEvent","_RunningEvent2","FragmentRunningEvent","contractInterface","decodeError","_RunningEvent3","WildcardRunningEvent","BaseContract","addressOrName","isProvider","uniqueFilters","encodeFilterTopics","uniqueSignatures","callStatic","buildPopulate","buildEstimate","_deployedPromise","getCode","contractAddress","deployed","runningEvent","_runningEvents","_normalizeRunningEvent","_fragment","_wrappedEmits","_checkRunningEvents","prepareEvent","wrappedEmit","_wrapEvent","getEmit","fromBlockOrBlockhash","toBlock","_getRunningEvent","fromBlock","getLogs","_addEventListener","_ret","_runningEvent","isInterface","isIndexed","Contract","_BaseContract","ContractFactory","bytecode","bytecodeHex","encodeDeploy","_len8","_key8","unsignedTx","getDeployTransaction","getContract","compilerOutput","evm","getInterface","getMultiplier","formatFixed","multiplier","fraction","whole","parseFixed","wholeValue","fractionValue","wei","FixedFormat","_multiplier","FixedNumber","_value","_isFixedNumber","_checkFormat","fromValue","hasFraction","subUnsafe","toFormat","addUnsafe","factor","bump","BUMP","mulUnsafe","divUnsafe","parseFloat","isBigNumber","isBigNumberish","fixedFormat","decimal","hashMessage","hexTrue","hexFalse","domainFieldTypes","verifyingContract","domainFieldNames","checkString","domainChecks","getBaseEncoder","boundsUpper","boundsLower","_match","_width","hexPadRight","encodeType","TypedDataEncoder","links","parents","subtypes","primaryTypes","checkCircular","subtype","primaryType","st","_types","hashStruct","domainFields","EIP712Domain","hashDomain","ensCache","visit","domainValues","domainTypes","typesWithDomain","_encoderCache","_getEncoder","subEncoder","getEncoder","encodedType","_visit","SupportedAlgorithm","BaseX","alphabet","_alphabetMap","digits","_leader","byte","Base58","ripemd160","computeHmac","algorithm","pbkdf2","password","iterations","keylen","hashAlgorithm","hLen","DK","block1","U","destPos","Wordlist","locale","wordlist","getWord","getWordIndex","lang","mnemonic","loadWords","langEn","_Wordlist","LangEn","register","wordlists","en","MasterSecret","HardenedBit","getUpperMask","bytes32","base58check","getWordlist","defaultPath","HDNode","parentFingerprint","chainCode","mnemonicOrPath","compressedPublicKey","seedArray","entropyToMnemonic","mnemonicToEntropy","_fromSeed","mnemonicToSeed","phrase","extendedKey","IL","IR","ki","Ki","_addPoint","srcMnemonic","fingerprint","_derive","NFKD","entropy","entropyBits","checksumMask","indices","remainingBits","checksumBits","isValidMnemonic","getAccountPath","looseArrayify","hexString","zpad","getPassword","NFKC","searchPath","currentChild","matchingChild","uuidV4","hasMnemonic","KeystoreAccount","_isKeystoreAccount","_getAccount","counter","Counter","aesCtr","ModeOfOperation","ctr","_decrypt","mnemonicKey","mnemonicCiphertext","mnemonicIv","mnemonicCounter","mnemonicAesCtr","fromMnemonic","derivePath","pbkdf2Sync","passwordBytes","dkLen","prfFunc","_computeKdfKey","pbkdf2Func","scryptFunc","progressCallback","kdf","_salt","prf","_dkLen","CrowdsaleAccount","_isCrowdsaleAccount","ethaddr","encseed","encryptedSeed","aesCbc","cbc","pkcs7","seedHex","isCrowdsaleWallet","isKeystoreWallet","getJsonWalletAddress","decryptJsonWallet","scrypt","decryptJsonWalletSync","syncScrypt","Wallet","isSigningKey","_signingKey","_mnemonic","signDigest","populated","resolveNames","uuidRandom","derivedKey","macPrefix","mac","cipher","cipherparams","kdfparams","dklen","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","gethFilename","verifyMessage","verifyTypedData","AddressZero","HashZero","EtherSymbol","ethDefaultProvider","providers","providerList","InfuraProvider","infura","EtherscanProvider","etherscan","AlchemyProvider","alchemy","PocketProvider","pocket","CloudflareProvider","cloudflare","AnkrProvider","ankr","_provider","FallbackProvider","quorum","renetwork","etcDefaultProvider","JsonRpcProvider","homestead","ensAddress","_defaultProvider","ropsten","classicMordor","unspecified","mainnet","morden","rinkeby","kovan","goerli","kintsugi","sepolia","classic","classicMorden","classicTestnet","classicKotti","xdai","matic","maticmum","bnb","bnbt","_standard","_standard2","standard","defaultProvider","textData","flatDeep","read_compressed_payload","symbol_count","skip","pos_payload","read_width","read_buffer","read_bit","FULL","HALF","QRTR","decode_arithmetic","read_ascending","read_deltas","read_member_array","vX","vN","read_counts","read_transposed","read_linear_table","dx","dy","read_zero_terminated_array","ys","j_dy","read_replacement_table","sorted","VALID","IGNORED","MAPPED","_w","fromEntries","read_mapped_map","EMOJI_ROOT","branches","fe0f","save","explode_cp","filter_fe0f","cps","ens_normalize_post_check","ens_normalize","emoji_filter","emoji","consume_emoji_reversed","fromCodePoint","eaten","saved","stack","Zeros","checkComponent","ensNameSplit","last","isValidName","namehash","dnsEncode","skipFetchSetup","cache","credentials","redirect","referrer","fetchOptions","statusCode","statusMessage","staller","duration","bodyify","_fetchData","processFunc","attemptLimit","throttleLimit","assertArgument","throttleCallback","throttleSlotInterval","errorPassThrough","allow304","allowGzip","user","allowInsecureAuthentication","authorization","reData","dataMatch","SERVER_ERROR","requestBody","requestMethod","flatHeaders","timer","runningTimeout","TIMEOUT","cancel","runningFetch","attempt","_response","tryAgain","stall","retryAfter","_body","_tryAgain","_timeout","serverError","throttleRetry","fetchJson","updated","ceiling","interval","retryLimit","oncePoll","onceBlock","Formatter","formats","getDefaultFormats","checkKey","checkValue","nullValue","replaceValue","bigNumber","allowNull","blockNumber","transactionIndex","uint256","creates","transactionRequest","receiptLog","arrayOf","logIndex","gasUsed","logsBloom","cumulativeGasUsed","effectiveGasPrice","parentHash","difficulty","miner","extraData","blockWithTransactions","transactionResponse","filterLog","removed","allowFalsish","_accessList","_number","strict","_blockTag","author","_difficulty","_chainId","byzantium","isCommunityResourcable","isCommunityResource","throttleMessage","showThrottleMessage","checkTopic","serializeTopics","isForkEvent","getTime","PollableEvents","Event","_lastBlockNumber","_inflight","coinInfos","p2pkh","p2sh","ilk","bytes32ify","base58Encode","matcherIpfs","matchers","_parseString","_parseBytes","getIpfsLink","link","numPad","padded","bytesPad","encodeBytes","datas","byteCount","Resolver","formatter","_supportsEip2544","parameters","parseBytes","supportsWildcard","_fetch","coinType","hexBytes","coinInfo","_version","toWords","callAddress","_fetchBytes","_getAddress","linkage","avatar","scheme","tokenId","tokenOwner","balance","metadataUrl","metadata","imageUrl","content","getText","_resolvedAddress","t6","t7","image","t8","ipfs","ipns","swarm","skynet","urlSafe","defaultFormatter","nextPollId","_Provider","BaseProvider","_emitted","disableCcipRead","getFormatter","anyNetwork","detectNetwork","_networkPromise","_ready","knownNetwork","_maxInternalBlockNumber","_maxFilterBlockRange","_pollingInterval","_fastQueryDate","_network","NETWORK_ERROR","urls","sender","errorMessages","errorMessage","maxAge","internalBlockNumber","reqTime","checkInternalBlockNumber","_internalBlockNumber","respTime","perform","networkError","_setFastBlockNumber","pollId","runners","_getInternalBlockNumber","pollingInterval","previousBlockNumber","eventBlockNumber","runner","minFromBlock","_runner","polling","poll","currentNetwork","_fastBlockNumber","_fastBlockNumberPromise","detectedNetwork","_poller","_bootstrapPoll","getBlockNumber","_waitForTransaction","replaceable","cancelFuncs","alreadyDone","minedHandler","lastBlockNumber","startBlock","scannedBlock","replaceHandler","mined","ti","_receipt","getBlockWithTransactions","waitForTransaction","cancelled","replacement","_wrapTransaction","unref","_getBlockTag","expectedHash","returnedHash","confirms","signedTransaction","hexTx","txSender","urlsOffset","urlsLength","urlsData","callbackSelector","ccipResult","redirects","ccipReadFetch","_call","_getTransactionRequest","blockHashOrBlockTag","includeTransactions","_blockNumber","blockWithTxs","_getFilter","currentName","_getResolver","addrData","getResolver","resolverAddr","nameOrAddress","resolverAddress","_avatar","getAvatar","NOT_IMPLEMENTED","pollable","_startEvent","stopped","eventTag","_stopEvent","errorGas","spelunk","requireData","checkError","getResult","getLowerCase","JsonRpcSigner","addressOrIndex","UncheckedJsonRpcSigner","_address","fromAddress","estimate","hexlifyTransaction","ACTION_REJECTED","action","sendUncheckedTransaction","getPayload","_JsonRpcSigner","_BaseProvider","networkOrReady","_nextId","_eventLoopCache","_uncachedDetectNetwork","getSigner","connectUnchecked","_hexlifyTransaction","prepareRequest","_startPending","_pendingFilter","pendingFilter","filterId","hashes","allowExtra","allowed","NextId","_JsonRpcProvider","WebSocketProvider","_thisSuper","_wsReady","websocket","_requests","messageEvent","_subs","fauxPoll","_websocket","_detectNetwork","rid","subIdPromise","subId","_subIds","emitReceipt","CONNECTING","StaticJsonRpcProvider","_StaticJsonRpcProvide","UrlJsonRpcProvider","apiKey","defaultApiKey","_WebSocketProvider","AlchemyWebSocketProvider","_UrlJsonRpcProvider","host","getHost","projectSecret","getTransactionPostData","maxFeePerGs","getJsonResult","_error","_error2","checkLogTag","getBaseUrl","query","apikey","post","procFunc","payloadStr","getPostUrl","getUrl","getPostData","postData","_postData","topic0","blocks","txhash","ethusd","endBlock","startblock","endblock","timeStamp","shuffled","checkNetworks","networks","median","maxDelta","middle","nextRid","getPromise","ForwardErrors","ForwardProperties","exposeDebugConfig","weight","getProcessFunc","configs","_highestBlockNumber","tally","normalizedTally","waitForSync","getRunner","currentBlockNumber","getEtherPrice","getStorageAt","providerConfigs","configOrProvider","stallTimeout","priority","first","inflightWeight","waiting","backend","errorCode","IpcProvider","defaultProjectId","InfuraWebSocketProvider","projectId","apiKeyObj","JsonRpcBatchProvider","_pendingBatch","inflightRequest","_pendingBatchAggregator","inflight","NodesmithProvider","defaultApplicationId","applicationId","loadBalancer","applicationSecretKey","buildWeb3LegacyFetcher","sendFunc","fetcher","Web3Provider","jsonRpcFetchFunc","subprovider","isMetaMask","buildEip1193Fetcher","sendAsync","getDefaultProvider","regexBytes","regexNumber","regexArray","_pack","tight","createTable","createRangeTable","matchMap","ranges","Table_A_1_ranges","Table_B_1_flags","Table_B_2_ranges","Table_B_2_lut_abs","Table_B_2_lut_rel","Table_B_2_complex","Table_C_ranges","nameprep","codes","codesTableB2","codepoint","_nameprepTableB2","formatBytes32String","parseBytes32String","commify","formatted","formatUnits","unitName","parseUnits","formatEther","parseEther","ether","_ethers","allowanceOnEVM","api","spender","balanceOnEVM","ERC1155","ERC20","WETH","uriAPI","nameOnEVM","uri","tokenURI","responseJson","TOKEN_PROGRAM","ASSOCIATED_TOKEN_PROGRAM","_optionalChain$4","ops","lastAccessLHS","op","findProgramAddress","_yield$PublicKey$find","_yield$PublicKey$find2","_2","MINT_LAYOUT","KEY_LAYOUT","CREATOR_LAYOUT","DATA_LAYOUT","METADATA_LAYOUT","TRANSFER_LAYOUT","TOKEN_LAYOUT","INITIALIZE_LAYOUT","CLOSE_LAYOUT","createTransferInstruction","fromTokenAccount","toTokenAccount","createAssociatedTokenAccountInstruction","_ref12","associatedToken","initializeAccountInstruction","closeAccountInstruction","_ref14","balanceOnSolana","_ref16","tokenAccountAddress","decimalsOnSolana","findAccount","existingAccount","_optionalChain$3","_value2","METADATA_ACCOUNT","METADATA_REPLACE","getMetaDataPDA","metaDataPublicKey","mintPublicKey","getMetaData","tokenMetaDataPublicKey","metaData","_3","_4","_5","_6","_7","_8","_optionalChain$2","_value3","nameOnSolana","_ref25","_optionalChain$1","_value4","symbolOnSolana","_ref28","supported","_optionalChain","_value5","Token","_readable","_BigNumber","_allowance","_balance","_symbol","_decimals","DEFAULT","safeAmount","readable","_ref31","_ref34","WRAPPED","BEP20","FTM20","ARC20","_objectSpread","_window","_wrapRegExp","re","groups","BabelRegExp","_groups","WeakMap","flags","buildGroups","exec","substitution","getWindow","getConfiguration","_Web3ClientConfiguration","_optionalChain$5","StaticJsonRpcBatchProvider","_ethers$providers$Jso","failover","_endpoint","_endpoints","_failover","chunk","requestChunk","AbortSignal","parsedJson","batchRequest","chunks","batchInterval","getAllProviders$1","_Web3ClientProviders","setProvider$2","setProviderEndpoints$2","detectFastest","responseTimes","fastestResponse","fastestIndex","_args2","cy","after","referrerPolicy","getProvider$2","_Web3ClientGetProviderPromise","getProviders$2","_Web3ClientGetProvidersPromise","EVM","getProvider","getProviders","setProviderEndpoints","setProvider","StaticJsonRpcSequentialProvider","_Connection","_rpcRequestReplacement","getAllProviders","setProvider$1","setProviderEndpoints$1","_args8","getProvider$1","getProviders$1","Solana","getCacheStore","_Web3ClientCacheStore","getPromiseStore","_Web3ClientPromiseStore","cachedEntry","expires","expiresAt","deletePromise","_ref18$expires","existingPromise","setPromise","resolveQueue","rejectQueue","findFragment","tupleParamsToMethodSignature","estimateEVM","contractArguments","getContractArguments","contractMethod","cache$1","contractCall","_contract$callStatic","paramsToContractArgs","singleRequest$1","balance$1","requestEVM","allRequestsFailed","allRequestsInParallel","timeoutPromise","_request","singleRequest","_ref39","nextProvider","getProgramAccounts","getTokenAccountBalance","errorType","requestSolana","_request2","parseUrl","deconstructed","part1","part2","_parseUrl","_ref43","cacheKey","_call2","top","bottom","auto","basePlacements","clippingParents","viewport","popper","reference","variationPlacements","placement","placements","beforeRead","afterRead","beforeMain","main","afterMain","beforeWrite","afterWrite","modifierPhases","for","FFTM","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","itwdf","sin","rtwdf_","itwdf_","ie","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","_e25","_e26","CoinbaseWalletSdk","_r2","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","_complete","unsubscribe","closed","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","notifyNext","notifyError","notifyComplete","subscribe","_isScalar","lift","operator","_trySubscribe","pipe","toPromise","_subscriptions","_ctorUnsubscribe","remove","EMPTY","V","parentNode","removeChild","children","defaultProps","ref","__k","__","__b","__e","__d","__c","__h","__v","vnode","__r","debounceRendering","__P","__n","ownerSVGElement","nextSibling","O","insertBefore","setProperty","cssText","removeAttribute","setAttribute","contextType","__E","render","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffed","nodeType","createTextNode","createElementNS","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","unmount","componentWillUnmount","firstChild","Consumer","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","observers","hasError","thrownError","asObservable","project","outerValue","outerIndex","predicate","hasValue","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","foo","species","observable","POSITIVE_INFINITY","concurrent","hasCompleted","_tryNext","_innerSub","actions","scheduled","flush","execute","delay","hasNext","scheduler","work","pending","recycleAsyncId","requestAsyncId","_execute","isInIFrame","createQrUrl","getFavicon","ensureParsedJSONObject","ensureBN","ensureRegExpString","ensureIntNumber","ensureBuffer","ensureAddressString","ensureEvenLengthHexString","ensureHexString","prepend0x","strip0x","has0xPrefix","hexStringFromIntNumber","intNumberFromHexString","bigIntStringFromBN","hexStringFromBuffer","hexStringToUint8Array","uint8ArrayToHex","randomBytesHex","_n2","HexString","IntNumber","EUCLID","BigIntString","AddressString","_n3","RegExpString","querySelector","_document$location","getAttribute","frameElement","fun","nextTick","env","argv","versions","prependListener","prependOnceListener","binding","cwd","chdir","umask","_finalSize","_blockSize","_update","_hash","allowHalfOpen","_writableState","ended","highWaterMark","getBuffer","_readableState","connectable","_refCount","_connection","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","_getNow","_trimBufferThenGetEvents","time","subscriber","resultSelector","observables","toRespond","_tryResultSelector","iterators","stillUnsubscribed","notifyInactive","checkIterators","_tryresultSelector","nextResult","isComplete","minBlockRef","maxBlockRef","sortBlockRefs","bnToHex","blockRefIsNumber","hexToInt","incrementHexInt","intToHex","unsafeRandomBytes","_n4","__H","__V","__N","useDebugValue","__m","requestAnimationFrame","cancelAnimationFrame","SchedulerAction","_r$EventEmitter","_n5","_o","_t3","_n6","_r3","_r4","getOwnPropertyNames","_maxListeners","defaultMaxListeners","newListener","warned","fired","wrapFn","setMaxListeners","getMaxListeners","rawListeners","$","J","tt","nt","ot","at","ct","ht","ft","pt","bt","yt","mt","vt","wt","St","Et","Mt","xt","kt","Ct","At","It","Ot","jt","Rt","Nt","Tt","ProviderType","OpaqueType","CoinbaseWallet","MetaMask","Unselected","keySelector","elementSelector","durationSelector","subjectSelector","attemptedToUnsubscribe","_group","clear","removeGroup","delete","group","groupSubject","refCountSubscription","frame","maxFrames","frameTimeFactor","sortActions","subject","callbackFunc","initialState","iterate","needIterate","period","subjectFactory","_isComplete","getSubject","_subject","refCount","getValue","dispatch","scheduleMessage","hasFirst","subscriptions","CoinbaseWalletProvider","CoinbaseWalletSDK","WalletLink","WalletLinkProvider","_i$default","_eth_newPendingTransactionFilter2","_eth_newBlockFilter2","_eth_newFilter2","_wallet_watchAsset2","_wallet_switchEthereumChain2","_wallet_addEthereumChain2","_cbwallet_arbitrary2","_eth_signTypedData_v5","_eth_signTypedData_v2","_eth_signTypedData_v","_eth_sendTransaction2","_eth_sendRawTransaction2","_eth_signTransaction2","_eth_requestAccounts2","_ethereumAddressFromSignedMessage2","_signEthereumMessage2","_handleAsynchronousMethods2","_selectProvider","_genericRequest","_scanQRCode","_sendAsync","_close","_enable","_switchEthereumChain","_addEthereumChain","_watchAsset","_filterPolyfill","FilterPolyfill","_subscriptionManager","SubscriptionManager","_relay","_addresses","hasMadeFirstChainChangedEmission","_send","setProviderInfo","updateProviderInfo","setAppInfo","enable","_setAddresses","scanQRCode","genericRequest","_chainIdFromOpts","_jsonRpcUrlFromOpts","jsonRpcUrl","_overrideIsMetaMask","overrideIsMetaMask","_relayProvider","relayProvider","_storage","_relayEventManager","relayEventManager","diagnostic","diagnosticLogger","reloadOnDisconnect","isCoinbaseWallet","overrideIsCoinbaseWallet","isCoinbaseBrowser","overrideIsCoinbaseBrowser","qrUrl","supportsAddressSwitching","isLedger","chainIdStr","getItem","LOCAL_STORAGE_ADDRESSES_KEY","_t4","initializeRelay","origin","_n7","_r5","setItem","watchAsset","inlineAddEthereumChain","_isAuthorized","requestEthereumAccounts","addEthereumChain","isApproved","switchEthereumChain","selectedAddress","ethErrors","custom","rpcUrl","EVENTS","ETH_ACCOUNTS_STATE","addresses_length","sessionIdHash","Session","session","JSONRPCMethod","eth_requestAccounts","resetAndReload","_n8","_sendRequestAsync","_n9","_r6","_sendRequest","_n10","_sendMultipleRequestsAsync","invalidRequest","makeRequestId","selectProvider","_handleSynchronousMethods","_r7","_handleAsynchronousFilterMethods","_o2","_handleSubscriptionMethods","_handleAsynchronousMethods","eth_accounts","_eth_accounts","eth_coinbase","_eth_coinbase","eth_uninstallFilter","_eth_uninstallFilter","net_version","_net_version","eth_chainId","_eth_chainId","eth_sign","eth_ecRecover","personal_sign","personal_ecRecover","eth_signTransaction","eth_sendRawTransaction","eth_sendTransaction","eth_signTypedData_v1","eth_signTypedData_v2","eth_signTypedData_v3","eth_signTypedData_v4","eth_signTypedData","cbWallet_arbitrary","wallet_addEthereumChain","wallet_switchEthereumChain","wallet_watchAsset","_eth_requestAccounts","_eth_sign","_eth_ecRecover","_personal_sign","_personal_ecRecover","_eth_signTransaction","_eth_sendRawTransaction","_eth_sendTransaction","_eth_signTypedData_v1","_throwUnsupportedMethodError","_eth_signTypedData_v3","_eth_signTypedData_v4","_cbwallet_arbitrary","_wallet_addEthereumChain","_wallet_switchEthereumChain","_wallet_watchAsset","makeEthereumJSONRPCRequest","eth_newFilter","_eth_newFilter","eth_newBlockFilter","_eth_newBlockFilter","eth_newPendingTransactionFilter","_eth_newPendingTransactionFilter","eth_getFilterChanges","_eth_getFilterChanges","eth_getFilterLogs","_eth_getFilterLogs","eth_subscribe","eth_unsubscribe","handleRequest","_e5","_isKnownAddress","UNKNOWN_ADDRESS_ENCOUNTERED","_ensureKnownAddress","toAddress","weiValue","gasPriceInWei","unauthorized","unsupportedMethod","signEthereumMessage","userRejectedRequest","ethereumAddressFromSignedMessage","_t5","_requireAuthorization","_signEthereumMessage","_ethereumAddressFromSignedMessage","_t6","_prepareTransactionParams","signEthereumTransaction","submitEthereumTransaction","_t7","signAndSubmitEthereumTransaction","hashForSignTypedDataLegacy","hashForSignTypedData_v3","hashForSignTypedData_v4","rpcUrls","chainName","nativeCurrency","blockExplorerUrls","iconUrls","_e$options","invalidParams","uninstallFilter","newFilter","newBlockFilter","newPendingTransactionFilter","getFilterChanges","getFilterLogs","setAccountsCallback","setChainCallback","setDappDefaultChainCallback","getMessageFromCode","serializeError","EthereumProviderError","EthereumRpcError","errorCodes","errorValues","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","methodNotFound","internal","disconnected","chainDisconnected","STARTED_CONNECTING","CONNECTED_STATE_CHANGE","DISCONNECTED","METADATA_DESTROYED","LINKED","FAILURE","SESSION_CONFIG_RECEIVED","SESSION_STATE_CHANGE","UNLINKED_ERROR_STATE","SKIPPED_CLEARING_SESSION","GENERAL_ERROR","WEB3_REQUEST","WEB3_REQUEST_PUBLISHED","WEB3_RESPONSE","_o3","_id","_secret","_linked","persistLinked","SyntaxError","AggregateError","Atomics","BigInt64Array","BigUint64Array","decodeURI","decodeURIComponent","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","URIError","WeakRef","WeakSet","alias","formatters","RFC1738","RFC3986","ERR_STREAM_PREMATURE_CLOSE","endEmitted","req","setHeader","abort","_i5","_r8","_class3","_initialize","updates","_r9","RelayMessageType","SESSION_ID_REQUEST","SESSION_ID_RESPONSE","UNLINKED","WEB3_REQUEST_CANCELED","Ht","Vt","qt","Yt","Kt","ae","de","fe","pe","Ee","Qt","Me","Ce","Pe","De","Be","Fe","Ue","ze","qe","Ge","Ye","Qe","nn","sn","un","ln","dn","pn","Te","mn","Mn","Cn","An","jn","Oe","Pn","Un","Wn","Hn","qn","Yn","Qn","tr","rr","ar","dr","cr","fr","Ft","we","pr","gr","Sr","kr","Ir","Tr","Wr","Dr","Hr","qr","Zr","$r","Kr","oi","ui","bi","yi","throttled","clearThrottle","closingNotifier","bufferSize","startBufferEvery","subscriberClass","buffers","bufferTimeSpan","bufferCreationInterval","maxBufferSize","contexts","openContext","timespanOnly","closeAction","onBufferFull","closeContext","openings","closingSelector","closeBuffer","openBuffer","trySubscribe","subscribing","closingSubscription","_tryPredicate","emitValue","durationSubscription","dueTime","debouncedSubscription","lastValue","clearDebounce","debouncedNext","errored","_schedule","scheduleNotification","delayDurationSelector","completed","delayNotifierSubscriptions","removeSubscription","tryComplete","tryDelay","subscriptionDelay","sourceSubscribed","subscribeToSource","flushes","_useKeySelector","_finalizeNext","hasKey","Dt","Pt","errorFactory","Lt","Bt","Ut","Wt","zt","Zt","Gt","$t","Jt","hasSubscription","Xt","te","tryNext","ne","subscribeToProjection","oe","se","ue","yieldIndex","ce","he","be","ye","me","ve","Se","ring","xe","ke","Ae","Ie","je","accumulator","hasSeed","Re","_seed","Ne","Le","We","He","Ve","Ze","$e","nextSources","Je","subscribeToNextSource","Ke","Xe","hasPrev","tn","rn","an","cn","hn","yn","gn","vn","notifier","wn","sourceIsBeingSubscribedTo","retries","subscribeToRetries","retriesSubscription","notifications","Sn","En","xn","kn","In","On","Rn","Nn","Tn","Ln","compareTo","comparator","Dn","_b","_oneComplete","Bn","checkValues","nextB","completeB","Fn","windowTime","zn","Vn","seenValue","applySingleValue","singleValue","Zn","Gn","$n","_skipCount","Jn","_count","_ring","Kn","Xn","innerSubscription","er","nr","skipping","tryCallPredicate","sr","delayTime","ur","lr","hr","br","yr","mr","inclusive","vr","nextOrComplete","wr","Er","nextOrObserver","Mr","_tapNext","_tapError","_tapComplete","xr","leading","trailing","Cr","Ar","_leading","_trailing","_hasValue","_sendValue","_throttled","throttle","tryDurationSelector","throttlingDone","Or","jr","_hasTrailingValue","_trailingValue","Rr","Nr","Pr","Lr","Br","waitFor","absoluteTimeout","withObservable","Fr","scheduleTimeout","dispatchTimeout","Ur","zr","Vr","Gr","windowBoundaries","Yr","openWindow","Jr","startWindowEvery","Qr","Xr","windowTimeSpan","windowCreationInterval","maxWindowSize","ei","_numberOfNextedValues","ri","ni","numberOfNextedValues","closeWindow","si","openSubscription","ci","li","unsubscribeClosingNotification","closingNotification","di","fi","_tryProject","pi","LINK_API_URL","SDK_VERSION","_appName","_appLogoUrl","linkAPIUrl","uiConstructor","WalletSDKUI","_overrideIsCoinbaseWallet","_overrideIsCoinbaseBrowser","eventListener","_diagnosticLogger","onEvent","_reloadOnDisconnect","ScopedLocalStorage","VERSION","walletExtension","coinbaseBrowser","WalletSDKRelayEventManager","WalletSDKRelay","darkMode","appName","appLogoUrl","headlessMode","attachUI","isCipherProvider","disableReloadOnDisconnect","setConnectDisabled","getQrUrl","getQRCodeUrl","walletLogo","coinbaseWalletExtension","walletLinkExtension","_n11","isCipher","stable","stableStringify","depthLimit","edgesLimit","isValidCode","JSON_RPC_SERVER_ERROR_MESSAGE","_n12","_ref5$fallbackError","fallbackError","_ref5$shouldIncludeSt","shouldIncludeStack","_e6","originalError","_n13","_f","_g","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","plainObjects","arrayToObject","combine","prop","escape","isRegExp","maybeMap","merge","allowPrototypes","WalletSDKRelayAbstract","APP_VERSION_KEY","WALLET_USER_NAME_KEY","_class4","_makeEthereumJSONRPCRequest","intToBuffer","setLength","setLengthRight","stripHexPrefix","bufferToHex","Readable","Writable","Duplex","Transform","PassThrough","pipeline","ReadableState","debuglog","getHighWaterMark","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","objectMode","readableObjectMode","pipes","pipesCount","flowing","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","StringDecoder","_read","_destroy","resume","consume","_undestroy","undestroy","isPaused","setEncoding","stdout","stderr","hasUnpiped","needDrain","pause","unpipe","_fromList","errorEmitted","ending","finalCalled","prefinished","ERR_INVALID_OPT_VALUE","pendingcb","corkedRequestsFree","WritableState","deprecate","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","writableObjectMode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","bufferedRequest","lastBufferedRequest","bufferedRequestCount","_write","writev","_writev","final","_final","isBuf","allBuffers","hasInstance","cork","uncork","setDefaultEncoding","fillLast","lastNeed","lastTotal","lastChar","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","_transformState","transforming","writechunk","afterTransform","needTransform","writeencoding","_transform","_flush","promiseModule","_t8","errorFirst","multiArgs","_e7","_t9","_t10","_e8","exclude","include","excludeMain","_s2","currentProvider","protocolVersion","syncing","coinbase","mining","hashrate","getBlockTransactionCountByHash","getBlockTransactionCountByNumber","getUncleCountByBlockHash","getUncleCountByBlockNumber","getBlockByHash","getBlockByNumber","getTransactionByHash","getTransactionByBlockHashAndIndex","getTransactionByBlockNumberAndIndex","getUncleByBlockHashAndIndex","getUncleByBlockNumberAndIndex","getCompilers","compileLLL","compileSolidity","compileSerpent","getWork","submitWork","submitHashrate","__exportStar","getUniqueId","JsonRpcEngine","_i$default2","_runReturnHandlers2","_runAllMiddleware2","_processRequest2","_handle2","_handleBatch2","_middleware","_handleBatch","_handle","_promiseHandle","_yield$s$_runAllMiddl","_yield$s$_runAllMiddl2","_o4","_a2","_runAllMiddleware","_runReturnHandlers","_n14","_n15","_n16","_processRequest","_yield$s$_runAllMiddl3","_yield$s$_runAllMiddl4","_checkForCompletion","_yield$s$_runMiddlewa","_yield$s$_runMiddlewa2","_a3","_runMiddleware","_s3","_n17","_ref8$fallbackError","_ref8$shouldIncludeSt","_e9","_n18","Web3Method","generic","childRequestEthereumAccounts","_class5","scope","localStorage","scopedKey","removeItem","_n19","webpackPolyfill","paths","_u2","_u4","_e10","_n20","server","sha","sha1","sha224","sha384","brackets","comma","toISOString","addQueryPrefix","allowDots","charset","charsetSentinel","delimiter","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","arrayFormat","commaRoundTrip","deref","quoteStyle","maxStringLength","customInspect","indent","numericSeparator","HTMLElement","nodeName","cause","allowSparse","arrayLimit","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","additionalProperties","required","hashType","_e11","_o5","rawEncode","_e12","_c2","_t11","_r10","_t12","findTypeDependencies","_t13","_r11","_t14","sanitizeData","_n21","TYPED_MESSAGE_SCHEMA","TypedDataUtils","soliditySHA3","_r12","_n23","_rate","_capacity","_delimitedSuffix","_hashBitLength","_state","_finalized","_n24","_n25","absorb","absorbLastFewBits","squeeze","_resetState","toPrimitive","_getString","_getBuffer","trace","ERR_MISSING_ARGS","_r13","_n27","_n28","_n29","_n30","blockSize","squeezing","_t15","_e13","p1600","_e14","_e15","_e16","_s4","_a4","solidityPack","filterFromParam","_class6","logFilters","blockFilters","pendingTransactionFilters","cursors","timeouts","nextFilterId","_getBlockHashByNumber","_getCurrentBlockHeight","_setInitialCursorPosition","_getPendingTransactionFilterChanges","_getBlockFilterChanges","_getLogFilterChanges","_getFilterLogs","_newPendingTransactionFilter","_newBlockFilter","_newFilter","makeFilterId","setInitialCursorPosition","setFilterTimeout","deleteFilter","getLogFilterChanges","getBlockFilterChanges","getPendingTransactionFilterChanges","sendAsyncPromise","_e17","_o6","_e18","getCurrentBlockHeight","getBlockHashByNumber","_yield$this$sendAsync","_class7","setSkipCacheFlag","blockTracker","middleware","subscriptionMiddleware","_handleRequest","_class8","_fetchLatestBlock2","_updateLatestBlock2","_performSync2","_checkForLatestBlock","retryTimeout","keepEventLoopActive","blockResetDuration","_retryTimeout","_keepEventLoopActive","_setSkipCacheFlag","_updateLatestBlock","getLatestBlock","_performSync","_e19","_isRunning","_fetchLatestBlock","_newPotentialLatest","skipCache","_r14","_class9","_getLatestBlock","_blockResetDuration","_blockResetTimeout","_currentBlock","_onNewListener","_onRemoveListener","_resetCurrentBlock","_setupInternalEvents","_maybeStart","_getBlockTrackerEventCount","_maybeEnd","_cancelBlockResetTimeout","_start","_setupBlockResetTimeout","_end","_setCurrentBlock","oldBlock","newBlock","noDeprecation","throwDeprecation","traceDeprecation","stylize","colors","showHidden","_extend","styles","toUTCString","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","yellow","special","null","date","regexp","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isDate","isFunction","isPrimitive","getHours","getMinutes","getSeconds","getDate","getMonth","promisify","callbackify","_n31","createAsyncMiddleware","createScaffoldMiddleware","_n32","sha3Uncles","stateRoot","transactionsRoot","receiptsRoot","mixHash","_n33","_update2","newLogFilter","_destroy2","idHex","_t16","createIdRemapMiddleware","_u6","_u8","_e20","_n34","mergeMiddleware","asMiddleware","Mutex","_n35","_n36","_args64","_e21","mutex","acquire","prevFilterCount","newFilterCount","_m","_v","getChangesAndClear","_S","getAllResults","_M","currentBlock","_n37","_o7","_class10","_fetchLogs2","_update3","_initialize2","ethQuery","_fetchLogs","addInitialResults","matchLog","addResults","_r15","_n38","_r16","_class11","_update4","_this30","allResults","_r17","_class12","_update5","_this31","_r18","_class13","_update6","_this32","_t17","_class14","standalone","attached","appSrc","snackbar","Snackbar","linkFlow","LinkFlow","sessionId","sessionSecret","secret","connected$","chainId$","isParentConnection","documentElement","className","attach","injectCssReset","open","onCancel","isUnlinkedErrorState","autoExpand","menuItems","isRed","svgWidth","svgHeight","defaultFillRule","defaultClipRule","onClick","onResetConnection","presentItem","reload","_class15","extensionUI$","BehaviorSubject","Subscription","isConnected","isOpen","connectDisabled","_this33","parentElement","_this34","ConnectDialog","useState","useEffect","class","ConnectContent","theme","TryExtensionContent","CoinbaseAppSteps","CoinbaseWalletSteps","ConnectItem","icon","steps","_ref44","selected","alt","_ref45","QRCodeIcon","StatusDotIcon","useCallback","CloseIcon","_ref49","_ref50","QRCode","height","fgColor","bgColor","svg","LIB_VERSION","Spinner","color","viewBox","xmlns","_ref52","background","ecl","MODE_8BIT_BYTE","parsedData","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","getLength","put","addData","isDark","getModuleCount","make","makeImpl","getBestMaskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","getLostPoint","createMovieClip","createEmptyMovieClip","beginFill","moveTo","lineTo","endFill","getPatternPosition","getBCHTypeNumber","getBCHTypeInfo","getMask","PAD0","PAD1","getRSBlocks","getLengthInBits","putBit","createBytes","totalCount","getErrorCorrectPolynomial","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","gexp","glog","LOG_TABLE","EXP_TABLE","RS_BLOCK_TABLE","getRsBlockTable","qrcode","pretty","xmlDeclaration","predefined","_t18","_e22","cx","stroke","_ref53","_ref55","ArrowLeftIcon","LaptopIcon","SafeIcon","SnackbarInstance","SnackbarContainer","_class16","nextItemKey","_this35","_ref56","_ref57","_ref58","_ref60","_ref62","_v$WalletSDKRelayAbst","_this36","accountsCallback","chainCallback","dappDefaultChainSubject","dappDefaultChain","_this36$subscribe","_session","_this37","WalletSDKConnection","sessionConfig$","onSessionConfigChanged","incomingEvent$","handleIncomingEvent","linked$","tap","isLinked","linked","_r19","_t19","getSessionIdHash","__destroyed","isDestroyed","alreadyDestroyed","WalletUsername","mergeMap","AppVersion","ChainId","JsonRpcUrl","zip","distinctUntilChanged","_ref63","_ref64","EthereumAddress","accountRequestCallbackIds","Web3ResponseMessage","RequestEthereumAccountsResponse","invokeCallback","AppSrc","setAppSrc","_this38","setSessionMetadata","catchError","of","isStandalone","sessionMetadataChange","storedSessionIdHash","reloadUI","_this38$subscribe","setStandalone","sendRequest","addPrefix","typedDataJson","shouldSubmit","regExp","_this39","_r20","publishWeb3RequestCanceledEvent","handleErrorResponse","showConnecting","sendRequestStandalone","publishWeb3RequestEvent","_this40","Web3RequestMessage","eventId","isSessionMismatched","publishEvent","handleWeb3ResponseMessage","Web3RequestCanceledMessage","_this41","Observable","_this42","isWeb3ResponseMessage","_this43","isRequestEthereumAccountsResponse","ErrorResponse","WalletUIError","UserRejectedRequest","_this44","_n41","hideRequestEthereumAccounts","_t20","inlineAccountsResponse","onAccounts","_t22","_this45","providerOptions","onApprove","SelectProviderResponse","_this46","inlineWatchAsset","WatchAssetReponse","_this47","AddEthereumChainResponse","_this48","_e23","SwitchEthereumChainUnsupportedChainId","SwitchEthereumChainResponse","inlineSwitchEthereumChain","_this49","_n42","onSuccess","typeOfFunction","boolTrue","_class17","_this50","sessionKey","lastHeartbeatResponse","nextReqId","connectedSubject","linkedSubject","sessionConfigSubject","ReplaySubject","RxWebSocket","connectionState$","ConnectionState","flatMap","retry","switchMap","iif","CONNECTED","authenticate","sendIsLinked","sendGetSessionConfig","updateLastHeartbeat","heartbeat","incomingData$","incomingJSONData$","onlineGuests","metadata_keys","webhookId","webhookUrl","disconnect","_this51","ClientMessageSetSessionConfig","onceConnected$","makeRequest","isServerMessageFail","_this52","ClientMessagePublishEvent","callWebhook","onceLinked$","sendData","timeoutWith","ClientMessageHostSession","ClientMessageIsLinked","ClientMessageGetSessionConfig","_class18","WebSocketClass","webSocket","connectionStateSubject","incomingDataSubject","Subject","_this53","clearWebSocket","empty","_this54","_ref65","_t23","_e24","EthereumAddressFromSignedMessageResponse","SubmitEthereumTransactionResponse","SignEthereumTransactionResponse","SignEthereumMessageResponse","_class19","_nextRequestId","throw","trys","SuppressedError","_maxConcurrency","_queue","isLocked","_dispatch","runExclusive","release","_currentReleaser","_semaphore","_CoinbaseWalletSdk$CoinbaseWalletSDK","_optionalChain$B","alts","succeeded","failed","accepted","bigNumberify","_succeeded","_failed","_getData","_prepare","getParamType","populatedTransaction","getMethodNameWithSignature","originalSucceeded","originalFailed","_optionalChain$A","sendTransaction$3","prepare","submit$3","_yield$provider$getSi","confirmedTransaction","failedReason","getConfirmedTransaction","submitThroughWallet","submitDirectly","submitInstructions","submitSimpleTransfer$3","messageV0","transactionV0","compileToV0Message","getAddressLookupTable","supported$1","_optionalChain$z","WindowSolana","blockchains","_connectedTo","_account","_yield$window$solana$","isBraveWallet","onlyIfTrusted","internalCallback","_11","_12","blockchainName","encodedMessage","signedMessage","signMessage","signAndSendTransaction","isAvailable","phantom","glow","isGlow","identifier","coin98","_9","isBitKeep","trustwallet","_10","okxwallet","_optionalChain$y","__initStatic","__initStatic2","_WindowSolana","Backpack","_sign2","backpack","sendAndConfirm","isBackpack","_optionalChain$x","sendTransaction$2","connectedTo","switchTo","submit$2","sentTransaction","retrieveConfirmedTransaction$2","submitContractInteraction$2","submitSimpleTransfer$2","_optionalChain$w","_value6","WindowEthereum","_sign3","_connectedTo2","_connect2","_account2","addNetwork","_38","_39","_40","_41","_42","_43","isTrust","_44","_45","isTrustWallet","_46","_47","isDeficonnectProvider","_48","_49","isHyperPay","_50","_51","_52","_53","isRabby","_54","_55","_56","_57","isTokenPocket","_58","_59","_60","_61","_62","_63","isWalletLink","_64","_65","providerMap","_66","_67","_68","_69","_70","_71","isUniswapWallet","_72","_73","isRainbow","_74","_optionalChain$v","_value7","_WindowEthereum","Binance","BinanceChain","logos","_optionalChain$u","_value8","_WindowEthereum2","BraveEVM","_optionalChain$t","_value9","_len9","_key9","_WindowSolana2","BraveSVM","braveSolana","_optionalChain$s","_value10","_len10","_key10","_WindowEthereum3","Coin98EVM","_optionalChain$r","_value11","_len11","_key11","_WindowSolana3","Coin98SVM","sol","_optionalChain$q","_value12","_len12","_key12","_WindowEthereum4","CoinbaseEVM","_13","_14","_15","_16","_17","_18","_19","_20","_21","_22","_23","_24","_WindowSolana4","CoinbaseSVM","coinbaseSolana","_optionalChain$p","_value13","_len13","_key13","_WindowEthereum5","CryptoCom","_optionalChain$o","_value14","_len14","_key14","_WindowEthereum6","ExodusEVM","isExodus","_optionalChain$n","_value15","_len15","_key15","_WindowSolana5","ExodusSVM","_WindowSolana6","Glow","_optionalChain$m","_value16","_len16","_key16","_WindowEthereum7","HyperPay","_optionalChain$l","_value17","_len17","_key17","_WindowEthereum8","MagicEdenEVM","isMagicEden","_optionalChain$k","_value18","_len18","_key18","_WindowSolana7","MagicEdenSVM","_optionalChain$j","_value19","_len19","_key19","_WindowEthereum9","getEip6963Provider","_optionalChain$i","_value20","_len20","_key20","__initStatic3","__initStatic4","_WindowEthereum10","OKXEVM","_optionalChain$h","_value21","_len21","_key21","_WindowSolana8","OKXSVM","isOkxWallet","_optionalChain$g","_value22","_len22","_key22","_WindowEthereum11","Opera","isOpera","_optionalChain$f","_value23","_len23","_key23","_WindowEthereum12","PhantomEVM","_optionalChain$e","_value24","_len24","_key24","_WindowSolana9","PhantomSVM","_optionalChain$d","_value25","_len25","_key25","_WindowEthereum13","Rabby","_optionalChain$c","_value26","_len26","_key26","_WindowEthereum14","Rainbow","rainbow","_optionalChain$b","_value27","_len27","_key27","KEY$1","base64String","binaryString","getIdentity","favicon","nodeList","getElementsByTagName","explodedPath","SolanaMobileWalletAdapter","_sendTransaction2","_sign4","_connectedTo3","_connect3","_account3","_reauthorize","_authorize","authorize","identity","auth_token","authToken","reauthorize","_optionalChain$a","_value28","_len28","_key28","_WindowSolana10","Solflare","solflare","isSolflare","_optionalChain$9","_value29","_len29","_key29","_WindowEthereum15","TokenPocket","_optionalChain$8","_value30","_len30","_key30","_WindowEthereum16","TrustEVM","_optionalChain$7","_value31","_len31","_key31","_WindowSolana11","TrustSVM","_super27","_optionalChain$6","_value32","_len32","_key32","_WindowEthereum17","Uniswap","_super28","transactionApiBlockchainNames","explorerBlockchainNames","Safe","_retrieveTransaction","_transactionCount","jsonResult","isExecuted","_ref59","isSmartContractWallet","identifySmartContractWallet","_ref61","getSmartContractWallet","Argent","smartContractWallet","_value33","_len33","_key33","sendTransaction$1","submit$1","retrieveConfirmedTransaction$1","retrieveTransaction","_ref66","_ref67","submitContractInteraction$1","submitSimpleTransfer$1","_ref69","_ref68","signClient","getData","t9","t10","t11","t12","t13","t14","t15","_ref71","_ref70","_value34","_len34","_key34","KEY","DEFAULT_CONFIGURATION","getConnectedInstance$1","_ref72","getLastSession","_ref73","walletName","existingSessions","lastSession","expiry","ping","methods","requiredNamespaces","chains","optionalNamespaces","eip155","getSignClientPromise","_ref74","icons","WalletConnectV2","_sign5","_transactionCount2","_connectedTo4","_connect4","_setSessionBlockchains","_account4","namespaces","chainIdentifier","_25","_26","_27","accountIdentifier","_28","_29","_30","connectWallet","_ref75","_31","_32","_33","_34","_ref76","_35","_36","_37","setSessionBlockchains","_ref77","_yield$_this16$signCl","approval","peer","_ref78","_ref79","getValidChainId","_ref80","_value35","_len35","_key35","getConnectedInstance","_ref82","_ref81","connector","retrieveConfirmedTransaction","_ref83","submitSimpleTransfer","_ref84","_ref85","_value36","_len36","_key36","_connectedWalletLinkInstance","setConnectedInstance","newWalletLinkInstance","_sign6","_connectedTo5","_connect5","_account5","makeWeb3Provider","connectedAccounts","_ref86","connectedChainId","_ref87","_provider2","_value37","_len37","_key37","WorldApp","install","_sign7","_transactionCount3","_connectedTo6","_account6","_ref89","MiniAppSendTransaction","fetchTransaction","functionName","commands","transaction_id","transactionJSON","external_id","retryFetchTransaction","walletAddress","_ref90","_yield$MiniKit$comman","finalPayload","MiniAppWalletAuth","_ref91","MiniKit","commandsAsync","walletAuth","randomUUID","expirationTime","notBefore","statement","_ref92","MiniAppSignMessage","_ref93","wallets","_value38","_len38","_key38","getWallets","_ref95","drip","announceProvider","availableWallets","detail","dispatchEvent","_ref96","CloseStackContext","createContext","NavigateStackContext","StackContext","_jsxFileName","ReactDialogStack","_React$Component","setNavigator","stacked","direction","animating","animation","animationSpeed","navigate","route","unstack","newStack","stackState","classForState","classForPosition","classForAnimation","classForDirection","__self","__source","fileName","lineNumber","hide","dialogs","force","animate","renderStack","Component","isElement","isHTMLElement","isShadowRoot","ShadowRoot","_callSuper","_toPropertyKey","makeInvokeMethod","_superPropGet","_toPrimitive","_isNativeFunction","base64Js","lens","getLens","validLen","placeHoldersLen","_byteLength","curByte","ieee754","isHex","_ref$strict","base64","ieee754$1","customInspectSymbol","K_MAX_LENGTH","arrayView","isInstance","fromArrayView","numberIsNaN","mustMatch","proto","typedArraySupport","toLocaleString","hexSliceLookupTable","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","readUintLE","readUintBE","readUint8","readUint16LE","readUint16BE","readUint32LE","readUint32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readBigInt64LE","readBigInt64BE","writeUintLE","writeUintBE","writeUint8","writeUint16LE","writeUint16BE","writeUint32LE","writeUint32BE","writeBigUInt64LE","writeBigUInt64BE","writeBigInt64LE","writeBigInt64BE","copyWithin","getMessage","Base","_Base","NodeError","addNumericalSeparator","ERR_OUT_OF_RANGE","checkBounds","ERR_BUFFER_OUT_OF_BOUNDS","received","table","BufferBigIntNotDefined","errorConfig","getDocsUrl","docsBaseUrl","_ref$docsPath","docsPath","docsSlug","BaseError","shortMessage","_errorConfig$getDocsU","_errorConfig","_args$name","_args$cause","docsUrl","metaMessages","_walk","AbiEncodingLengthMismatchError","_BaseError8","givenLength","BytesSizeMismatchError","_BaseError19","expectedSize","givenSize","UnsupportedPackedAbiType","_BaseError26","SizeExceedsPaddingSizeError","_BaseError2","targetSize","hexOrBytes","_ref$size","padHex","padBytes","hex_","_ref2$size","_ref3$size","paddedBytes","padEnd","IntegerOutOfRangeError","_BaseError","SizeOverflowError","_BaseError5","maxSize","size$1","boolToHex","numberToHex","value_","maxValue","minValue","encoder$2","stringToHex","encoder$1","boolToBytes","charCodeMap","charCodeToBase16","nibbleLeft","nibbleRight","numberToBytes","_fromBig","byteSwap32","_round","_y","to_","toBytes$1","InvalidAddressError","LruMap","_Map","firstKey","checksumAddressCache","addressRegex","isAddressCache","address_","hexAddress","checksumAddress","concatHex","arrayRegex","bytesRegex","integerRegex","intMatch","_intMatch","_intMatch$","bytesMatch","_bytesMatch","arrayMatch","_arrayMatch","childType","hashToField","BYTES_PER_ELEMENT","hashEncodedBytes","hashString","packAndEncode","_input$reduce","types2","values2","_input$reduce2","encodePacked","rawDigest","hasRequiredUseSyncExternalStoreShim_development","hasRequiredShim","generateSignal","encodeAction","createStoreImpl","createState","partial","previousState","getState","getInitialState","NODE_ENV","MODE","BASE_URL","DEV","PROD","ReactExports","withSelector","shim","useSyncExternalStoreShim_development","requireShim","__REACT_DEVTOOLS_GLOBAL_HOOK__","registerInternalModuleStart","React","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","printWarning","ReactDebugCurrentFrame","getStackAddendum","argsWithFormat","objectIs","useLayoutEffect","didWarnOld18Alpha","didWarnUncachedGetSnapshot","checkIfSnapshotChanged","inst","latestGetSnapshot","getSnapshot","prevValue","nextValue","getServerSnapshot","startTransition","cachedValue","_useState","useSyncExternalStore$2","useSyncExternalStore","registerInternalModuleStop","hasRequiredWithSelector_development","withSelector_development","useRef","useMemo","useSyncExternalStoreWithSelector","isEqual","instRef","_useMemo","memoizedSnapshot","memoizedSelection","hasMemo","memoizedSelector","nextSnapshot","_nextSelection","currentSelection","prevSelection","nextSelection","maybeGetServerSnapshot","getSelection","getServerSelection","didWarnAboutEqualityFn","createImpl","createStore","useBoundStore","equalityFn","getServerState","useStore","AppErrorCodes","AppErrorCodes2","VerificationLevel","VerificationLevel2","validate_bridge_url","bridge_url","is_staging","test_url","hostname","search","endsWith","_VerificationErrorMes","buffer_encode","buffer$1","buffer_decode","encoded","verification_level_to_credential_types","verification_level","credential_type_to_verification_level","credential_type","encryptRequest","decryptResponse","DEFAULT_BRIDGE_URL","requestId","connectorURI","verificationState","createClient","_createClient","app_id","action_description","_yield$generateKey","validation","_yield$res$json","request_id","credential_types","t16","t17","pollForUpdates","_pollForUpdates","_yield$res$json2","error_code","sendWebviewEvent","_window$webkit","_window$webkit$postMe","webkit","messageHandlers","minikit","postMessage","Android","_window$Android$postM","_window$Android","ResponseEvent","ResponseEvent2","VerificationRejected","MaxVerificationsReached","CredentialUnavailable","MalformedRequest","InvalidNetwork","InclusionProofFailed","InclusionProofPending","UnexpectedResponse","FailedByHostApp","GenericError","ConnectionFailed","_signTypedData","_signMessage","_walletAuth","_pay","_verify","MiniKitInstallErrorMessage","getUserProfile","_usernames$","usernames","username","profilePictureUrl","sendMiniKitEvent","_MiniKit","command","MINIKIT_VERSION","originalHandler","queryResponse","_awaitCommand","executor","commandPayload","commandVersion","commandName","commandInput","isCommandAvailable","supported_versions","appId","success","sendInit","commandsValid","supported_commands","isInstalled","eventPayload","Orb","pay","token_amount","validatePaymentPayload","_payload$statement","_payload$expirationTi","_payload$expirationTi2","_payload$notBefore$to","_payload$notBefore","_payload$requestId","validationResult","walletAuthPayload","siweMessage","siweMessageData","chain_id","issued_at","expiration_time","not_before","generateSiweMessage","signTypedData","awaitCommand","common","ripemd","ownerDocument","defaultView","timezoneToCurrency","Currency","_ref$timeZone","timeZone","_LocalCurrencyCode","_fromUSD","minimumFractionDigits","Intl","NumberFormat","language","fromToUsd","toToUsd","fromUSD","rate","getCacheKey","getCachedValue","DateTimeFormat","resolvedOptions","Route","tokenIn","decimalsIn","tokenOut","decimalsOut","pools","amountIn","amountInMax","amountOut","amountOutMin","exchange","getPrep","approvalRequired","getApproval","getDefaultSlippage","calculateAmountInWithSlippage","exchangePath","defaultSlippage","newAmountInWithDefaultSlippageBN","lastAmountsIn","newAmountInWithExtremeSlippageBN","difference1","difference2","slippage","_difference","_difference2","_slippage","highestAmountBN","_yield$exchange$getAm","getAmounts","calculateAmountOutLessSlippage","newAmountOutWithoutDefaultSlippageBN","calculateAmountsWithSlippage","amounts","amountInInput","amountOutInput","amountInMaxInput","amountOutMinInput","amountsWithSlippage","_amountsWithSlippage","amountWithSlippage","fixAddress","getAmount","fixRouteParams","preflight","route$1","_ref15$amountIn","_ref15$amountOut","_ref15$amountInMax","_ref15$amountOutMin","findPath","_getPrep","_yield$findPath","_yield$getAmounts","_yield$calculateAmoun","_getPrep2","_getTransaction2","inputTokenPushed","Exchange","_route","getExchangePath$4","minReserveRequirements","reserves","token0","token1","pathExists$5","factory","findPath$5","USD","_USD","_USD2","getAmountOut$3","router","amountsOut","getAmountIn$3","amountsIn","getAmounts$5","getPrep$3","allowance","UniswapV2","pathExists","deadline","ROUTER","FACTORY","PAIR","exchange$h","honeyswap","MAX_SQRT_PRICE","MIN_SQRT_PRICE","invertTick","tick","PriceMath","price","decimalsA","decimalsB","sqrtPriceX64","tickIndex","ratio","signedShiftRight","tickIndexToSqrtPricePositive","tickIndexToSqrtPriceNegative","bitWidth","twosN0","adjustedMsb","log2pIntegerX32","precision","log2pFractionX64","rMoreThanTwo","log2pFractionX32","logbpX64","tickLow","tickHigh","tickIndexToSqrtPriceX64","sqrtPriceX64ToPrice","sqrtPriceX64ToTickIndex","priceToSqrtPriceX64","tickSpacing","getInitializableTickIndex","priceToTickIndex","invTick","tickIndexToPrice","n0","twoN0","PROTOCOL_FEE_RATE_MUL_VALUE","FEE_RATE_MUL_VALUE","TWO","_BN","assert__default","BitMath","isOverLimit","mulDivRoundUpIf","roundUp","checked_mul_shift_right_round_up_if","shouldRound","limitBN","divRoundUpIf","getNextSqrtPrices","sqrtPriceLimit","aToB","nextTickPrice","nextSqrtPriceLimit","toIncreasingPriceOrder","sqrtPrice0","sqrtPrice1","getAmountDeltaA","currSqrtPrice","targetSqrtPrice","currLiquidity","_toIncreasingPriceOrd2","sqrtPriceLower","sqrtPriceUpper","sqrtPriceDiff","numerator","denominator","quotient","remainder","getAmountDeltaB","_toIncreasingPriceOrd4","getNextSqrtPrice","sqrtPrice","amountSpecifiedIsInput","currLiquidityShiftLeft","divRoundUp","getNextSqrtPriceFromARoundUp","amountX64","getNextSqrtPriceFromBRoundDown","getAmountFixedDelta","computeSwapStep","amountRemaining","feeRate","amountFixedDelta","amountCalc","mulDiv","nextSqrtPrice","isMaxSwap","amountUnfixedDelta","getAmountUnfixedDelta","feeAmount","feeRateBN","mulDivRoundUp","nextPrice","calculateNextLiquidity","tickNetLiquidity","calculateFees","protocolFeeRate","currProtocolFee","currFeeGrowthGlobalInput","nextProtocolFee","nextFeeGrowthGlobalInput","globalFee","calculateProtocolFee","globalFeeIncrement","compute","tokenAmount","freshWhirlpoolData","tickSequence","amountCalculated","liquidity","currTickIndex","tickCurrentIndex","totalFeeAmount","feeGrowthGlobalA","feeGrowthGlobalB","nextTickIndex","findNextInitializedTickIndex","nextIndex","_getNextSqrtPrices","swapComputation","_calculateFees","getTick","initialized","liquidityNet","WHIRLPOOL_REWARD_LAYOUT","WHIRLPOOL_LAYOUT","TICK_LAYOUT","TICK_ARRAY_LAYOUT","MAX_TICK_INDEX","MIN_TICK_INDEX","TICK_ARRAY_SIZE","getStartTickIndex","startTickIndex","ticksInArray","getTickArrayAddresses","pool","tickArrayAddresses","startIndex","pda","getTickArrays","TickArrayIndex","arrayIndex","offsetIndex","fromTickIndex","toTickIndex","TickArraySequence","tickArrays","sequence","tickArray","touchedArrays","startArrayIndex","checkIfIndexIsInTickArrayRange","minArraySize","curr","sizeDiff","targetTaIndex","isArrayIndexInBounds","localArrayIndex","getLocalArrayIndex","ticks","currIndex","searchIndex","currTaIndex","currTickData","nextTickData","toPrevInitializableTickIndex","toNextInitializableTickIndex","seqLength","startTick","upperBound","getPrice","tokenMintA","getAccounts","quote","whirlpoolsConfig","_whirlpoolsConfig","dataSize","memcmp","getPairsWithPrice","_yield$getPrice","tokenVaultA","tokenVaultB","getHighestPrice","pairs","bestPricePair","currentPair","getLowestPrice","getBestPair","bestPair","blockchain$1","getExchangePath$3","pathExists$4","_ref51","findPath$4","_ref54","stablesIn","stablesOut","getAmountsOut","getAmountsIn","getAmounts$4","SWAP_INSTRUCTION","TWO_HOP_SWAP_INSTRUCTION","createTokenAccountIfNotExisting","outAccountExists","getTwoHopSwapInstructionKeys","poolOne","tickArraysOne","tokenAccountOneA","tokenVaultOneA","tokenAccountOneB","tokenVaultOneB","poolTwo","tickArraysTwo","tokenAccountTwoA","tokenVaultTwoA","tokenAccountTwoB","tokenVaultTwoB","lastInitializedTickOne","onlyInitializedTicksOne","lastInitializedTickTwo","onlyInitializedTicksTwo","t18","t19","t20","t21","getTwoHopSwapInstructionData","LAYOUT","otherAmountThreshold","aToBOne","aToBTwo","sqrtPriceLimitOne","sqrtPriceLimitTwo","anchorDiscriminator","getSwapInstructionKeys","tokenAccountA","tokenAccountB","lastInitializedTick","onlyInitializedTicks","getSwapInstructionData","getTransaction$4","tokenMiddle","startsWrapped","endsUnwrapped","wrappedAccount","rent","createAccountInstruction","tokenAccountIn","tokenAccountOut","_amountSpecifiedIsInput","_amount","_otherAmountThreshold","_tokenAccountIn","_tokenMiddle","tokenAccountMiddle","_tokenAccountOut","generate","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","Orca","exchange$g","orca","exchange$f","pancakeswap","getExchangePath$2","getInputAmount$1","outputAmount","quoter","getOutputAmount$1","inputAmount","getBestPool$2","fees","pathExists$3","findPath$3","allPoolsForAllUSD","usdPath","getAmountOut$2","getAmountIn$2","_ref88","_path","getAmounts$3","getPrep$2","routerAddress","smartRouter","getTransaction$3","_ref94","routerInterface","packedPath","_packedPath","amountOutMinimum","sqrtPriceLimitX96","amountInMaximum","PancakeSwapV3","SMART_ROUTER","POOL","QUOTER","exchange$e","pancakeswap_v3","exchange$d","quickswap","exchange$c","spookyswap","getExchangePath$1","getBestPool$1","_ref97","bestPool","virtualAmountsWithoutSlippage","pathExists$2","_ref99","_ref98","findPath$2","_ref101","_ref100","_ref102","getAmountOut$1","_ref104","_ref103","bestPath","getAmountIn$1","_ref106","_ref105","getAmounts$2","_ref108","_ref107","getPrep$1","_ref110","_ref109","getTransaction$2","_ref112","_ref111","fullPath","binSteps","amountNATIVEOut","amountOutMinNATIVE","TraderJoeV2_1","exchange$b","trader_joe_v2_1","exchange$a","uniswap_v2","getExchangePath","_ref113","getInputAmount","_ref115","_ref114","getOutputAmount","_ref117","_ref116","getBestPool","_ref119","_ref118","_ref120","amountScaled","amountScaledDown","difference","_amountScaled","_amountScaledDown","_difference3","pathExists$1","_ref122","_ref121","findPath$1","_ref124","_ref123","_ref125","getAmountOut","_ref126","getAmountIn","_ref128","_ref127","_path2","getAmounts$1","_ref130","_ref129","_ref132","_ref131","packPath","packPathReverse","getTransaction$1","_ref134","_ref133","exactInput","wrapETH","unwrapETH","refundETH","multicalls","UniswapV3","PERMIT2","exchange$9","permit","uniswap_v3","_ref136","_ref135","_ref138","_ref137","_ref140","_ref139","WETH$1","_ref141","wad","exchange$8","wavax","exchange$7","wbnb","exchange$6","weth","exchange$5","weth_arbitrum","exchange$4","weth_optimism","exchange$3","weth_base","exchange$2","wftm","exchange$1","wmatic","wxdai","exchanges","_ref142","routes","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","DEFAULTS","rounding","toExpNeg","toExpPos","minE","maxE","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isBinary","isOctal","isDecimal","LN10_PRECISION","PI_PRECISION","digitsToString","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","clampedTo","clamp","Ctor","comparedTo","xdL","ydL","xd","yd","xs","cosine","sd","tinyPow","taylorSeries","times","cos2x","minus","plus","toLessThanHalfPi","cubeRoot","cbrt","rep","t3plusx","toExponential","divide","decimalPlaces","dp","dividedBy","dividedToIntegerBy","divToInt","greaterThan","greaterThanOrEqualTo","hyperbolicCosine","cosh","cosh2_x","d8","hyperbolicSine","sinh","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","halfPi","getPi","asin","inverseHyperbolicCosine","acosh","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","atan","inverseTangent","isInt","isPositive","isPos","lessThan","lessThanOrEqualTo","logarithm","isBase10","inf","naturalLogarithm","getLn10","xLTy","getBase10Exponent","naturalExponential","exp","negated","getPrecision","sine","sin2_x","squareRoot","tangent","tan","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","maxD","d0","d1","d2","toHexadecimal","toNearest","toOctal","toPower","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","aL","bL","logBase","more","prod","prodL","qd","remL","rem0","xi","xL","yd0","yL","yz","isTruncated","xdi","isExp","nonFiniteToString","zs","truncate","maxOrMin","ltgt","guard","c0","parseDecimal","parseOther","divisor","isFloat","isHyperbolic","atan2","useDefaults","defaults","ps","hypot","isDecimalInstance","log2","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","getBasePlacement","getNodeName","element","getDocumentElement","checkInts","arrayish","coerceArray","createArray","copyArray","sourceArray","targetArray","sourceStart","sourceEnd","Hex","convertUtf8","convertHex","numberOfRounds","rcon","Si","T4","T5","T6","T7","T8","U3","U4","convertToInt32","AES","_Ke","_Kd","roundKeyCount","KC","tk","rconpointer","ModeOfOperationECB","_aes","ModeOfOperationCBC","_lastCipherblock","ModeOfOperationCFB","segmentSize","_shiftRegister","xorSegment","encrypted","ModeOfOperationOFB","_lastPrecipher","_lastPrecipherIndex","initialValue","_counter","setValue","setBytes","increment","ModeOfOperationCTR","_remainingCounter","_remainingCounterIndex","aesjs","ecb","cfb","ofb","padder","_arrayTest","getComputedStyle","checkDCE","rectToClientRect","rect","getClientRectFromMixedType","clippingParent","win","html","visualViewport","clientWidth","clientHeight","offsetLeft","offsetTop","getWindowScrollBarX","getViewportRect","getBoundingClientRect","clientTop","clientLeft","getInnerBoundingClientRect","_element$ownerDocumen","winScroll","getWindowScroll","scrollWidth","scrollHeight","scrollLeft","scrollTop","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","listScrollParents","getParentNode","clipperElement","getOffsetParent","contains","getClippingParents","firstClippingParent","clippingRect","accRect","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","paddingObject","mergePaddingObject","expandToHashMap","altContext","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","computeOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","axis","tokenURIAPI","UNKNOWN_IMAGE","TokenImage","_useState2","setSrc","_useState4","_setSource","getLocalStorageKey","setSource","storedImage","foundMajorToken","logoFromRepository","logoFromMetaplex","mapBlockchainNameToTrustWalletAssets","setUnknown","uriToImage","isSurrogatePair","htonl","zero2","zero8","enc","toHex32","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","includeScale","scaleX","scaleY","offsetHeight","offsetWidth","getVariation","isTableElement","getTrueOffsetParent","offsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","assignedSlot","within","withinMaxClamp","equal","BlockHash","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","solanaRouters","ammProgram","createPaymentsAccount","createEscrowSolAccount","createEscrowTokenAccount","routeSol","routeToken","routeOrcaSwap","routeOrcaSwapSolOut","routeOrcaTwoHopSwap","routeOrcaTwoHopSwapSolOut","_optionalChain$1$1","getWSolSenderAccountKeypairIfNeeded","paymentRoute","fromToken","toToken","getWSolEscrowAccountKeypairIfNeeded","createWSolSenderAccount","wSolSenderAccountKeypair","wSolStartAmount","fromAmount","createEscrowOutWSolAccount","wSolEscrowAccountKeypair","getEscrowSolAccountPublicKey","getMiddleToken","exchangeRoutes","getMiddleTokenAccountAddress","getMiddleTokenAccount","createTokenMiddleAccount","getFixedPath","closeWSolSenderAccount","getPaymentsAccountAddress","pdaPublicKey","getPaymentsAccountData","getPaymentSenderTokenAccountAddress","getPaymentReceiverTokenAccountAddress","getPaymentReceiverTokenAccount","createPaymentReceiverAccount","paymentReceiverBalance","paymentAmount","toAmount","getFeeReceiverTokenAccountAddress","getFeeReceiverTokenAccount","createFeeReceiverAccount","feeReceiverBalance","_yield$PublicKey$find3","_yield$PublicKey$find4","getEscrowSolAccountData","getEscrowAccountPublicKey","_yield$PublicKey$find5","_yield$PublicKey$find6","getEscrowAccountData","createEscrowOutTokenAccount","createEscrowOutSolAccount","getPaymentMethod","getNonce","paymentsAccountData","paymentReceiverPublicKey","feeReceiverPublicKey","senderTokenAccountAddress","paymentReceiverTokenAccountAddress","feeReceiverTokenAccountAddress","escrowOutPublicKey","exchangeRouteTransaction","exchangeRouteSwapInstruction","SWAP_LAYOUT","exchangeRouteSwapInstructionData","escrowOutWsolPublicKey","paymentReceiverTokenAccountPublicKey","feeReceiverTokenAccountPublicKey","middleTokenAccountPublicKey","senderTokenAccountPublicKey","payment","paymentMethod","API","routers$1","routers","_freeGlobal","freeSelf","_Symbol","getBlockchainCost","EXCHANGE_PROXIES","transactionAddress","transactionApi","transactionMethod","transactionParams","transactionValue","directTransfer","getExchangeType","exchangeRoute","getExchangeCallData","paramsToEncode","exchangeTransaction","getPermit2SignatureTransferNonce","getBitmap","getFirstUnsetBit","buildNonce","bitmap","bitPos","shr","exchangeType","exchangeCallData","exchangeAddress","permitDeadline","permitTransfer","permitted","protocolAmount","tokenInAddress","tokenOutAddress","paymentReceiverAddress","feeReceiverAddress","receiverType","receiverCallData","PaymentRoute","fromDecimals","fromBalance","toDecimals","currentAllowance","approvalTransaction","assetsToRoutes","assets","blacklist","filterBlacklistedAssets","asset","relevantConfigurations","configuration","_blockchain","_blockchain2","_fromDecimals","_toToken","_toDecimals","convertToRoutes","addDirectTransferStatus","addExchangeRoutes","filterNotRoutable","filterInsufficientBalance","addRouteAmounts","addApproval","sortPaymentRoutes","filterDuplicateFromTokens","whitelist","resolveAll","rejectAll","_blockchain3","sortPriorities","drippedIndex","dripQueue","dripped","priorities","thresholdToFirstDripIfNo1PriorityWasNotFirst","dripRoute","allAssets","allPaymentRoutes","priorityIndexOfA","priorityIndexOfB","recursive","assetAsKey","timeThresholdReached","queued","only","blacklistedAddress","allowances","calculateAmounts","wrapper","subtractFee","getFeeAmount","_calculateAmounts","_calculateAmounts2","_fromAmount","_toAmount","_feeAmount","routeA","indexA","routeB","indexB","aWins","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","isScrollParent","order","modifiers","visited","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","effectCleanupFns","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","phase","orderModifiers","merged","existing","mergeByName","enabled","_ref3$options","effect","cleanupFn","noopFn","_state$elements","getLayoutRect","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","getMainAxisFromPlacement","clientRect","pageXOffset","pageYOffset","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","scrollParent","isBody","updatedList","MAX_VALUE","h0","h1","h2","h3","h4","h5","h6","h7","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","innerLen","inner","outerKey","dk","incrementCounter","blockmix_salsa8","BY","Yi","arraycopy","blockxor","salsa20_8","srcPos","checkBufferish","ensureInteger","_scrypt","i1","Bi","XY","totalOps","currentOp","lastPercent10","i0","setImmediate","incrementalSMix","percent10","_j","_percent","lastProgress","progress","getTag","isObjectLike","isDefined","isBlank","LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY","PATTERN_LENGTH_TOO_LARGE","KeyStore","_keys","_keyMap","totalWeight","createKey","keyId","getFn","createKeyPath","createKeyId","MISSING_KEY_PROPERTY","INVALID_KEY_WEIGHT_VALUE","AdvancedOptions","useExtendedSearch","deepGet","baseToString","ignoreLocation","ignoreFieldNorm","fieldNormWeight","Config","isCaseSensitive","includeScore","shouldSort","sortFn","score","includeMatches","findAllMatches","minMatchCharLength","threshold","distance","SPACE","norm","mantissa","numTokens","FuseIndex","_ref$getFn","_ref$fieldNormWeight","isCreated","setIndexRecords","docs","records","_keysMap","doc","docIndex","_addString","_addObject","subRecords","nestedArrIndex","_stack$pop","subRecord","createIndex","_ref2$getFn","_ref2$fieldNormWeight","myIndex","setKeys","setSources","computeScore$1","pattern","_ref4$errors","_ref4$currentLocation","currentLocation","_ref4$expectedLocatio","expectedLocation","_ref4$distance","_ref4$ignoreLocation","accuracy","proximity","convertMaskToIndices","matchmask","MAX_BITS","createPatternAlphabet","char","BitapSearch","_ref6$location","_ref6$threshold","_ref6$distance","_ref6$includeMatches","_ref6$findAllMatches","_ref6$minMatchCharLen","_ref6$isCaseSensitive","_ref6$ignoreLocation","addChunk","_this$options","isMatch","_this$options2","allIndices","totalScore","hasMatches","_search","patternAlphabet","_ref5$location","_ref5$distance","_ref5$threshold","_ref5$findAllMatches","_ref5$minMatchCharLen","_ref5$includeMatches","_ref5$ignoreLocation","patternLen","textLen","currentThreshold","bestLocation","computeMatches","matchMask","lastBitArr","finalScore","binMax","binMin","binMid","bitArr","charMatch","BaseMatch","getMatch","multiRegex","singleRegex","ExactMatch","_BaseMatch","InverseExactMatch","_BaseMatch2","PrefixExactMatch","_BaseMatch3","InversePrefixExactMatch","_BaseMatch4","SuffixExactMatch","_BaseMatch5","InverseSuffixExactMatch","_BaseMatch6","FuzzyMatch","_BaseMatch7","_ref8$location","_ref8$threshold","_ref8$distance","_ref8$includeMatches","_ref8$findAllMatches","_ref8$minMatchCharLen","_ref8$isCaseSensitive","_ref8$ignoreLocation","_bitapSearch","searchIn","IncludeMatch","_BaseMatch8","searchers","searchersLen","SPACE_RE","parseQuery","queryItem","searcher","isMultiMatch","_searcher","_token","isSingleMatch","MultiMatchSet","ExtendedSearch","_ref9$isCaseSensitive","_ref9$includeMatches","_ref9$minMatchCharLen","_ref9$ignoreLocation","_ref9$findAllMatches","_ref9$location","_ref9$threshold","_ref9$distance","_this$options3","numMatches","qLen","_searchers","pLen","_searcher$search","registeredSearchers","createSearcher","searcherClass","LogicalOperator","KeyType","isExpression","isPath","isLeaf","convertToExplicit","_ref12$auto","isQueryPath","computeScore","_ref13$ignoreFieldNor","EPSILON","transformMatches","refIndex","transformScore","_ref15$includeMatches","_ref15$includeScore","transformers","transformer","Fuse","_keyStore","setCollection","_docs","_myIndex","removeAt","_ref16$limit","_this$options4","_searchStringList","_searchObjectList","_searchLogical","_searcher$searchIn","expression","evaluate","_findMatches","getValueForItemAtKeyId","resultMap","expResults","_resultMap$idx$matche","_this$_myIndex","_searcher$searchIn2","_norm","_searcher$searchIn3","parseIndex","_ref3$getFn","_ref3$fieldNormWeight","_jsxFileName$1","Dialog","onKeyDown","closeDialog","prevProps","classNames","dialogKey","onClickBackground","ReactDialog","_React$Component2","_document","createPortal","_setPrototypeOf2","_createSuper2","_isNativeReflectConstruct2","_assertThisInitialized2","_wallets$CoinbaseEVM","_wallets$CoinbaseEVM$","_wallets$MetaMask","_wallets$MetaMask$inf","_wallets$PhantomSVM","_wallets$PhantomSVM$i","_wallets$TrustEVM","_wallets$TrustEVM$inf","_wallets$Binance","_wallets$Binance$info","_wallets$CryptoCom","_wallets$CryptoCom$in","_wallets$WorldApp","_wallets$WorldApp$inf","_wallets$Coin98EVM","_wallets$Coin98EVM$in","_wallets$BraveEVM","_wallets$BraveEVM$inf","_wallets$MagicEdenEVM","_wallets$MagicEdenEVM2","_wallets$Rabby","_wallets$Rabby$info","_wallets$Backpack","_wallets$Backpack$inf","_wallets$Glow","_wallets$Glow$info","_wallets$Solflare","_wallets$Solflare$inf","_wallets$OKXEVM","_wallets$OKXEVM$info","_wallets$HyperPay","_wallets$HyperPay$inf","_wallets$WindowEthere","_wallets$WindowEthere2","_Blockchains$solana","_wallets$WindowSolana","_wallets$WindowSolana2","svm","allWallets","createCommonjsModule","_typeof_1","ClosableContext","UpdatableContext","ClosableProvider","closable","setClosable","setOpen","setUpdatable","preventReload","preventDefault","returnValue","_msg","confirm","ConfigurationContext","ChevronLeft","strokeWidth","fillRule","strokeLinecap","strokeLinejoin","y1","Dialog$1","_useContext2","alternativeHeaderAction","bodyRef","bodyClassName","footer","isMobile","matchMedia","lodash","undefined$1","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","INFINITY","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","require","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","arrayAggregator","setter","iteratee","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","placeholder","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","mapToArray","overArg","replaceHolders","setToArray","setToPairs","stringSize","lastIndex","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","uid","pick","arrayProto","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","cloneArrayBuffer","cloneDataView","cloneTypedArray","cloneRegExp","initCloneByTag","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","getMapData","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseGt","baseHas","baseHasIn","baseIntersection","arrays","othLength","othIndex","caches","baseInvoke","baseIsArguments","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","newValue","isTyped","isArrayLikeObject","isPlainObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","criteria","comparer","baseSortBy","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","previous","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","high","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","sources","isIterateeCall","createCaseFirst","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","newHolders","createRecurry","reorder","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","charsLength","createRange","toFinite","baseRange","createRelationalOperation","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","toInteger","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","flatten","otherFunc","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","otherArgs","oldArray","shortOut","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","rand","memoize","memoizeCapped","subString","differenceBy","differenceWith","findLastIndex","intersection","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","unionBy","unionWith","unzip","unzipWith","without","xorBy","xorWith","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","bindKey","WRAP_BIND_FLAG","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","defer","memoized","Cache","overArgs","transforms","funcsLength","partialRight","rearg","iteratorToArray","toLength","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invertBy","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","bindAll","methodNames","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","dividend","multiplicand","minuend","subtrahend","castArray","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","baseFill","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","separator","spread","takeRight","takeRightWhile","takeWhile","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extend","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","baseInRange","isEqualWith","isMatchWith","isNative","isNil","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","radix","floating","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","toLower","toSafeInteger","toUpper","trimEnd","trimStart","omission","newEnd","uniqueId","each","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","isRight","getView","iterLength","takeCount","iterIndex","commit","ConnectWalletDialog","_props$wallet","_props$platform14","QRCodeElement","extensionIsAvailable","setExtensionIsAvailable","connectAppIsAvailable","setConnectAppIsAvailable","_useState6","openInAppIsAvailable","setOpenInAppIsAvailable","_useState8","copyLinkIsAvailable","setCopyLinkIsAvailable","_useState10","scanQrAvailable","setScanQrAvailable","_useState12","appIsConnected","setAppIsConnected","_useState14","_useState16","connectionError","setConnectionError","_useState18","showQRCode","setShowQRCode","_useState20","showLinkCopied","setShowLinkCopied","_useState22","setQRCode","handleConnectionError","getNewQRCode","dotsOptions","cornersSquareOptions","backgroundOptions","connectViaQRCode","_props$platform4","_props$platform5","solanaPay","continueWithSolanaPay","newQRCode","_wallet","_props$wallet2","_props$wallet3","_props$platform6","_props$platform7","_props$platform8","_props$platform9","extension","extensions","copyLink","connectExtension","_props$wallet4","_props$wallet4$deskto","_props$platform10","_props$platform11","desktop","_props$platform12","_props$platform13","append","borderRadius","borderBottom","flex","showConnectExtensionWarning","connectingExtension","connectingApp","connectViaRedirect","openInApp","isAndroid","isWebView","userAgentToLower","platformForWallet","walletMetaData","_walletMetaData$mobil","mobile","android","maxTouchPoints","_walletMetaData$mobil2","ios","WalletContext","PoweredBy","walletContext","rel","SelectPlatformDialog","onSelect","selectBlockchain","backgroundColor","DropDown","clickCount","setClickCount","handleClick","MenuIcon","ownKeys$8","SelectWalletList","allWallets$1","walletsConfiguration","adjustedWallets","sortedWallet","newIndex","currentListIndex","unsortedWallet","fuse","resultList","setResultList","rowVirtualizer","getScrollElement","estimateSize","searchTerm","scrollTo","getTotalSize","getVirtualItems","virtualItem","onClickWallet","_objectSpread$8","ownKeys$7","_objectSpread$7","SelectWalletDialog","setSearchTerm","detectedWallets","setDetectedWallets","previouslyConnectedWallet","setPreviouslyConnectedWallet","showDropDown","setShowDropDown","dialogAnimationFinished","setDialogAnimationFinished","searchElement","via","connectionType","setWallet","autoSelect","_unsortedWallet$info","_wallet$info","previouslyConnectedWalletName","click","focus","_target$info","_wallet$info2","walletFromList","WalletConnectV1","fontSize","onChange","QuestionsGraphic","WhatIsAWalletDialog","ConnectStack","_useContext","_setWallet","_setNavigator","setPlatform","setConnectingExtension","setConnectingApp","redirectUri","setRedirectUri","selection","setShowConnectExtensionWarning","walletMeta","autoClose","availableExtensions","availableExtension","resetConnectingTimeout","openUniversalLink","universal","safeUniversalUrl","openWcLink","replaceAll","safeAppUrl","openNativeLink","_wallet2","SelectWallet","WhatIsAWallet","SelectPlatform","ConnectWallet","ensureDocument","ErrorContext","ErrorGraphic","_React$Component3","ErrorBoundary","errorInfo","setError","ErrorProvider","setErrorFromChildren","errorCallback","ButtonCircularStyle","primary","ButtonPrimaryStyle","buttonText","CardStyle","DropDownStyle","FontStyle","fontFamily","IconStyle","InputStyle","LinkStyle","LoadingTextStyle","RangeSliderStyle","SearchStyle","TextButtonStyle","TextStyle","TooltipStyle","mount","insideStyle","_style","_style2","styleRenderer","outsideStyle","insideClasses","requireReactVersion","SelectionContext","SelectionProvider","setSelection","UpdatableProvider","updatable","NavigateContext","LoadingDialog","LoadingStack","Loading","NavigateProvider","dialog","_navigator","ownKeys$6","_objectSpread$6","ConfigurationProvider","_props$configuration","_props$configuration5","currencyCode","integration","setConfiguration","loadConfiguration","_props$configuration2","_JSON$parse","configurationId","_configuration","_configuration$accept","localConfigurationWithValues","_props$configuration3","_props$configuration4","critical","_depayUnmountLoading","SignLoginDialog","recoverSignature","_useContext4","loggingIn","setLoggingIn","messageToSign","LoginStack","SignLogin","userClosedDialog","_digitsAfterDecimal","inputAsFloat","digitsAfterDecimal","_float","focusToFixed","floatToString","exploded","PaymentBlockchainsDialog","SolanaPayContext","WalletMissesBlockchainSupportDialog","WalletProvider","recover","passedWallet","solanaPayContext","walletMissesBlockchainSupport","setWalletMissesBlockchainSupport","setAccount","navigationReturnsToConnect","setNavigationReturnsToConnect","walletState","setWalletState","debounceSetWalletMissesBlockchainSupport","onAccountChanged","WalletMissesBlockchainSupport","PaymentBlockchains","connected","ChangableAmountContext","ConversionRateContext","ownKeys$5","_objectSpread$5","ChangableAmountProvider","configurationsMissAmounts","configurations","configuredAmount","startAmount","amountsMissing","setAmountsMissing","_useContext3","conversionRate","fixedCurrencyConversionRate","acceptWithAmount","setAcceptWithAmount","fixedAmount","fix","fixedCurrency","setAmount","maxRoute","setMaxRoute","maxAmount","setMaxAmount","updateAmounts","readableMaxAmount","_maxAmount","ConversionRateProvider","setConversionRate","setFixedCurrencyConversionRate","conversion","PaymentAmountRoutingContext","PaymentRoutingContext","ownKeys$4","_objectSpread$4","mergeFromAccounts","routePayments","toContract","prepareAcceptedPayments","ownKeys$3","_objectSpread$3","PaymentRoutingProvider","allRoutes","setAllRoutes","updatedRoutes","setUpdatedRoutes","updatedRouteWithNewPrice","setUpdatedRouteWithNewPrice","selectedRoute","setSelectedRoute","slowRouting","setSlowRouting","reloadCount","setReloadCount","setAllRoutesLoadedInternal","allRoutesLoaded","setAllRoutesLoaded","getPaymentRoutes","slowRoutingTimeout","updateRouteAmount","amountBN","roundAmount","readableAmount","roundedAmountBN","roundAmounts","updateRouteWithNewPrice","refreshPaymentRoutes","updateAllRoutes","roundedRoutes","selectRoute","updatedSelectedRoute","usdRoute","_findMaxRoute","sortedLowToHigh","_a$usdRoute","_a$usdRoute2","_b$usdRoute","_b$usdRoute2","aMaxUsdAmountAsDecimal","bMaxUsdAmountAsDecimal","findMaxRoute","PaymentAmountRoutingProvider","configuredAccept","setAccept","NATIVE_AMOUNT_REQUIRED_FOR_TRANSACTION","InsufficientAmountOfTokensDialog","recommendedAssetSymbol","setRecommendedAssetSymbol","recommendedAssetAmountAvailable","setRecommendedAssetAmountAvailable","recommendedAssetAmountRequired","setRecommendedAssetAmountRequired","recommendedAssetTotalAmountDue","setRecommendedAssetTotalAmountDue","loading","setLoading","sell","setWalletAddress","setRecommendation","nativeAvailableAsset","loadRecommendations","recommendedAccept","fontWeight","addressEllipsis","initDebug","eruda","script","onload","NoPaymentOptionFoundDialog","PaymentContext","PaymentTrackingContext","TransactionTrackingContext","PaymentProvider","_useContext6","_useContext7","_useContext8","setTrackingPayment","setPayment","synchronousTracking","asynchronousTracking","trackingInitialized","initializePaymentTracking","initializeTracking","_useContext9","foundTransaction","initializeTransactionTracking","setTransaction","setApprovalTransaction","resetApprovalTransaction","setResetApprovalTransaction","paymentState","setPaymentState","paymentSucceeded","paymentFailed","_transaction$params","_transaction$params$p","paymentToken","newTransaction","debouncedSetPayment","InsufficientAmountOfTokens","NoPaymentOptionFound","approve","resetApproval","PaymentValueContext","ChangeAmountDialog","displayedPaymentValue","setInputAmount","amountConfiguration","displayedCurrencyCode","changeAmount","toValidStep","toValidValue","onBlur","newAmount","ChangePaymentSkeleton","paymentValue","ChangePaymentDialog","allBestPaymentOptions","setBestPaymentOptions","allMajorPaymentOptions","setMajorPaymentOptions","allNativePaymentOptions","setNativePaymentOptions","allStablePaymentOptions","setStablePaymentOptions","allPaymentOptions","setAllPaymentOptions","selectedPaymentOptions","setSelectedPaymentOptions","selectedTab","setSelectedTab","searching","setSearching","setFuse","searchPaymentOption","term","listElement","allPaymentRoutesWithDisplayData","bestPaymentOptions","majorPaymentOptions","displayedPaymentOptions","autoFocus","onChangeSearch","PaymentFailedDialog","ChevronRight","Checkmark","DigitalWalletIcon","blockTimes","LoadingText","REQUIRES_APPROVAL_RESET","Footer","forwardTo","confirmationsRequired","confirmationsPassed","paymentValueLoss","_useContext5","secondsLeft","setSecondsLeft","secondsLeftCountdown","setSecondsLeftCountdown","requiresApprovalReset","setRequiresApprovalReset","throttledUpdateRouteWithNewPrice","throttledPay","throttledApprove","throttledResetApproval","etaForConfirmations","_payment$route","_payment$route2","_payment$route3","_payment$route4","textDecoration","trackingInfo","tabIndex","mainAction","PaymentOverviewSkeleton","PaymentOverviewDialog","alternativeHeaderActionElement","TracingFailedDialog","TrackingFailedDialog","continueTryTracking","WrongNetworkDialog","PaymentStack","setLocalNavigator","PaymentOverview","ChangeAmount","ChangePayment","PaymentFailed","WrongNetwork","TrackingFailed","TracingFailed","_transaction$nonce","_transaction$nonce2","PaymentTrackingProvider","track","validated","setDeadline","setConfirmationsRequired","setConfirmationsPassed","afterBlock","setAfterBlock","setPaymentRoute","attemptId","setAttemptId","attemptIdRef","setTrackingInitialized","_useState28","setRelease","_useState30","setForwardTo","openSocket","channel","forward_to","passed","retryStartTracking","attempts","startTracking","callTracking","_paymentRoute$feeAmou","after_block","from_token","from_amount","from_decimals","to_token","to_amount","to_decimals","fee_amount","trace_attempt_id","selected_wallet","pollStatus","handlePollingResponse","performedPayment","storePayment","sender_id","sender_token_id","sender_amount","fee_receiver","_paymentRoute$feeAmou2","PaymentValueProvider","setPaymentValue","setDisplayedPaymentValue","setPaymentValueLoss","updatePaymentValue","USDValue","fromTokenUSDExchangeRoutes","reverseRoute","reverseAmountOutBN","paymentAmountInBN","divPercent","USDRoutes","average","filteredAmounts","getPaymentRouterInstruction","_confirmedTransaction","_confirmedTransaction2","_confirmedTransaction3","foundInstruction","UUIDv4","performance","ownKeys$2","_objectSpread$2","LOGO","SolanaPayDialog","paymentOptions","setPaymentOptions","pollingPaymentStatusInterval","setPollingPaymentStatusInterval","transactionTrackingInterval","setTransactionTrackingInterval","selectedPaymentOption","setSelectedPaymantOption","secretId","setSecretId","solanaPayTransactionSocket","setSolanaPayTransactionSocket","transactionTrackingSocket","setTransactionTrackingSocket","paymentValidationSocket","setPaymentValidationSocket","_useState24","QRCodeURI","setQRCodeURI","_useState26","_useState32","isTracking","selectPaymentOption","fromAmountBN","feeAmountBN","toAmountBN","openSolanaPayTransactionSocket","sendTrackingAsConfigured","sendTrace","sendTrack","secret_id","payment_receiver","payment_amount","created","traceAndContinue","scanned","trackTransaction","openTransactionTrackingSocket","_data$params","_data$params$result","_data$params$result$v","_data$params2","_data$params2$result","_data$params2$result$","_data$params3","_data$params3$result","openPaymentValidationSocket","startPollingPaymentStatus","_track$poll","_track$poll2","relevantTransactions","getSignaturesForAddress","relevantTransaction","fullTransactionData","foundRouterInstruction","maxSupportedTransactionVersion","paymentOption","SolanaPayStack","SolanaPay","SolanaPayProvider","showSolanaPayStack","setShowSolanaPayStack","SUPPORTED_CURRENCIES","TransactionTrackingProvider","givenTransaction","setGivenTransaction","setFoundTransaction","setPolling","createTracking","preflight$1","Payment","preload","SaleRoutingContext","ToTokenContext","ToTokenProvider","setToToken","toTokenReadableAmount","setToTokenReadableAmount","ownKeys$1","_objectSpread$1","SaleRoutingProvider","acceptWithAmountAndReceiver","setAcceptWithAmountAndReceiver","SaleOverviewSkeleton","SaleOverviewDialog","tokenImageElement","tokenImage","salePerTokenValue","setSalePerTokenValue","UsdAmountPerToken","readableLocalizedAmountPerToken","SaleStack","SaleOverview","Sale","msToTime","month","day","hour","minute","second","year","ConfirmNFTSelectionDialog","_selection$nft","_selection$blockchain","age","nft","createdAt","EnterNFTDataManuallyDialog","_Blockchains","_selection$blockchain3","_selection$collection3","_Blockchains2","_selection$blockchain4","_selection$collection4","_Blockchains$findByNa","_selection$blockchain5","_selection$collection5","_selection$blockchain6","_selection$blockchain7","_selection$blockchain8","_selection$blockchain9","_selection$blockchain10","setBlockchain","setAddresses","setAddress","setId","setImage","setLink","setName","idRequired","setIdRequired","startWithBlockchain","_depay_token_selection_selected_blockchain","_selection$blockchain2","_selection$collection2","checkForIdRequired","balanceWithId","htmlFor","rows","resize","minHeight","_selection$collection","SelectBlockchainDialog","allBlockchains","setBlockchains","navigateBack","SelectNFTStack","what","EnterDataManually","SelectBlockchain","ConfirmNFTSelection","ConfirmTokenSelectionDialog","first_transfer","unique_senders","routable","SelectTokenDialog","showAddToken","setShowAddToken","setTokens","searchTokens","majorToken","select","_unused2","marginBottom","SelectTokenStack","SelectToken","ConfirmTokenSelection","DePayWidgets","Connect","rejectBeforeUnmount","Login","Select","startupError","initialStyles","margin","arrow","attribute","unsetSides","mapToStyles","_Object$assign2","variation","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","commonStyles","dpr","devicePixelRatio","roundOffsetsByDPR","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","_options$resize","getFreshSideObject","hashMap","rootNode","getRootNode","isSameNode","basePlacement","commonX","commonY","mainAxis","ALPHABET_MAP","polymodStep","pre","prefixChk","chk","__decode","LIMIT","lowered","uppered","wordChars","inBits","outBits","maxV","toWordsUnsafe","fromWordsUnsafe","fromWords","getMaskFunction","getMode","getAt","createTableTag","createSvgTag","cellSize","scalable","createDataURL","createImgTag","createASCII","renderTo2dContext","fillStyle","fillRect","stringToBytesFuncs","createStringToBytes","SJIS","writeByte","writeShort","writeString","setPixel","download","FileReader","onloadend","readAsDataURL","responseType","_svg","draw","_drawDot","_drawClassy","_drawClassyRounded","_drawRounded","_drawExtraRounded","_drawSquare","getNeighbor","_rotateFigure","rotation","_element","_basicDot","_basicSquare","_basicSideRounded","_basicCornerRounded","_basicCornerExtraRounded","_basicCornersRounded","_basicExtraRounded","_defs","getElement","drawQR","shape","hideXDots","hideYDots","_qr","loadImage","_image","imageOptions","qrOptions","imageSize","errorCorrectionLevel","originalHeight","originalWidth","maxHiddenDots","maxHiddenAxisDots","dotSize","drawBackground","drawDots","hideBackgroundDots","drawCorners","drawImage","gradient","_createColor","additionalRotation","_backgroundClipPath","_dotsClipPath","_cornersSquareClipPath","_cornersDotClipPath","cornersDotOptions","_e4","Image","crossOrigin","colorStops","_clearContainer","_setupSvg","_svgDrawingPromise","_extension","_setupCanvas","_canvas","_canvasDrawingPromise","XMLSerializer","serializeToString","getContext","_getElement","_container","applyExtension","deleteExtension","getRawData","toBlob","toDataURL","Timeout","clearFn","_clearFn","enroll","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","__webpack_amd_options__","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","isReactComponent","isPureReactComponent","$$typeof","_owner","_status","transition","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","Children","Profiler","PureComponent","StrictMode","Suspense","cloneElement","_currentValue","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","_payload","unstable_act","useContext","useDeferredValue","useId","useImperativeHandle","useInsertionEffect","useReducer","useTransition","_state$modifiersData$","arrowElement","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","referenceRect","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","getOppositePlacement","matched","getOppositeVariationPlacement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","math","_offsetModifierState$2","_mainSide","_altSide","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","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","fh","fl","gh","gl","hh","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","basedir","commonjsRequire","minimalisticAssert","utils_1","utils_1$1","getNAF","naf","getJSF","jsf","m8","m14","m24","cachedProperty","computer","intFromLE","assert$1","BaseCurve","conf","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","_fixedNafMul","doubles","_getDoubles","nafW","repr","jpoint","mixedAdd","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","getX","getY","_getBeta","_hasDoubles","dbl","inherits_browser","assert$2","ShortCurve","tinv","zeroA","threeA","_getEndomorphism","_endoWnafT1","_endoWnafT2","short_1","JPoint","zOne","lambda","betas","_getEndoRoots","lambdas","basis","_getEndoBasis","ntinv","prevR","aprxSqrt","len1","_endoSplit","v2","p2","q1","q2","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","isInfinity","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","zinv","zinv2","pz2","z2","s2","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","mm","yyu4","kbase","z3","pz3","eqXToP","curve_1","short","edwards","curves_1","curves","PresetCurve","defineCurve","crash","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","entropyEnc","nonceEnc","pers","persEnc","hmacDrbg","_hmac","kmac","addEnc","assert$3","KeyPair","ec","priv","_importPrivate","privEnc","_importPublic","pubEnc","fromPublic","fromPrivate","getPrivate","assert$4","_importDER","Position","place","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","assert$5","EC","nh","genKeyPair","ns2","_truncateToN","truncOnly","bkey","ns1","kp","kpX","signature$1","sinv","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","EC$1","elliptic","eddsa","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","newMethodName","finalized","blockCount","outputBlocks","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","c3","c4","c5","c6","c7","c9","b12","b13","b14","b15","b16","b17","b18","b19","b21","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b41","b42","b43","b45","b46","b47","b48","b49","ao","Co","Xi","po","go","fo","yo","vo","Vi","To","uo","co","Hi","Bo","eo","no","Eo","xo","qo","ho","bs","Wo","Vo","Qo","wo","Ko","zo","Xo","us","hs","ss","ls","ds","Fo","as","os","cs","fs","Ho","Jo","$i","Ro","bo","mo","Gi","getDocument","getNavigator","product","Application","getWindowMetadata","Platform","OS","Version","getLocation","relayUrl","sdkVersion","auth","useOnCloseEvent","bundleId","ua","FIVE_MINUTES","toMiliseconds","fromMiliseconds","wcDeepLink","Linking","openURL","ERROR","OFF","NFC","NFD","vi","gi","mi","wi","Ei","Ai","Oi","Ii","ji","Pi","Mi","legacy","eip2930","eip1559","Ri","Ni","Ti","Li","Ci","Ui","Di","zi","Fi","cacao","iss","aud","iat","resources","att","ability","Qi","Ji","Wi","qi","Zi","oo","so","generateKeyPair","sharedKey","HKDF","expand","senderPublicKey","sealed","ChaCha20Poly1305","symKey","seal","receiverPublicKey","relay","RELAY_JSONRPC","Ao","Oo","So","ko","Io","jo","Po","Mo","No","expiryTimestamp","Lo","Uo","INVALID_METHOD","INVALID_EVENT","INVALID_UPDATE_REQUEST","INVALID_EXTEND_REQUEST","INVALID_SESSION_SETTLE_REQUEST","UNAUTHORIZED_METHOD","UNAUTHORIZED_EVENT","UNAUTHORIZED_UPDATE_REQUEST","UNAUTHORIZED_EXTEND_REQUEST","USER_REJECTED","USER_REJECTED_CHAINS","USER_REJECTED_METHODS","USER_REJECTED_EVENTS","UNSUPPORTED_CHAINS","UNSUPPORTED_METHODS","UNSUPPORTED_EVENTS","UNSUPPORTED_ACCOUNTS","UNSUPPORTED_NAMESPACE_KEY","USER_DISCONNECTED","SESSION_SETTLEMENT_FAILED","WC_METHOD_UNSUPPORTED","Do","NOT_INITIALIZED","NO_MATCHING_KEY","RESTORE_WILL_OVERRIDE","RESUBSCRIBED","MISSING_OR_INVALID","EXPIRED","UNKNOWN_TYPE","MISMATCHED_TOPIC","NON_CONFORMING_NAMESPACES","Go","Yo","proposer","Zo","es","$o","gs","onLine","NetInfo","IJsonRpcProvider","formatJsonRpcError","formatJsonRpcRequest","formatJsonRpcResult","getBigIntRpcId","isJsonRpcError","isJsonRpcRequest","isJsonRpcResponse","isJsonRpcResult","isLocalhostUrl","isReactNative","isWsUrl","payloadId","nodeValue","sizeInBytes","lengthInNodes","maxSizeInBytes","levelValue","MAX_LOG_SIZE_IN_BYTES","forwardToConsole","getLogArray","extraMetadata","baseChunkLogger","appendToLogs","clearLogs","logsToBlob","createObjectURL","revokeObjectURL","bindings","loggerOverride","chunkLoggerController","codePointAt","prefixCodePoint","decoders","bitsPerChar","base2","base8","base10","base16","base16upper","base32","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36upper","base58btc","base58flickr","base64pad","base64url","base64urlpad","base256emoji","latin1","ascii","database","ONE_DAY","SIX_HOURS","message_ack","connection_stalled","transport_closed","publish","ONE_SECOND","THIRTY_DAYS","FIVE_SECONDS","wc_pairingDelete","ttl","prompt","wc_pairingPing","THIRTY_SECONDS","unregistered_method","expire","deleted","core","keychain","storagePrefix","getKeyChain","isInitialized","persist","del","customStoragePrefix","ob","qb","setKeyChain","hasKeys","getClientId","getClientSeed","encodeIss","setPrivateKey","signJWT","generateSharedKey","getPrivateKey","setSymKey","deleteKeyPair","deleteSymKey","wb","getSymKey","getPayloadType","getPayloadSenderPublicKey","messages","getRelayerMessages","setRelayerMessages","relayer","publishTimeout","ONE_MINUTE","failedPublishTimeout","needsTransportRestart","rpcPublish","throwOnFailedPublish","registerEventListeners","HEARTBEAT_EVENTS","pulse","checkQueue","removeRequestFromQueue","topicMap","pendingSubscriptionWatchLabel","subscribeTimeout","restartInProgress","batchSubscribeTopicsLimit","clientId","restartToComplete","rpcSubscribe","onSubscribe","unsubscribeById","unsubscribeByTopic","isSubscribed","Watch","elapsed","onConnect","onDisconnect","restart","restore","getSubscription","rpcUnsubscribe","onUnsubscribe","batchSubscribe","setSubscription","deleteSubscription","addSubscription","setRelayerSubscriptions","getRelayerSubscriptions","rpcBatchSubscribe","onBatchSubscribe","onEnable","onDisable","checkPending","transportExplicitlyClosed","connectionAttemptInProgress","connectionStatusPollingInterval","staleConnectionErrors","hasExperiencedNetworkDisruption","requestsInFlight","heartBeatTimeout","toEstablishConnection","resetPingTimeout","pingTimeout","terminate","onPayloadHandler","onProviderPayload","onConnectHandler","startPingTimeout","onDisconnectHandler","onProviderDisconnect","onProviderErrorHandler","transportClose","registerProviderListeners","publisher","createProvider","transportOpen","restartTransport","recordMessageEvent","publishedAt","transportDisconnect","confirmOnlineStateOrThrow","isConnectionStalled","unregisterProviderListeners","acknowledgePayload","onMessageEvent","shouldIgnoreMessageEvent","ub","recentlyDeleted","recentlyDeletedLimit","getKey","getAll","addToRecentlyDeleted","setDataStore","getDataStore","ignoredPayloadTypes","registeredMethods","pairings","registerRelayerEvents","registerExpirerEvents","expirer","isValidPair","tb","activatePairing","activate","isValidPing","updateExpiry","updateMetadata","peerMetadata","getPairings","isValidDisconnect","deletePairing","history","sendResult","sendError","onRelayEventRequest","onPairingPingRequest","onPairingDeleteRequest","onUnknownRpcMethodRequest","onRelayEventResponse","onPairingPingResponse","onUnknownRpcMethodResponse","fb","nb","isValidPairingTopic","mb","sb","getRecord","setJsonRpcRecords","getJsonRpcRecords","expirations","formatTarget","getExpiration","checkExpiry","expiration","setExpirations","getExpirations","checkExpirations","verifyDisabled","getVerifyUrl","verifyUrl","removeIframe","createIframe","sendPost","attestationId","addToQueue","isDevEnv","fetchAttestation","startAbortTimer","abortController","processQueue","iframe","onInit","getElementById","AbortController","IS_VITEST","registerDeviceToken","notificationType","enableEncrypted","client_id","always_raw","maxLogBlobSizeInBytes","logChunkController","downloadLogsBlobInBrowser","HeartBeat","storageOptions","pairing","echoClient","IEvents","wipe","Codec","baseX","rfc4648","mapHttpRequest","mapHttpResponse","wrapRequestSerializer","wrapResponseSerializer","wrapErrorSerializer","transmit","asObject","serializers","_level","_stdErrSerialize","_childLevel","_logEvent","levelVal","_u","methodLevel","methodValue","transmitLevel","transmitValue","stdSerializers","labels","stdTimeFunctions","nullTime","epochTime","unixTime","isoTime","asUint8Array","getLocalStorage","getLocalStorageOrThrow","getCrypto","getCryptoOrThrow","getLocationOrThrow","getNavigatorOrThrow","getDocumentOrThrow","getFromWindowOrThrow","getFromWindow","oncomplete","onsuccess","onabort","indexedDB","onupgradeneeded","createObjectStore","objectStore","openCursor","continue","randomStringForEntropy","randomString","randomUint32","defaultRandomSource","SystemRandomSource","readInt64BE","readUint64BE","readInt64LE","readUint64LE","writeUint64BE","writeInt64BE","writeUint64LE","writeInt64LE","readFloat32BE","getFloat32","readFloat32LE","readFloat64BE","getFloat64","readFloat64LE","writeFloat32BE","setFloat32","writeFloat32LE","writeFloat64BE","setFloat64","writeFloat64LE","Digest","encodingLength","encodeTo","_i$decode2","_i$decode4","destr","safeDestr","parseNumbers","parseBooleans","arrayFormatSeparator","_Object$keys","_Object$keys2","extract","skipNull","skipEmptyString","_Object$keys3","_o8","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","_e$parseUrl","convertSecretKeyToX25519","convertPublicKeyToX25519","extractPublicKeyFromSecretKey","generateKeyPairFromSeed","SEED_LENGTH","SECRET_KEY_LENGTH","SIGNATURE_LENGTH","clean","DIGEST_LENGTH","BLOCK_SIZE","digestLength","_temp","_buffer","_bufferLength","_bytesHashed","_finished","_initState","saveState","bufferLength","bytesHashed","restoreState","cleanSavedState","Hasher","lessOrEqual","KEY_LENGTH","NONCE_LENGTH","TAG_LENGTH","nonceLength","streamXOR","_authenticate","Poly1305","scalarMultBase","scalarMult","SHARED_KEY_LENGTH","_t21","alg","typ","bases","_Symbol$toStringTag","_Symbol$for","multihash","asCID","_baseCache","createV0","_this$multihash","createV1","_r21","_o9","_u$decodeFirst2","decodeFirst","inspectBytes","multihashSize","digestSize","multihashCode","codec","_n$decode2","_c3","_r22","_r23","_r24","CID","isNode","responseURL","getAllResponseHeaders","withCredentials","setRequestHeader","waku","batchPublish","batchUnsubscribe","irn","iridium","dbName","storeName","hasItem","getKeys","indexedDb","driver","getItems","__defineGetter__","setInitialized","getEntries","registering","onClose","resetMaxListeners","URLSearchParams","rejectUnauthorized","emitError","onOpen","onPayload","parseError","parseConnectionError","_info","_bufpos","_fillBuffer","bot","hasRegisteredEventListeners","setConnection","requestStrict","isPrototypeOf","_n22","getItemRaw","setItemRaw","mounts","mountpoints","watching","watchListeners","unwatch","relativeKey","relativeBase","mountpoint","watch","setItems","removeMeta","removeMata","getMeta","nativeOnly","atime","mtime","setMeta","getMount","getMounts","_t24","NEGATIVE_INFINITY","HEARTBEAT_INTERVAL","intervalRef","IHeartBeat","ONE_THOUSAND","ONE_HUNDRED","ONE_YEAR","FOUR_WEEKS","THREE_WEEKS","TWO_WEEKS","ONE_WEEK","SEVEN_DAYS","FIVE_DAYS","THREE_DAYS","TWENTY_FOUR_HOURS","TWELVE_HOURS","THREE_HOURS","ONE_HOUR","SIXTY_MINUTES","THIRTY_MINUTES","TEN_MINUTES","SIXTY_SECONDS","TEN_SECONDS","timestamps","started","IWatch","_source","BrowserRandomSource","NodeRandomSource","isInstantiated","_crypto","_t25","_t26","_t27","rotl","_stateHi","_stateLo","_tempHi","_tempLo","stateHi","stateLo","hasher","varint","codecs","_r25","_t28","_r26","_r27","webkitSubtle","isBrowserCryptoAvailable","getSubtleCrypto","getBrowerCrypto","isBrowser","_leftover","_fin","_blocks","oneTimeAuth","_inner","_outer","isSerializableHash","_innerKeyedState","_outerKeyedState","wc_sessionPropose","wc_sessionSettle","wc_sessionUpdate","wc_sessionExtend","wc_sessionRequest","wc_sessionEvent","wc_sessionDelete","wc_sessionPing","wc_sessionAuthenticate","requestQueue","sessionRequestQueue","requestQueueDelay","expectedPairingMethodMap","recentlyDeletedMap","registerPairingEvents","getPendingSessionRequests","processSessionRequestQueue","isValidConnect","pairingTopic","sessionProperties","relays","setExpiry","setProposal","isValidApprove","relayProtocol","sessionConfig","proposal","controller","acknowledged","responderPublicKey","isValidReject","isValidUpdate","clientRpcId","relayRpcId","isValidExtend","isValidRequest","disableDeepLink","respond","isValidRespond","cleanupAfterResponse","isValidEmit","deleteSession","emitEvent","pendingRequest","isValidAuthenticate","nbf","authKeys","responseTopic","pairingTopics","pb","authPayload","requester","cacaos","responder","xb","auths","verifyContext","approveSessionAuthenticate","getPendingAuthRequest","encodeOpts","authentication","rejectSessionAuthenticate","formatAuthMessage","cleanupDuplicatePairings","expirerHasDeleted","deletePendingSessionRequest","deleteProposal","setPendingSessionRequest","processRequestsQueue","processRequest","shouldIgnorePairingRequest","onSessionProposeRequest","onSessionSettleRequest","onSessionUpdateRequest","onSessionExtendRequest","onSessionPingRequest","onSessionDeleteRequest","onSessionRequest","onSessionEventRequest","onSessionAuthenticateRequest","onSessionProposeResponse","onSessionSettleResponse","onSessionUpdateResponse","onSessionExtendResponse","onSessionPingResponse","onSessionRequestResponse","onSessionAuthenticateResponse","onRelayEventUnknownPayload","getVerifyContext","selfPublicKey","peerPublicKey","sessionTopic","subscriptionId","isValidSessionSettleRequest","isRequestOutOfSync","cleanupPendingSentRequestsForTopic","addSessionRequestToSessionRequestQueue","onPairingCreated","hb","eb","validateNamespaces","validateSessionProps","kb","checkRecentlyDeleted","isValidProposalId","ab","gb","isValidSessionTopic","bb","ib","db","lb","isValidSessionOrPairingTopic","verified","isScam","engine","Core","_WalletConnectV2$SignClient","SignClient","ensureNativeTokenAsset","filterAssets","onlyAsset","excludeAsset","getAssets","responses","reduceAssetWithBalance","isFiltered","promiseWithTimeout","dripAssets","majorTokens","resolvedAssets","completedAsset","assetWithBalance","priorityKey","assetKey","rangeCount","getRangeAt","isCopy","execCommand","removeAllRanges","addRange","createRoot","insideContainerClass","trimStyle","ReactShadowDOM","_ref4$outsideStyle","_ref4$insideStyle","_ref4$insideClasses","outsideContainer","createOutsideContainer","insideContainer","shadow","_ref$classes","classes","styleElement","createInsideContainer","shadowRoot","attachShadow","insideRoot","_unmount","string2ArrayBuffer","bufView","base64ToArrayBuffer","byteString","internalVerify","_ref$saltLength","saltLength","innerPublicKey","binaryStringArrayBuffer","cryptoKey","_ref3$saltLength","_extends","getDeps","_opts$initialDeps","deps","initialDeps","depTime","resultTime","newDeps","depEndTime","resultEndTime","resultFpsPercentage","notUndefined","defaultKeyExtractor","defaultRangeExtractor","overscan","endIndex","observeElementRect","scrollElement","observer","ResizeObserver","borderBoxSize","box","inlineSize","unobserve","observeElementOffset","horizontal","measureElement","elementScroll","_instance$scrollEleme3","_instance$scrollEleme4","_ref2$adjustments","adjustments","behavior","toOffset","_ro","unsubs","isScrolling","isScrollingTimeoutId","scrollToIndexTimeoutId","measurementsCache","itemSizeCache","pendingMeasuredCacheIndexes","scrollDirection","scrollAdjustments","measureElementCache","_measureElement","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","initialRect","scrollMargin","scrollingDelay","indexAttribute","initialMeasurementsCache","lanes","_didMount","_willUpdate","_scrollToOffset","scrollOffset","scrollRect","maybeNotify","getSize","memoOptions","getFurthestMeasurement","measurements","furthestMeasurementsFound","furthestMeasurements","measurement","lane","previousFurthestMeasurement","getMeasurements","furthestMeasurement","measuredSize","calculateRange","outerSize","findNearestBinarySearch","getIndexes","indexFromElement","attributeName","indexStr","_this$itemSizeCache$g","prevNode","measuredItemSize","virtualItems","getVirtualItemForOffset","getOffsetForAlignment","align","scrollSizeProp","getOffsetForIndex","isDynamicMode","cancelScrollToIndex","scrollToOffset","_ref5$align","scrollToIndex","_temp2","_ref6$align","initialAlign","_this$getOffsetForInd","_toOffset","scrollBy","_temp3","_this$getMeasurements","scrollToFn","measure","getCurrentValue","currentValue","useIsomorphicLayoutEffect","useVirtualizerBase","rerender","useVirtualizer","createPopper","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","MessageChannel","port1","port2","onreadystatechange","attachEvent","task","aa","ba","da","ea","fa","ha","ia","ka","la","ma","pa","acceptsBooleans","oa","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","qa","ra","sa","na","setAttributeNS","xlinkHref","ta","wa","xa","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","prepareStackTrace","Oa","Pa","Qa","Ra","Sa","Ua","_valueTracker","stopTracking","Ta","Va","Wa","activeElement","Xa","defaultChecked","_wrapperState","initialChecked","Ya","controlled","Za","$a","defaultSelected","disabled","textContent","namespaceURI","MSApp","execUnsafeLocalFunction","lastChild","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","opacity","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","menuitem","area","col","embed","img","keygen","wbr","srcElement","correspondingUseElement","yb","zb","Ab","Bb","stateNode","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Ub","alternate","Vb","memoizedState","dehydrated","Wb","Yb","Xb","Zb","$b","unstable_scheduleCallback","ac","unstable_cancelCallback","bc","unstable_shouldYield","cc","unstable_requestPaint","unstable_now","dc","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","fc","unstable_UserBlockingPriority","gc","unstable_NormalPriority","ic","unstable_LowPriority","unstable_IdlePriority","jc","kc","nc","oc","pc","qc","rc","sc","tc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","uc","wc","yc","zc","eventTimes","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","pointerId","Sc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Uc","Vc","isDehydrated","containerInfo","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","gd","hd","Tc","stopPropagation","jd","kd","ld","md","nd","keyCode","charCode","od","pd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","isPersistent","vd","wd","eventPhase","bubbles","cancelable","isTrusted","td","ud","zd","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Ad","Cd","dataTransfer","Ed","Gd","animationName","elapsedTime","pseudoElement","Hd","clipboardData","Id","Kd","Ld","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Md","Nd","Alt","Control","Meta","Shift","Od","Pd","which","Qd","Sd","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Ud","touches","targetTouches","changedTouches","Wd","Xd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Yd","Zd","$d","documentMode","datetime","email","tel","week","oninput","detachEvent","compareDocumentPosition","HTMLIFrameElement","contentEditable","focusedElem","selectionRange","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","setStart","setEnd","animationend","animationiteration","animationstart","transitionend","af","cf","df","ef","ff","gf","kf","lf","mf","Tb","nf","pf","qf","rf","capture","sf","tf","parentWindow","uf","vf","ya","ca","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","If","queueMicrotask","Hf","Jf","Kf","Lf","previousSibling","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Yf","childContextTypes","Zf","$f","ag","bg","__reactInternalMemoizedMergedChildContext","cg","dg","eg","fg","gg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","childLanes","dependencies","firstContext","tg","ug","memoizedValue","vg","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","interleaved","effects","yg","zg","eventTime","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Mg","_reactInternals","Jg","Kg","Lg","Ng","Og","Pg","UNSAFE_componentWillReceiveProps","Qg","UNSAFE_componentWillMount","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","elementType","deletions","ih","pendingProps","treeContext","retryLane","jh","kh","lh","mh","memoizedProps","oh","_stringRef","qh","rh","sh","th","uh","vh","implementation","tagName","Ih","Jh","revealOrder","Kh","Lh","_workInProgressVersionPrimary","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Uh","Vh","Wh","Xh","Yh","Zh","$h","baseQueue","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","lastEffect","stores","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","componentStack","pingCache","tailMode","subtreeFlags","pendingContext","wasMultiple","multiple","suppressHydrationWarning","onclick","rendering","aj","renderingStartTime","isBackwards","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","baseLanes","cachePool","transitions","mj","nj","oj","UNSAFE_componentWillUpdate","pj","rj","sj","tj","uj","vj","fallback","wj","xj","yj","zj","_reactRetry","Aj","Bj","Cj","Dj","Ej","Gj","Hj","Ij","Jj","Kj","Lj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","_reactRootContainer","Uj","Vj","Wj","Xj","onCommitFiberUnmount","Yj","Zj","ak","bk","ck","ek","fk","gk","hk","__reactInternalSnapshotBeforeUpdate","Uk","jk","kk","lk","mk","nk","pk","qk","rk","sk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","callbackNode","expirationTimes","expiredLanes","vc","callbackPriority","hg","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","finishedWork","finishedLanes","Ok","timeoutHandle","Pk","Qk","Rk","Sk","Tk","mutableReadLanes","Ac","Mj","onCommitFiberRoot","lc","onRecoverableError","Vk","onPostCommitFiberRoot","Wk","Xk","Zk","pendingChildren","$k","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","Fj","Yk","jl","reportError","kl","_internalRoot","ll","ml","nl","ol","ql","pl","unstable_scheduleHydration","querySelectorAll","usingClientEntryPoint","findFiberByHostInstance","bundleType","rendererPackageName","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","ul","isDisabled","supportsFiber","inject","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","priorityLevel","scheduling","isInputPending","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","GenStateSuspendedYield","sha1_K","SHA1","SHA224","SHA384","RIPEMD160","Hmac","anyGlobal","getGlobal","_KEY_TO_DIRECTION","TRANSITION_END","getSelector","hrefAttr","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","jquery","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","isVisible","getClientRects","getPropertyValue","Node","ELEMENT_NODE","classList","hasAttribute","findShadowRoot","reflow","getjQuery","jQuery","DOMContentLoadedCallbacks","isRTL","defineJQueryPlugin","plugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","getUidEvent","findHandler","delegationSelector","uidEventList","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","delegateTarget","_normalizeParams2","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","_normalizeParams4","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","trigger","jQueryEvent","nativeDispatch","isImmediatePropagationStopped","createEvent","initEvent","CustomEvent","elementMap","Data","instanceMap","BaseComponent","DATA_KEY","EVENT_KEY","isAnimated","getInstance","enableDismissTrigger","clickEvent","closest","getOrCreateInstance","EVENT_KEY$c","EVENT_CLOSE","EVENT_CLOSED","Alert","_BaseComponent","_queueCallback","_destroyElement","EVENT_KEY$b","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","toggle","normalizeData","normalizeDataKey","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","dataset","pureKey","getDataAttribute","SelectorEngine","findOne","ancestor","previousElementSibling","nextElementSibling","focusableChildren","focusables","NAME$b","EVENT_KEY$a","DATA_API_KEY$6","Default$a","keyboard","slide","touch","DefaultType$a","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","Carousel","_BaseComponent3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_getConfig","_indicatorsElement","_touchSupported","_pointerEvent","PointerEvent","_addEventListeners","_slide","hidden","cycle","_updateInterval","visibilityState","nextWhenVisible","activeIndex","_getItemIndex","absDeltax","_keydown","_addTouchEventListeners","hasPointerPenTouch","_handleSwipe","itemImg","isNext","eventDirectionName","targetIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","NAME$a","DATA_KEY$9","EVENT_KEY$9","Default$9","DefaultType$9","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE$4","Collapse","_BaseComponent4","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_initializeChildren","_addAriaAndCollapsedClass","_isShown","show","activesData","actives","tempActiveData","elemActive","dimension","_getDimension","capitalizedDimension","scrollSize","triggerArrayLength","triggerArray","NAME$9","EVENT_KEY$8","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$8","popperConfig","DefaultType$8","Dropdown","_BaseComponent5","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_createPopper","_completeHide","Default","DefaultType","referenceElement","_getPopperConfig","isDisplayStatic","parentDropdown","isEnd","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","toggles","composedPath","isMenuTarget","isActive","getToggleButton","_selectMenuItem","clearMenus","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","documentWidth","innerWidth","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","Default$7","rootElement","clickCallback","DefaultType$7","NAME$8","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_emulateAnimation","backdrop","Default$6","trapElement","autofocus","DefaultType$6","EVENT_KEY$7","EVENT_FOCUSIN$1","EVENT_KEYDOWN_TAB","TAB_NAV_BACKWARD","FocusTrap","_isActive","_lastTabNavDirection","_this$_config","_handleFocusin","_handleKeydown","NAME$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","Modal","_BaseComponent6","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_ignoreBackdropClick","_scrollBar","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","deactivate","_hideModal","htmlElement","modalBody","_triggerBackdropTransition","_resetAdjustments","_this$_element","isModalOverflowing","isBodyOverflowing","paddingLeft","paddingRight","showEvent","allReadyOpen","NAME$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","CLASS_NAME_SHOW$3","OPEN_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","visibility","blur","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","em","small","sup","strong","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","elementName","attributeList","allowedAttributes","allowedAttributeList","attributeRegex","allowedAttribute","NAME$4","EVENT_KEY$4","DISALLOWED_ATTRIBUTES","DefaultType$3","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","Tooltip","_BaseComponent8","_isEnabled","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_disposePopper","isWithContent","isInTheDom","getTitle","tipId","getUID","attachment","_getAttachment","_addAttachmentClass","_tip$classList","_resolvePossibleFunction","prevHoverState","_cleanTipClass","setContent","_sanitizeAndSetContent","templateElement","setElementContent","_getDelegateConfig","_handlePopperPlacementChange","_getBasicClassPrefix","updateAttachment","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","basicClassPrefixRegex","tabClass","tClass","EVENT_KEY$3","Default$2","DefaultType$2","Event$1","Popover","_Tooltip","_getContent","NAME$2","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","METHOD_POSITION","ScrollSpy","_BaseComponent9","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","innerHeight","maxScroll","_getOffsetHeight","_activate","_clear","queries","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","Tab","_BaseComponent10","itemSelector","hideEvent","isTransitioning","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_BaseComponent11","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isInteracting","_onInteraction","errorText","setSucceeded","openPaymentWidget","Blockchains","boxShadow","borderColor","ReactDOM","channels","webpackEmptyContext","sparkMd5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","begin","appendBinary","contents","_buff","_finish","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkCount","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","filename","content_type","byte_size","xhr","csrfToken","getMetaValue","requestDidLoad","requestDidError","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","submitForm","ActiveStorage","Rails","linkClickSelector","buttonClickSelector","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","csrfParam","CSRFProtection","refreshCSRFTokens","fire","initCustomEvent","stopEverything","stopImmediatePropagation","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","ajax","getResponseHeader","beforeSend","OPENED","dataType","crossDomain","DONE","parser","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","formElements","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","pushState","clearCache","setProgressBarDelay","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","trickleInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","replaceChild","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript"],"mappings":"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,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK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GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//ConQ,EAAK,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAEhgDj+P,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FF,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/Fm+P,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAE1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAE1/Fr0N,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/Fq0N,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,W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AAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KACR,OAAQ,KAER,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,S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CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,CAAC,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IAAK,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,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AiB8C,GACjErnc,EAASitH,SAAU42U,EAAMU,sBAAuB,eAAgB8C,GAChErnc,EAASitH,SAAU42U,EAAMC,kBAAmB,QAASkE,GACrDhoc,EAASitH,SAAU42U,EAAMC,kBAAmB,QAASsD,GACrDpnc,EAASitH,SAAU42U,EAAMC,kBAAmB,QAAS6C,GACrD3mc,EAASitH,SAAU42U,EAAMC,kBAAmB,QAASwD,GACrDtnc,EAASitH,SAAU42U,EAAMC,kBAAmB,QAAS6D,GACrD3nc,EAASitH,SAAU42U,EAAMC,kBAAmB,QAAS0D,GACrDxnc,EAASitH,SAAU42U,EAAME,oBAAqB,QAASiE,GACvDhoc,EAASitH,SAAU42U,EAAME,oBAAqB,QAASqD,GACvDpnc,EAASitH,SAAU42U,EAAME,oBAAqB,QAAS4C,GACvD3mc,EAASitH,SAAU42U,EAAME,oBAAqB,QAASuD,GACvDtnc,EAASitH,SAAU42U,EAAME,oBAAqB,QAAS4D,GACvD3nc,EAASitH,SAAU42U,EAAMG,oBAAqB,SAAUoD,GACxDpnc,EAASitH,SAAU42U,EAAMG,oBAAqB,SAAU2C,GACxD3mc,EAASitH,SAAU42U,EAAMG,oBAAqB,SAAU2D,GACxD3nc,EAASitH,SAAU42U,EAAMI,mBAAoB,SAAUmD,GACvDpnc,EAASitH,SAAU42U,EAAMI,mBAAoB,SAAU0C,GACvD3mc,EAASitH,SAAU42U,EAAMI,mBAAoB,SAAU0D,GACvD3nc,EAASitH,SAAU42U,EAAMI,mBAAoB,UAAU,SAAUt9b,GAC/D,OAAOquD,YAAW,WAChB,OAAOsyY,EAAe3gc,KACrB,OAEL3G,EAASitH,SAAU42U,EAAMI,mBAAoB,YAAaqD,GAC1Dtnc,EAASitH,SAAU42U,EAAMI,mBAAoB,gBAAiBoD,GAC9Drnc,EAASitH,SAAU42U,EAAMK,uBAAwB,QAAS8D,GAC1Dhoc,EAASitH,SAAU42U,EAAMK,uBAAwB,QAASkD,GAC1Dpnc,EAASitH,SAAU42U,EAAMK,uBAAwB,QAASyC,GAC1D3mc,EAASitH,SAAU42U,EAAMK,uBAAwB,QAAS4D,GAC1D76U,SAASz3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","file":"js/application-f96c098ad5ce0b4d7295.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 319);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","module.exports = require(\"regenerator-runtime\");\n","function _typeof3(obj) { \"@babel/helpers - typeof\"; return _typeof3 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof3(obj); }\n\nfunction _classCallCheck3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction __defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass3(Constructor, protoProps, staticProps) { if (protoProps) __defineProperties(Constructor.prototype, protoProps); if (staticProps) __defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar _global$1 = typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {};\n\nif (_global$1.XMLHttpRequest == undefined) {\n _global$1.XMLHttpRequest = /*#__PURE__*/function () {\n function XMLHttpRequest() {\n _classCallCheck3(this, XMLHttpRequest);\n }\n\n _createClass3(XMLHttpRequest, [{\n key: \"open\",\n value: function open() {}\n }]);\n\n return XMLHttpRequest;\n }();\n}\n\nif (_global$1.location == undefined) {\n _global$1.location = {};\n}\n\nif (_global$1.crypto == undefined) {\n _global$1.crypto = {};\n}\n\nif (_global$1.crypto.getRandomValues == undefined) {\n _global$1.crypto.getRandomValues = function (abv) {\n var l = abv.length;\n\n while (l--) {\n abv[l] = parseInt(Math.random().toString().replace('0.', ''), 10);\n }\n\n ;\n return abv;\n };\n}\n\nif (_global$1.crypto.randomBytes == undefined) {\n _global$1.crypto.randomBytes = function (size) {\n var array = new Uint8Array(size);\n\n _global$1.crypto.getRandomValues(array);\n\n return array;\n };\n}\n\nif (_global$1.fetch == undefined) {\n throw 'Please polyfill .fetch | See: https://github.com/DePayFi/solana-web3.js#polyfill-fetch';\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs$1(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getAugmentedNamespace(n) {\n var f = n.default;\n\n if (typeof f == \"function\") {\n var a = function a() {\n return f.apply(this, arguments);\n };\n\n a.prototype = f.prototype;\n } else a = {};\n\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n Object.keys(n).forEach(function (k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function get() {\n return n[k];\n }\n });\n });\n return a;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _regeneratorRuntime() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof3(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n catch: function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\n\nfunction _typeof$1(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof$1(obj);\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\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\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof3(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _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\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e2) {\n throw _e2;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e3) {\n didErr = true;\n err = _e3;\n },\n f: function f() {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar cjs$1 = {};\nvar global$1 = typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {};\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\n\nfunction init() {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray(b64) {\n if (!inited) {\n init();\n }\n\n var i, j, l, tmp, placeHolders, arr;\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 } // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n\n\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0; // base64 is 4/3 + up to two characters of the original data\n\n arr = new Arr(len * 3 / 4 - placeHolders); // if there are placeholders, only get up to the last complete 4 chars\n\n l = placeHolders > 0 ? len - 4 : len;\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = tmp >> 16 & 0xFF;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2];\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n if (!inited) {\n init();\n }\n\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\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 } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[tmp << 4 & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n output += lookup[tmp >> 10];\n output += lookup[tmp >> 4 & 0x3F];\n output += lookup[tmp << 2 & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n return parts.join('');\n}\n\nfunction read(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 i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\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\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\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n}\n\nfunction write(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 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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\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\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\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nvar INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer$1.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined ? global$1.TYPED_ARRAY_SUPPORT : true;\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength() {\n return Buffer$1.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$1(length);\n }\n\n that.length = length;\n }\n\n return that;\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\n\nfunction Buffer$1(arg, encodingOrOffset, length) {\n if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {\n return new Buffer$1(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer$1.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer$1._augment = function (arr) {\n arr.__proto__ = Buffer$1.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * 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 **/\n\n\nBuffer$1.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer$1.TYPED_ARRAY_SUPPORT) {\n Buffer$1.prototype.__proto__ = Uint8Array.prototype;\n Buffer$1.__proto__ = Uint8Array;\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer$1.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer$1.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer$1.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$1.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer$1.alloc(+length);\n}\n\nBuffer$1.isBuffer = isBuffer;\n\nfunction internalIsBuffer(b) {\n return !!(b != null && b._isBuffer);\n}\n\nBuffer$1.compare = function compare(a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer$1.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\n default:\n return false;\n }\n};\n\nBuffer$1.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer$1.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer$1.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes$2(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes$2(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer$1.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer$1.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer$1.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer$1.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer$1.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer$1.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer$1.prototype.equals = function equals(b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer$1.compare(this, b) === 0;\n};\n\nBuffer$1.prototype.inspect = function inspect() {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\n};\n\nBuffer$1.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // 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\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer$1.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\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\n if (Buffer$1.TYPED_ARRAY_SUPPORT && 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\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer$1.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer$1.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer$1.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes$2(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer$1.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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer$1.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 fromByteArray(buf);\n } else {\n return fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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} // 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\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer$1.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$1.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$1(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\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$1.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer$1.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer$1.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer$1.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer$1.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer$1.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer$1.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer$1.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer$1.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer$1.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer$1.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer$1.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer$1.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer$1.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer$1.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4);\n};\n\nBuffer$1.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4);\n};\n\nBuffer$1.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8);\n};\n\nBuffer$1.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(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$1.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer$1.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer$1.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer$1.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer$1.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer$1.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer$1.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\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer$1.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer$1.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer$1.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer$1.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer$1.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer$1.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\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val) ? val : utf8ToBytes$2(new Buffer$1(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes$2(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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 toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n} // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\n\n\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj));\n}\n\nfunction isFastBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n} // For Node v0.10 support. Remove this eventually.\n\n\nfunction isSlowBuffer(obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0));\n}\n\nvar _polyfillNode_buffer = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Buffer: Buffer$1,\n INSPECT_MAX_BYTES: INSPECT_MAX_BYTES,\n SlowBuffer: SlowBuffer,\n isBuffer: isBuffer,\n kMaxLength: _kMaxLength\n});\n\nfunction number$1(n) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(\"Wrong positive integer: \".concat(n));\n}\n\nfunction isBytes$2(a) {\n return a instanceof Uint8Array || a != null && _typeof$1(a) === 'object' && a.constructor.name === 'Uint8Array';\n}\n\nfunction bytes(b) {\n if (!isBytes$2(b)) throw new Error('Expected Uint8Array');\n\n for (var _len = arguments.length, lengths = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n lengths[_key - 1] = arguments[_key];\n }\n\n if (lengths.length > 0 && !lengths.includes(b.length)) throw new Error(\"Expected Uint8Array of length \".concat(lengths, \", not of length=\").concat(b.length));\n}\n\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function') throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number$1(hash.outputLen);\n number$1(hash.blockLen);\n}\n\nfunction exists(instance) {\n var checkFinished = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\n\nfunction output(out, instance) {\n bytes(out);\n var min = instance.outputLen;\n\n if (out.length < min) {\n throw new Error(\"digestInto() expects output buffer of length at least \".concat(min));\n }\n}\n\nvar crypto$1 = (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof$1(globalThis)) === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n\nvar u32$1 = function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n};\n\nfunction isBytes$1(a) {\n return a instanceof Uint8Array || a != null && _typeof$1(a) === 'object' && a.constructor.name === 'Uint8Array';\n} // Cast array to view\n\n\nvar createView = function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}; // The rotate right (circular right shift) operation for uint32\n\n\nvar rotr = function rotr(word, shift) {\n return 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.\n// Other libraries would silently corrupt the data instead of throwing an error,\n// when they don't support it.\n\n\nvar isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE) throw new Error('Non little-endian hardware is not supported'); // Array where index 0xf0 (240) is mapped to string 'f0'\n\nfunction utf8ToBytes$1(str) {\n if (typeof str !== 'string') throw new Error(\"utf8ToBytes expected string, got \".concat(_typeof$1(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 */\n\n\nfunction toBytes(data) {\n if (typeof data === 'string') data = utf8ToBytes$1(data);\n if (!isBytes$1(data)) throw new Error(\"expected Uint8Array, got \".concat(_typeof$1(data)));\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\n\n\nfunction concatBytes$1() {\n var sum = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var a = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (!isBytes$1(a)) throw new Error('Uint8Array expected');\n sum += a.length;\n }\n\n var res = new Uint8Array(sum);\n\n for (var _i2 = 0, pad = 0; _i2 < arguments.length; _i2++) {\n var _a = _i2 < 0 || arguments.length <= _i2 ? undefined : arguments[_i2];\n\n res.set(_a, pad);\n pad += _a.length;\n }\n\n return res;\n} // For runtime check if class implements interface\n\n\nvar Hash = /*#__PURE__*/function () {\n function Hash() {\n _classCallCheck(this, Hash);\n }\n\n _createClass(Hash, [{\n key: \"clone\",\n value: // Safe version that clones internal state\n function clone() {\n return this._cloneInto();\n }\n }]);\n\n return Hash;\n}();\n\nfunction wrapConstructor(hashCons) {\n var hashC = function hashC(msg) {\n return hashCons().update(toBytes(msg)).digest();\n };\n\n var tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n\n hashC.create = function () {\n return hashCons();\n };\n\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\n\n\nfunction randomBytes() {\n var bytesLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 32;\n\n if (crypto$1 && typeof crypto$1.getRandomValues === 'function') {\n return crypto$1.getRandomValues(new Uint8Array(bytesLength));\n }\n\n throw new Error('crypto.getRandomValues must be defined');\n}\n\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n\n var _32n = BigInt(32);\n\n var _u32_max = BigInt(0xffffffff);\n\n var wh = Number(value >> _32n & _u32_max);\n var wl = Number(value & _u32_max);\n var h = isLE ? 4 : 0;\n var l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n} // Base SHA2 class (RFC 6234)\n\n\nvar SHA2 = /*#__PURE__*/function (_Hash) {\n _inherits(SHA2, _Hash);\n\n var _super = _createSuper(SHA2);\n\n function SHA2(blockLen, outputLen, padOffset, isLE) {\n var _this;\n\n _classCallCheck(this, SHA2);\n\n _this = _super.call(this);\n _this.blockLen = blockLen;\n _this.outputLen = outputLen;\n _this.padOffset = padOffset;\n _this.isLE = isLE;\n _this.finished = false;\n _this.length = 0;\n _this.pos = 0;\n _this.destroyed = false;\n _this.buffer = new Uint8Array(blockLen);\n _this.view = createView(_this.buffer);\n return _this;\n }\n\n _createClass(SHA2, [{\n key: \"update\",\n value: function update(data) {\n exists(this);\n var view = this.view,\n buffer = this.buffer,\n blockLen = this.blockLen;\n data = toBytes(data);\n var len = data.length;\n\n for (var pos = 0; pos < len;) {\n var take = Math.min(blockLen - this.pos, len - pos); // Fast path: we have at least one block in input, cast it to view and process\n\n if (take === blockLen) {\n var dataView = createView(data);\n\n for (; blockLen <= len - pos; pos += blockLen) {\n this.process(dataView, pos);\n }\n\n continue;\n }\n\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n\n this.length += data.length;\n this.roundClean();\n return this;\n }\n }, {\n key: \"digestInto\",\n value: function digestInto(out) {\n exists(this);\n output(out, this);\n this.finished = true; // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n\n var buffer = this.buffer,\n view = this.view,\n blockLen = this.blockLen,\n isLE = this.isLE;\n var pos = this.pos; // append the bit '1' to the message\n\n buffer[pos++] = 128;\n this.buffer.subarray(pos).fill(0); // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n } // Pad until full block byte with zeros\n\n\n for (var i = pos; i < blockLen; i++) {\n buffer[i] = 0;\n } // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n\n\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n var oview = createView(out);\n var len = this.outputLen; // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n var outLen = len / 4;\n var state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n\n for (var _i2 = 0; _i2 < outLen; _i2++) {\n oview.setUint32(4 * _i2, state[_i2], isLE);\n }\n }\n }, {\n key: \"digest\",\n value: function digest() {\n var buffer = this.buffer,\n outputLen = this.outputLen;\n this.digestInto(buffer);\n var res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n }, {\n key: \"_cloneInto\",\n value: function _cloneInto(to) {\n var _to;\n\n to || (to = new this.constructor());\n\n (_to = to).set.apply(_to, _toConsumableArray(this.get()));\n\n var blockLen = this.blockLen,\n buffer = this.buffer,\n length = this.length,\n finished = this.finished,\n destroyed = this.destroyed,\n pos = this.pos;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n }]);\n\n return SHA2;\n}(Hash);\n\nvar U32_MASK64 = /* @__PURE__ */BigInt(Math.pow(2, 32) - 1);\n\nvar _32n = /* @__PURE__ */BigInt(32); // We are not using BigUint64Array, because they are extremely slow as per 2022\n\n\nfunction fromBig(n) {\n var le = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (le) return {\n h: Number(n & U32_MASK64),\n l: Number(n >> _32n & U32_MASK64)\n };\n return {\n h: Number(n >> _32n & U32_MASK64) | 0,\n l: Number(n & U32_MASK64) | 0\n };\n}\n\nfunction split(lst) {\n var le = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var Ah = new Uint32Array(lst.length);\n var Al = new Uint32Array(lst.length);\n\n for (var i = 0; i < lst.length; i++) {\n var _fromBig2 = fromBig(lst[i], le),\n h = _fromBig2.h,\n l = _fromBig2.l;\n\n var _ref = [h, l];\n Ah[i] = _ref[0];\n Al[i] = _ref[1];\n }\n\n return [Ah, Al];\n}\n\nvar toBig = function toBig(h, l) {\n return BigInt(h >>> 0) << _32n | BigInt(l >>> 0);\n}; // for Shift in [0, 32)\n\n\nvar shrSH = function shrSH(h, _l, s) {\n return h >>> s;\n};\n\nvar shrSL = function shrSL(h, l, s) {\n return h << 32 - s | l >>> s;\n}; // Right rotate for Shift in [1, 32)\n\n\nvar rotrSH = function rotrSH(h, l, s) {\n return h >>> s | l << 32 - s;\n};\n\nvar rotrSL = function rotrSL(h, l, s) {\n return h << 32 - s | l >>> s;\n}; // Right rotate for Shift in (32, 64), NOTE: 32 is special case.\n\n\nvar rotrBH = function rotrBH(h, l, s) {\n return h << 64 - s | l >>> s - 32;\n};\n\nvar rotrBL = function rotrBL(h, l, s) {\n return h >>> s - 32 | l << 64 - s;\n}; // Right rotate for shift===32 (just swaps l&h)\n\n\nvar rotr32H = function rotr32H(_h, l) {\n return l;\n};\n\nvar rotr32L = function rotr32L(h, _l) {\n return h;\n}; // Left rotate for Shift in [1, 32)\n\n\nvar rotlSH = function rotlSH(h, l, s) {\n return h << s | l >>> 32 - s;\n};\n\nvar rotlSL = function rotlSL(h, l, s) {\n return l << s | h >>> 32 - s;\n}; // Left rotate for Shift in (32, 64), NOTE: 32 is special case.\n\n\nvar rotlBH = function rotlBH(h, l, s) {\n return l << s - 32 | h >>> 64 - s;\n};\n\nvar rotlBL = function rotlBL(h, l, s) {\n return 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.\n\n\nfunction add(Ah, Al, Bh, Bl) {\n var l = (Al >>> 0) + (Bl >>> 0);\n return {\n h: Ah + Bh + (l / Math.pow(2, 32) | 0) | 0,\n l: l | 0\n };\n} // Addition with more than 2 elements\n\n\nvar add3L = function add3L(Al, Bl, Cl) {\n return (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\n};\n\nvar add3H = function add3H(low, Ah, Bh, Ch) {\n return Ah + Bh + Ch + (low / Math.pow(2, 32) | 0) | 0;\n};\n\nvar add4L = function add4L(Al, Bl, Cl, Dl) {\n return (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\n};\n\nvar add4H = function add4H(low, Ah, Bh, Ch, Dh) {\n return Ah + Bh + Ch + Dh + (low / Math.pow(2, 32) | 0) | 0;\n};\n\nvar add5L = function add5L(Al, Bl, Cl, Dl, El) {\n return (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\n};\n\nvar add5H = function add5H(low, Ah, Bh, Ch, Dh, Eh) {\n return Ah + Bh + Ch + Dh + Eh + (low / Math.pow(2, 32) | 0) | 0;\n}; // prettier-ignore\n\n\nvar u64$1 = {\n fromBig: fromBig,\n split: split,\n toBig: toBig,\n shrSH: shrSH,\n shrSL: shrSL,\n rotrSH: rotrSH,\n rotrSL: rotrSL,\n rotrBH: rotrBH,\n rotrBL: rotrBL,\n rotr32H: rotr32H,\n rotr32L: rotr32L,\n rotlSH: rotlSH,\n rotlSL: rotlSL,\n rotlBH: rotlBH,\n rotlBL: rotlBL,\n add: add,\n add3L: add3L,\n add3H: add3H,\n add4L: add4L,\n add4H: add4H,\n add5H: add5H,\n add5L: add5L\n};\nvar u64$2 = u64$1; // prettier-ignore\n\nvar _ref$1 = /* @__PURE__ */function () {\n return u64$2.split(['0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc', '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118', '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2', '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694', '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65', '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5', '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4', '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70', '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df', '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b', '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30', '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8', '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8', '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3', '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec', '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b', '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178', '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b', '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c', '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'].map(function (n) {\n return BigInt(n);\n }));\n}(),\n _ref2 = _slicedToArray(_ref$1, 2),\n SHA512_Kh = _ref2[0],\n SHA512_Kl = _ref2[1]; // Temporary buffer, not used to store anything between runs\n\n\nvar SHA512_W_H = /* @__PURE__ */new Uint32Array(80);\nvar SHA512_W_L = /* @__PURE__ */new Uint32Array(80);\n\nvar SHA512 = /*#__PURE__*/function (_SHA) {\n _inherits(SHA512, _SHA);\n\n var _super = _createSuper(SHA512);\n\n function SHA512() {\n var _this;\n\n _classCallCheck(this, SHA512);\n\n _this = _super.call(this, 128, 64, 16, false); // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n\n _this.Ah = 0x6a09e667 | 0;\n _this.Al = 0xf3bcc908 | 0;\n _this.Bh = 0xbb67ae85 | 0;\n _this.Bl = 0x84caa73b | 0;\n _this.Ch = 0x3c6ef372 | 0;\n _this.Cl = 0xfe94f82b | 0;\n _this.Dh = 0xa54ff53a | 0;\n _this.Dl = 0x5f1d36f1 | 0;\n _this.Eh = 0x510e527f | 0;\n _this.El = 0xade682d1 | 0;\n _this.Fh = 0x9b05688c | 0;\n _this.Fl = 0x2b3e6c1f | 0;\n _this.Gh = 0x1f83d9ab | 0;\n _this.Gl = 0xfb41bd6b | 0;\n _this.Hh = 0x5be0cd19 | 0;\n _this.Hl = 0x137e2179 | 0;\n return _this;\n } // prettier-ignore\n\n\n _createClass(SHA512, [{\n key: \"get\",\n value: function get() {\n var Ah = this.Ah,\n Al = this.Al,\n Bh = this.Bh,\n Bl = this.Bl,\n Ch = this.Ch,\n Cl = this.Cl,\n Dh = this.Dh,\n Dl = this.Dl,\n Eh = this.Eh,\n El = this.El,\n Fh = this.Fh,\n Fl = this.Fl,\n Gh = this.Gh,\n Gl = this.Gl,\n Hh = this.Hh,\n Hl = this.Hl;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n } // prettier-ignore\n\n }, {\n key: \"set\",\n value: function set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n }, {\n key: \"process\",\n value: function process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (var i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32(offset += 4);\n }\n\n for (var _i2 = 16; _i2 < 80; _i2++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n var W15h = SHA512_W_H[_i2 - 15] | 0;\n var W15l = SHA512_W_L[_i2 - 15] | 0;\n var s0h = u64$2.rotrSH(W15h, W15l, 1) ^ u64$2.rotrSH(W15h, W15l, 8) ^ u64$2.shrSH(W15h, W15l, 7);\n var s0l = u64$2.rotrSL(W15h, W15l, 1) ^ u64$2.rotrSL(W15h, W15l, 8) ^ u64$2.shrSL(W15h, W15l, 7); // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n\n var W2h = SHA512_W_H[_i2 - 2] | 0;\n var W2l = SHA512_W_L[_i2 - 2] | 0;\n var s1h = u64$2.rotrSH(W2h, W2l, 19) ^ u64$2.rotrBH(W2h, W2l, 61) ^ u64$2.shrSH(W2h, W2l, 6);\n var s1l = u64$2.rotrSL(W2h, W2l, 19) ^ u64$2.rotrBL(W2h, W2l, 61) ^ u64$2.shrSL(W2h, W2l, 6); // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n\n var SUMl = u64$2.add4L(s0l, s1l, SHA512_W_L[_i2 - 7], SHA512_W_L[_i2 - 16]);\n var SUMh = u64$2.add4H(SUMl, s0h, s1h, SHA512_W_H[_i2 - 7], SHA512_W_H[_i2 - 16]);\n SHA512_W_H[_i2] = SUMh | 0;\n SHA512_W_L[_i2] = SUMl | 0;\n }\n\n var Ah = this.Ah,\n Al = this.Al,\n Bh = this.Bh,\n Bl = this.Bl,\n Ch = this.Ch,\n Cl = this.Cl,\n Dh = this.Dh,\n Dl = this.Dl,\n Eh = this.Eh,\n El = this.El,\n Fh = this.Fh,\n Fl = this.Fl,\n Gh = this.Gh,\n Gl = this.Gl,\n Hh = this.Hh,\n Hl = this.Hl; // Compression function main loop, 80 rounds\n\n for (var _i4 = 0; _i4 < 80; _i4++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n var sigma1h = u64$2.rotrSH(Eh, El, 14) ^ u64$2.rotrSH(Eh, El, 18) ^ u64$2.rotrBH(Eh, El, 41);\n var sigma1l = u64$2.rotrSL(Eh, El, 14) ^ u64$2.rotrSL(Eh, El, 18) ^ u64$2.rotrBL(Eh, El, 41); //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n\n var CHIh = Eh & Fh ^ ~Eh & Gh;\n var CHIl = El & Fl ^ ~El & Gl; // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n\n var T1ll = u64$2.add5L(Hl, sigma1l, CHIl, SHA512_Kl[_i4], SHA512_W_L[_i4]);\n var T1h = u64$2.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[_i4], SHA512_W_H[_i4]);\n var T1l = T1ll | 0; // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n\n var sigma0h = u64$2.rotrSH(Ah, Al, 28) ^ u64$2.rotrBH(Ah, Al, 34) ^ u64$2.rotrBH(Ah, Al, 39);\n var sigma0l = u64$2.rotrSL(Ah, Al, 28) ^ u64$2.rotrBL(Ah, Al, 34) ^ u64$2.rotrBL(Ah, Al, 39);\n var MAJh = Ah & Bh ^ Ah & Ch ^ Bh & Ch;\n var MAJl = Al & Bl ^ Al & Cl ^ Bl & Cl;\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n\n var _u64$add = u64$2.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0);\n\n Eh = _u64$add.h;\n El = _u64$add.l;\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n var All = u64$2.add3L(T1l, sigma0l, MAJl);\n Ah = u64$2.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n } // Add the compressed chunk to the current hash value\n\n\n var _u64$add2 = u64$2.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0);\n\n Ah = _u64$add2.h;\n Al = _u64$add2.l;\n\n var _u64$add3 = u64$2.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0);\n\n Bh = _u64$add3.h;\n Bl = _u64$add3.l;\n\n var _u64$add4 = u64$2.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0);\n\n Ch = _u64$add4.h;\n Cl = _u64$add4.l;\n\n var _u64$add5 = u64$2.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0);\n\n Dh = _u64$add5.h;\n Dl = _u64$add5.l;\n\n var _u64$add6 = u64$2.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0);\n\n Eh = _u64$add6.h;\n El = _u64$add6.l;\n\n var _u64$add7 = u64$2.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0);\n\n Fh = _u64$add7.h;\n Fl = _u64$add7.l;\n\n var _u64$add8 = u64$2.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0);\n\n Gh = _u64$add8.h;\n Gl = _u64$add8.l;\n\n var _u64$add9 = u64$2.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0);\n\n Hh = _u64$add9.h;\n Hl = _u64$add9.l;\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n }, {\n key: \"roundClean\",\n value: function roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n }]);\n\n return SHA512;\n}(SHA2);\n\nvar sha512 = /* @__PURE__ */wrapConstructor(function () {\n return new SHA512();\n});\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\n\nvar _0n$5 = BigInt(0);\n\nvar _1n$7 = BigInt(1);\n\nvar _2n$5 = BigInt(2);\n\nfunction isBytes(a) {\n return a instanceof Uint8Array || a != null && _typeof$1(a) === 'object' && a.constructor.name === 'Uint8Array';\n} // Array where index 0xf0 (240) is mapped to string 'f0'\n\n\nvar hexes = /* @__PURE__ */Array.from({\n length: 256\n}, function (_, i) {\n return i.toString(16).padStart(2, '0');\n});\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\n\nfunction bytesToHex(bytes) {\n if (!isBytes(bytes)) throw new Error('Uint8Array expected'); // pre-caching improves the speed 6x\n\n var hex = '';\n\n for (var i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n\n return hex;\n}\n\nfunction numberToHexUnpadded(num) {\n var hex = num.toString(16);\n return hex.length & 1 ? \"0\".concat(hex) : hex;\n}\n\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + _typeof$1(hex)); // Big Endian\n\n return BigInt(hex === '' ? '0' : \"0x\".concat(hex));\n} // We use optimized technique to convert hex string to byte array\n\n\nvar asciis = {\n _0: 48,\n _9: 57,\n _A: 65,\n _F: 70,\n _a: 97,\n _f: 102\n};\n\nfunction asciiToBase16(_char) {\n if (_char >= asciis._0 && _char <= asciis._9) return _char - asciis._0;\n if (_char >= asciis._A && _char <= asciis._F) return _char - (asciis._A - 10);\n if (_char >= asciis._a && _char <= asciis._f) return _char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\n\n\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + _typeof$1(hex));\n var hl = hex.length;\n var al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n var array = new Uint8Array(al);\n\n for (var ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n var n1 = asciiToBase16(hex.charCodeAt(hi));\n var n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n\n if (n1 === undefined || n2 === undefined) {\n var _char2 = hex[hi] + hex[hi + 1];\n\n throw new Error('hex string expected, got non-hex character \"' + _char2 + '\" at index ' + hi);\n }\n\n array[ai] = n1 * 16 + n2;\n }\n\n return array;\n} // BE: Big Endian, LE: Little Endian\n\n\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\n\nfunction bytesToNumberLE(bytes) {\n if (!isBytes(bytes)) throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\n\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n} // Unpadded, rarely used\n\n\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\n\n\nfunction ensureBytes(title, hex, expectedLength) {\n var res;\n\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(\"\".concat(title, \" must be valid hex string, got \\\"\").concat(hex, \"\\\". Cause: \").concat(e));\n }\n } else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(\"\".concat(title, \" must be hex string or Uint8Array\"));\n }\n\n var len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength) throw new Error(\"\".concat(title, \" expected \").concat(expectedLength, \" bytes, got \").concat(len));\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\n\n\nfunction concatBytes() {\n var sum = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var a = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (!isBytes(a)) throw new Error('Uint8Array expected');\n sum += a.length;\n }\n\n var res = new Uint8Array(sum);\n var pad = 0;\n\n for (var _i2 = 0; _i2 < arguments.length; _i2++) {\n var _a = _i2 < 0 || arguments.length <= _i2 ? undefined : arguments[_i2];\n\n res.set(_a, pad);\n pad += _a.length;\n }\n\n return res;\n} // Compares 2 u8a-s in kinda constant time\n\n\nfunction equalBytes(a, b) {\n if (a.length !== b.length) return false;\n var diff = 0;\n\n for (var i = 0; i < a.length; i++) {\n diff |= a[i] ^ b[i];\n }\n\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\n\n\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') throw new Error(\"utf8ToBytes expected string, got \".concat(_typeof$1(str)));\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n} // Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\n\n\nfunction bitLen(n) {\n var len;\n\n for (len = 0; n > _0n$5; n >>= _1n$7, len += 1) {\n ;\n }\n\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\n\n\nfunction bitGet(n, pos) {\n return n >> BigInt(pos) & _1n$7;\n}\n/**\n * Sets single bit at position.\n */\n\n\nvar bitSet = function bitSet(n, pos, value) {\n return n | (value ? _1n$7 : _0n$5) << BigInt(pos);\n};\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\n\n\nvar bitMask = function bitMask(n) {\n return (_2n$5 << BigInt(n - 1)) - _1n$7;\n}; // DRBG\n\n\nvar u8n = function u8n(data) {\n return new Uint8Array(data);\n}; // creates Uint8Array\n\n\nvar u8fr = function u8fr(arr) {\n return Uint8Array.from(arr);\n}; // another shortcut\n\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\n\n\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function'); // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n\n var v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n\n var k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n\n var i = 0; // Iterations counter, will throw when over 1000\n\n var reset = function reset() {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n\n var h = function h() {\n for (var _len = arguments.length, b = new Array(_len), _key = 0; _key < _len; _key++) {\n b[_key] = arguments[_key];\n }\n\n return hmacFn.apply(void 0, [k, v].concat(b));\n }; // hmac(k)(v, ...values)\n\n\n var reseed = function reseed() {\n var seed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : u8n(); // HMAC-DRBG reseed() function. Steps D-G\n\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n\n v = h(); // v = hmac(k || v)\n\n if (seed.length === 0) return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n\n v = h(); // v = hmac(k || v)\n };\n\n var gen = function gen() {\n // HMAC-DRBG generate() function\n if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n var len = 0;\n var out = [];\n\n while (len < qByteLen) {\n v = h();\n var sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n\n return concatBytes.apply(void 0, out);\n };\n\n var genUntil = function genUntil(seed, pred) {\n reset();\n reseed(seed); // Steps D-G\n\n var res = undefined; // Step H: grind until k is in [1..n-1]\n\n while (!(res = pred(gen()))) {\n reseed();\n }\n\n reset();\n return res;\n };\n\n return genUntil;\n} // Validating curves and fields\n\n\nvar validatorFns = {\n bigint: function bigint(val) {\n return typeof val === 'bigint';\n },\n \"function\": function _function(val) {\n return typeof val === 'function';\n },\n \"boolean\": function boolean(val) {\n return typeof val === 'boolean';\n },\n string: function string(val) {\n return typeof val === 'string';\n },\n stringOrUint8Array: function stringOrUint8Array(val) {\n return typeof val === 'string' || isBytes(val);\n },\n isSafeInteger: function isSafeInteger(val) {\n return Number.isSafeInteger(val);\n },\n array: function array(val) {\n return Array.isArray(val);\n },\n field: function field(val, object) {\n return object.Fp.isValid(val);\n },\n hash: function hash(val) {\n return typeof val === 'function' && Number.isSafeInteger(val.outputLen);\n }\n}; // type Record = { [P in K]: T; }\n\nfunction validateObject(object, validators) {\n var optValidators = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var checkField = function checkField(fieldName, type, isOptional) {\n var checkVal = validatorFns[type];\n if (typeof checkVal !== 'function') throw new Error(\"Invalid validator \\\"\".concat(type, \"\\\", expected function\"));\n var val = object[fieldName];\n if (isOptional && val === undefined) return;\n\n if (!checkVal(val, object)) {\n throw new Error(\"Invalid param \".concat(String(fieldName), \"=\").concat(val, \" (\").concat(_typeof$1(val), \"), expected \").concat(type));\n }\n };\n\n for (var _i3 = 0, _Object$entries = Object.entries(validators); _i3 < _Object$entries.length; _i3++) {\n var _Object$entries$_i2 = _slicedToArray(_Object$entries[_i3], 2),\n fieldName = _Object$entries$_i2[0],\n type = _Object$entries$_i2[1];\n\n checkField(fieldName, type, false);\n }\n\n for (var _i4 = 0, _Object$entries2 = Object.entries(optValidators); _i4 < _Object$entries2.length; _i4++) {\n var _Object$entries2$_i2 = _slicedToArray(_Object$entries2[_i4], 2),\n _fieldName = _Object$entries2$_i2[0],\n _type = _Object$entries2$_i2[1];\n\n checkField(_fieldName, _type, true);\n }\n\n return object;\n} // validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\n\nvar ut = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isBytes: isBytes,\n bytesToHex: bytesToHex,\n numberToHexUnpadded: numberToHexUnpadded,\n hexToNumber: hexToNumber,\n hexToBytes: hexToBytes,\n bytesToNumberBE: bytesToNumberBE,\n bytesToNumberLE: bytesToNumberLE,\n numberToBytesBE: numberToBytesBE,\n numberToBytesLE: numberToBytesLE,\n numberToVarBytesBE: numberToVarBytesBE,\n ensureBytes: ensureBytes,\n concatBytes: concatBytes,\n equalBytes: equalBytes,\n utf8ToBytes: utf8ToBytes,\n bitLen: bitLen,\n bitGet: bitGet,\n bitSet: bitSet,\n bitMask: bitMask,\n createHmacDrbg: createHmacDrbg,\n validateObject: validateObject\n});\n\nvar _0n$4 = BigInt(0),\n _1n$6 = BigInt(1),\n _2n$4 = BigInt(2),\n _3n$1 = BigInt(3); // prettier-ignore\n\n\nvar _4n = BigInt(4),\n _5n$1 = BigInt(5),\n _8n$1 = BigInt(8); // prettier-ignore\n\n\nBigInt(9);\nBigInt(16); // Calculates a modulo b\n\nfunction mod(a, b) {\n var result = a % b;\n return result >= _0n$4 ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\n\n\nfunction pow(num, power, modulo) {\n if (modulo <= _0n$4 || power < _0n$4) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n$6) return _0n$4;\n var res = _1n$6;\n\n while (power > _0n$4) {\n if (power & _1n$6) res = res * num % modulo;\n num = num * num % modulo;\n power >>= _1n$6;\n }\n\n return res;\n} // Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\n\n\nfunction pow2(x, power, modulo) {\n var res = x;\n\n while (power-- > _0n$4) {\n res *= res;\n res %= modulo;\n }\n\n return res;\n} // Inverses number over modulo\n\n\nfunction invert(number, modulo) {\n if (number === _0n$4 || modulo <= _0n$4) {\n throw new Error(\"invert: expected positive integers, got n=\".concat(number, \" mod=\").concat(modulo));\n } // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n\n\n var a = mod(number, modulo);\n var b = modulo; // prettier-ignore\n\n var x = _0n$4,\n u = _1n$6;\n\n while (a !== _0n$4) {\n // JIT applies optimization if those two lines follow each other\n var q = b / a;\n var r = b % a;\n var m = x - u * q;\n b = a, a = r, x = u, u = m;\n }\n\n var gcd = b;\n if (gcd !== _1n$6) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\n\n\nfunction tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n var legendreC = (P - _1n$6) / _2n$4;\n var Q, S, Z; // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n\n for (Q = P - _1n$6, S = 0; Q % _2n$4 === _0n$4; Q /= _2n$4, S++) {\n ;\n } // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n\n\n for (Z = _2n$4; Z < P && pow(Z, legendreC, P) !== P - _1n$6; Z++) {\n ;\n } // Fast-path\n\n\n if (S === 1) {\n var p1div4 = (P + _1n$6) / _4n;\n return function tonelliFast(Fp, n) {\n var root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n } // Slow-path\n\n\n var Q1div2 = (Q + _1n$6) / _2n$4;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n var r = S; // TODO: will fail at Fp2/etc\n\n var g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n\n var x = Fp.pow(n, Q1div2); // first guess at the square root\n\n var b = Fp.pow(n, Q); // first guess at the fudge factor\n\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n\n var m = 1;\n\n for (var t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE)) break;\n t2 = Fp.sqr(t2); // t2 *= t2\n } // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n\n\n var ge = Fp.pow(g, _1n$6 << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n\n g = Fp.sqr(ge); // g = ge * ge\n\n x = Fp.mul(x, ge); // x *= ge\n\n b = Fp.mul(b, g); // b *= g\n\n r = m;\n }\n\n return x;\n };\n}\n\nfunction FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n$1) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n var p1div4 = (P + _1n$6) / _4n;\n return function sqrt3mod4(Fp, n) {\n var root = Fp.pow(n, p1div4); // Throw if root**2 != n\n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n } // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n\n\n if (P % _8n$1 === _5n$1) {\n var c1 = (P - _5n$1) / _8n$1;\n return function sqrt5mod8(Fp, n) {\n var n2 = Fp.mul(n, _2n$4);\n var v = Fp.pow(n2, c1);\n var nv = Fp.mul(n, v);\n var i = Fp.mul(Fp.mul(nv, _2n$4), v);\n var root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n } // P ≡ 9 (mod 16)\n\n\n return tonelliShanks(P);\n} // Little-endian check for first LE bit (last BE bit);\n\n\nvar isNegativeLE = function isNegativeLE(num, modulo) {\n return (mod(num, modulo) & _1n$6) === _1n$6;\n}; // prettier-ignore\n\n\nvar FIELD_FIELDS = ['create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr', 'eql', 'add', 'sub', 'mul', 'pow', 'div', 'addN', 'subN', 'mulN', 'sqrN'];\n\nfunction validateField(field) {\n var initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger'\n };\n var opts = FIELD_FIELDS.reduce(function (map, val) {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n} // Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\n\n\nfunction FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n$4) throw new Error('Expected power > 0');\n if (power === _0n$4) return f.ONE;\n if (power === _1n$6) return num;\n var p = f.ONE;\n var d = num;\n\n while (power > _0n$4) {\n if (power & _1n$6) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n$6;\n }\n\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\n\n\nfunction FpInvertBatch(f, nums) {\n var tmp = new Array(nums.length); // Walk from first to last, multiply them by each other MOD p\n\n var lastMultiplied = nums.reduce(function (acc, num, i) {\n if (f.is0(num)) return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE); // Invert last element\n\n var inverted = f.inv(lastMultiplied); // Walk from last to first, multiply them by inverted each other MOD p\n\n nums.reduceRight(function (acc, num, i) {\n if (f.is0(num)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n var _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n\n var nByteLength = Math.ceil(_nBitLength / 8);\n return {\n nBitLength: _nBitLength,\n nByteLength: nByteLength\n };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\n\n\nfunction Field(ORDER, bitLen) {\n var isLE = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var redef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (ORDER <= _0n$4) throw new Error(\"Expected Field ORDER > 0, got \".concat(ORDER));\n\n var _nLength = nLength(ORDER, bitLen),\n BITS = _nLength.nBitLength,\n BYTES = _nLength.nByteLength;\n\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n var sqrtP = FpSqrt(ORDER);\n var f = Object.freeze({\n ORDER: ORDER,\n BITS: BITS,\n BYTES: BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n$4,\n ONE: _1n$6,\n create: function create(num) {\n return mod(num, ORDER);\n },\n isValid: function isValid(num) {\n if (typeof num !== 'bigint') throw new Error(\"Invalid field element: expected bigint, got \".concat(_typeof$1(num)));\n return _0n$4 <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: function is0(num) {\n return num === _0n$4;\n },\n isOdd: function isOdd(num) {\n return (num & _1n$6) === _1n$6;\n },\n neg: function neg(num) {\n return mod(-num, ORDER);\n },\n eql: function eql(lhs, rhs) {\n return lhs === rhs;\n },\n sqr: function sqr(num) {\n return mod(num * num, ORDER);\n },\n add: function add(lhs, rhs) {\n return mod(lhs + rhs, ORDER);\n },\n sub: function sub(lhs, rhs) {\n return mod(lhs - rhs, ORDER);\n },\n mul: function mul(lhs, rhs) {\n return mod(lhs * rhs, ORDER);\n },\n pow: function pow(num, power) {\n return FpPow(f, num, power);\n },\n div: function div(lhs, rhs) {\n return mod(lhs * invert(rhs, ORDER), ORDER);\n },\n // Same as above, but doesn't normalize\n sqrN: function sqrN(num) {\n return num * num;\n },\n addN: function addN(lhs, rhs) {\n return lhs + rhs;\n },\n subN: function subN(lhs, rhs) {\n return lhs - rhs;\n },\n mulN: function mulN(lhs, rhs) {\n return lhs * rhs;\n },\n inv: function inv(num) {\n return invert(num, ORDER);\n },\n sqrt: redef.sqrt || function (n) {\n return sqrtP(f, n);\n },\n invertBatch: function invertBatch(lst) {\n return FpInvertBatch(f, lst);\n },\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: function cmov(a, b, c) {\n return c ? b : a;\n },\n toBytes: function toBytes(num) {\n return isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES);\n },\n fromBytes: function fromBytes(bytes) {\n if (bytes.length !== BYTES) throw new Error(\"Fp.fromBytes: expected \".concat(BYTES, \", got \").concat(bytes.length));\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n }\n });\n return Object.freeze(f);\n}\n\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd) throw new Error(\"Field doesn't have isOdd\");\n var root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\n\n\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n var bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\n\n\nfunction getMinHashLength(fieldOrder) {\n var length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\n\n\nfunction mapHashToField(key, fieldOrder) {\n var isLE = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var len = key.length;\n var fieldLen = getFieldBytesLength(fieldOrder);\n var minLen = getMinHashLength(fieldOrder); // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n\n if (len < 16 || len < minLen || len > 1024) throw new Error(\"expected \".concat(minLen, \"-1024 bytes of input, got \").concat(len));\n var num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key); // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n\n var reduced = mod(num, fieldOrder - _1n$6) + _1n$6;\n\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n\nvar _0n$3 = BigInt(0);\n\nvar _1n$5 = BigInt(1); // Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\n\n\nfunction wNAF(c, bits) {\n var constTimeNegate = function constTimeNegate(condition, item) {\n var neg = item.negate();\n return condition ? neg : item;\n };\n\n var opts = function opts(W) {\n var windows = Math.ceil(bits / W) + 1; // +1, because\n\n var windowSize = Math.pow(2, W - 1); // -1 because we skip zero\n\n return {\n windows: windows,\n windowSize: windowSize\n };\n };\n\n return {\n constTimeNegate: constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder: function unsafeLadder(elm, n) {\n var p = c.ZERO;\n var d = elm;\n\n while (n > _0n$3) {\n if (n & _1n$5) p = p.add(d);\n d = d[\"double\"]();\n n >>= _1n$5;\n }\n\n return p;\n },\n\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow: function precomputeWindow(elm, W) {\n var _opts = opts(W),\n windows = _opts.windows,\n windowSize = _opts.windowSize;\n\n var points = [];\n var p = elm;\n var base = p;\n\n for (var window = 0; window < windows; window++) {\n base = p;\n points.push(base); // =1, because we skip zero\n\n for (var i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n\n p = base[\"double\"]();\n }\n\n return points;\n },\n\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF: function wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n var _opts2 = opts(W),\n windows = _opts2.windows,\n windowSize = _opts2.windowSize;\n\n var p = c.ZERO;\n var f = c.BASE;\n var mask = BigInt(Math.pow(2, W) - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n\n var maxNumber = Math.pow(2, W);\n var shiftBy = BigInt(W);\n\n for (var window = 0; window < windows; window++) {\n var offset = window * windowSize; // Extract W bits.\n\n var wbits = Number(n & mask); // Shift number by W bits.\n\n n >>= shiftBy; // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n$5;\n } // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n\n\n var offset1 = offset;\n var offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n\n var cond1 = window % 2 !== 0;\n var cond2 = wbits < 0;\n\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n } else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n } // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n\n\n return {\n p: p,\n f: f\n };\n },\n wNAFCached: function wNAFCached(P, precomputesMap, n, transform) {\n // @ts-ignore\n var W = P._WINDOW_SIZE || 1; // Calculate precomputes on a first run, reuse them after\n\n var comp = precomputesMap.get(P);\n\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n\n return this.wNAF(W, comp, n);\n }\n };\n}\n\nfunction validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field'\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger'\n }); // Set defaults\n\n return Object.freeze(_objectSpread2(_objectSpread2(_objectSpread2({}, nLength(curve.n, curve.nBitLength)), curve), {\n p: curve.Fp.ORDER\n }));\n} // prettier-ignore\n\n\nvar _0n$2 = BigInt(0),\n _1n$4 = BigInt(1),\n _2n$3 = BigInt(2),\n _8n = BigInt(8); // verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex:\n\n\nvar VERIFY_DEFAULT = {\n zip215: true\n};\n\nfunction validateOpts$1(curve) {\n var opts = validateBasic(curve);\n validateObject(curve, {\n hash: 'function',\n a: 'bigint',\n d: 'bigint',\n randomBytes: 'function'\n }, {\n adjustScalarBytes: 'function',\n domain: 'function',\n uvRatio: 'function',\n mapToCurve: 'function'\n }); // Set defaults\n\n return Object.freeze(_objectSpread2({}, opts));\n} // It is not generic twisted curve for now, but ed25519/ed448 generic implementation\n\n\nfunction twistedEdwards(curveDef) {\n var CURVE = validateOpts$1(curveDef);\n var Fp = CURVE.Fp,\n CURVE_ORDER = CURVE.n,\n prehash = CURVE.prehash,\n cHash = CURVE.hash,\n randomBytes = CURVE.randomBytes,\n nByteLength = CURVE.nByteLength,\n cofactor = CURVE.h;\n\n var MASK = _2n$3 << BigInt(nByteLength * 8) - _1n$4;\n\n var modP = Fp.create; // Function overrides\n // sqrt(u/v)\n\n var uvRatio = CURVE.uvRatio || function (u, v) {\n try {\n return {\n isValid: true,\n value: Fp.sqrt(u * Fp.inv(v))\n };\n } catch (e) {\n return {\n isValid: false,\n value: _0n$2\n };\n }\n };\n\n var adjustScalarBytes = CURVE.adjustScalarBytes || function (bytes) {\n return bytes;\n }; // NOOP\n\n\n var domain = CURVE.domain || function (data, ctx, phflag) {\n if (ctx.length || phflag) throw new Error('Contexts/pre-hash are not supported');\n return data;\n }; // NOOP\n\n\n var inBig = function inBig(n) {\n return typeof n === 'bigint' && _0n$2 < n;\n }; // n in [1..]\n\n\n var inRange = function inRange(n, max) {\n return inBig(n) && inBig(max) && n < max;\n }; // n in [1..max-1]\n\n\n var in0MaskRange = function in0MaskRange(n) {\n return n === _0n$2 || inRange(n, MASK);\n }; // n in [0..MASK-1]\n\n\n function assertInRange(n, max) {\n // n in [1..max-1]\n if (inRange(n, max)) return n;\n throw new Error(\"Expected valid scalar < \".concat(max, \", got \").concat(_typeof$1(n), \" \").concat(n));\n }\n\n function assertGE0(n) {\n // n in [0..CURVE_ORDER-1]\n return n === _0n$2 ? n : assertInRange(n, CURVE_ORDER); // GE = prime subgroup, not full group\n }\n\n var pointPrecomputes = new Map();\n\n function isPoint(other) {\n if (!(other instanceof Point)) throw new Error('ExtendedPoint expected');\n } // Extended Point works in extended coordinates: (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy).\n // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates\n\n\n var Point = /*#__PURE__*/function () {\n function Point(ex, ey, ez, et) {\n _classCallCheck(this, Point);\n\n this.ex = ex;\n this.ey = ey;\n this.ez = ez;\n this.et = et;\n if (!in0MaskRange(ex)) throw new Error('x required');\n if (!in0MaskRange(ey)) throw new Error('y required');\n if (!in0MaskRange(ez)) throw new Error('z required');\n if (!in0MaskRange(et)) throw new Error('t required');\n }\n\n _createClass(Point, [{\n key: \"x\",\n get: function get() {\n return this.toAffine().x;\n }\n }, {\n key: \"y\",\n get: function get() {\n return this.toAffine().y;\n }\n }, {\n key: \"_setWindowSize\",\n value: // \"Private method\", don't use it directly\n function _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes[\"delete\"](this);\n } // Not required for fromHex(), which always creates valid points.\n // Could be useful for fromAffine().\n\n }, {\n key: \"assertValidity\",\n value: function assertValidity() {\n var a = CURVE.a,\n d = CURVE.d;\n if (this.is0()) throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n // Equation in affine coordinates: ax² + y² = 1 + dx²y²\n // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²\n\n var X = this.ex,\n Y = this.ey,\n Z = this.ez,\n T = this.et;\n var X2 = modP(X * X); // X²\n\n var Y2 = modP(Y * Y); // Y²\n\n var Z2 = modP(Z * Z); // Z²\n\n var Z4 = modP(Z2 * Z2); // Z⁴\n\n var aX2 = modP(X2 * a); // aX²\n\n var left = modP(Z2 * modP(aX2 + Y2)); // (aX² + Y²)Z²\n\n var right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z⁴ + dX²Y²\n\n if (left !== right) throw new Error('bad point: equation left != right (1)'); // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n\n var XY = modP(X * Y);\n var ZT = modP(Z * T);\n if (XY !== ZT) throw new Error('bad point: equation left != right (2)');\n } // Compare one point to another.\n\n }, {\n key: \"equals\",\n value: function equals(other) {\n isPoint(other);\n var X1 = this.ex,\n Y1 = this.ey,\n Z1 = this.ez;\n var X2 = other.ex,\n Y2 = other.ey,\n Z2 = other.ez;\n var X1Z2 = modP(X1 * Z2);\n var X2Z1 = modP(X2 * Z1);\n var Y1Z2 = modP(Y1 * Z2);\n var Y2Z1 = modP(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n }, {\n key: \"is0\",\n value: function is0() {\n return this.equals(Point.ZERO);\n }\n }, {\n key: \"negate\",\n value: function negate() {\n // Flips point sign to a negative one (-x, y in affine coords)\n return new Point(modP(-this.ex), this.ey, this.ez, modP(-this.et));\n } // Fast algo for doubling Extended Point.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n // Cost: 4M + 4S + 1*a + 6add + 1*2.\n\n }, {\n key: \"double\",\n value: function double() {\n var a = CURVE.a;\n var X1 = this.ex,\n Y1 = this.ey,\n Z1 = this.ez;\n var A = modP(X1 * X1); // A = X12\n\n var B = modP(Y1 * Y1); // B = Y12\n\n var C = modP(_2n$3 * modP(Z1 * Z1)); // C = 2*Z12\n\n var D = modP(a * A); // D = a*A\n\n var x1y1 = X1 + Y1;\n var E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B\n\n var G = D + B; // G = D+B\n\n var F = G - C; // F = G-C\n\n var H = D - B; // H = D-B\n\n var X3 = modP(E * F); // X3 = E*F\n\n var Y3 = modP(G * H); // Y3 = G*H\n\n var T3 = modP(E * H); // T3 = E*H\n\n var Z3 = modP(F * G); // Z3 = F*G\n\n return new Point(X3, Y3, Z3, T3);\n } // Fast algo for adding 2 Extended Points.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd\n // Cost: 9M + 1*a + 1*d + 7add.\n\n }, {\n key: \"add\",\n value: function add(other) {\n isPoint(other);\n var a = CURVE.a,\n d = CURVE.d;\n var X1 = this.ex,\n Y1 = this.ey,\n Z1 = this.ez,\n T1 = this.et;\n var X2 = other.ex,\n Y2 = other.ey,\n Z2 = other.ez,\n T2 = other.et; // Faster algo for adding 2 Extended Points when curve's a=-1.\n // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-4\n // Cost: 8M + 8add + 2*2.\n // Note: It does not check whether the `other` point is valid.\n\n if (a === BigInt(-1)) {\n var _A = modP((Y1 - X1) * (Y2 + X2));\n\n var _B = modP((Y1 + X1) * (Y2 - X2));\n\n var _F = modP(_B - _A);\n\n if (_F === _0n$2) return this[\"double\"](); // Same point. Tests say it doesn't affect timing\n\n var _C = modP(Z1 * _2n$3 * T2);\n\n var _D = modP(T1 * _2n$3 * Z2);\n\n var _E = _D + _C;\n\n var _G = _B + _A;\n\n var _H = _D - _C;\n\n var _X = modP(_E * _F);\n\n var _Y = modP(_G * _H);\n\n var _T = modP(_E * _H);\n\n var _Z = modP(_F * _G);\n\n return new Point(_X, _Y, _Z, _T);\n }\n\n var A = modP(X1 * X2); // A = X1*X2\n\n var B = modP(Y1 * Y2); // B = Y1*Y2\n\n var C = modP(T1 * d * T2); // C = T1*d*T2\n\n var D = modP(Z1 * Z2); // D = Z1*Z2\n\n var E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B\n\n var F = D - C; // F = D-C\n\n var G = D + C; // G = D+C\n\n var H = modP(B - a * A); // H = B-a*A\n\n var X3 = modP(E * F); // X3 = E*F\n\n var Y3 = modP(G * H); // Y3 = G*H\n\n var T3 = modP(E * H); // T3 = E*H\n\n var Z3 = modP(F * G); // Z3 = F*G\n\n return new Point(X3, Y3, Z3, T3);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n return this.add(other.negate());\n }\n }, {\n key: \"wNAF\",\n value: function wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, Point.normalizeZ);\n } // Constant-time multiplication.\n\n }, {\n key: \"multiply\",\n value: function multiply(scalar) {\n var _this$wNAF = this.wNAF(assertInRange(scalar, CURVE_ORDER)),\n p = _this$wNAF.p,\n f = _this$wNAF.f;\n\n return Point.normalizeZ([p, f])[0];\n } // Non-constant-time multiplication. Uses double-and-add algorithm.\n // It's faster, but should only be used when you don't care about\n // an exposed private key e.g. sig verification.\n // Does NOT allow scalars higher than CURVE.n.\n\n }, {\n key: \"multiplyUnsafe\",\n value: function multiplyUnsafe(scalar) {\n var n = assertGE0(scalar); // 0 <= scalar < CURVE.n\n\n if (n === _0n$2) return I;\n if (this.equals(I) || n === _1n$4) return this;\n if (this.equals(G)) return this.wNAF(n).p;\n return wnaf.unsafeLadder(this, n);\n } // Checks if point is of small order.\n // If you add something to small order point, you will have \"dirty\"\n // point with torsion component.\n // Multiplies point by cofactor and checks if the result is 0.\n\n }, {\n key: \"isSmallOrder\",\n value: function isSmallOrder() {\n return this.multiplyUnsafe(cofactor).is0();\n } // Multiplies point by curve order and checks if the result is 0.\n // Returns `false` is the point is dirty.\n\n }, {\n key: \"isTorsionFree\",\n value: function isTorsionFree() {\n return wnaf.unsafeLadder(this, CURVE_ORDER).is0();\n } // Converts Extended point to default (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n\n }, {\n key: \"toAffine\",\n value: function toAffine(iz) {\n var x = this.ex,\n y = this.ey,\n z = this.ez;\n var is0 = this.is0();\n if (iz == null) iz = is0 ? _8n : Fp.inv(z); // 8 was chosen arbitrarily\n\n var ax = modP(x * iz);\n var ay = modP(y * iz);\n var zz = modP(z * iz);\n if (is0) return {\n x: _0n$2,\n y: _1n$4\n };\n if (zz !== _1n$4) throw new Error('invZ was invalid');\n return {\n x: ax,\n y: ay\n };\n }\n }, {\n key: \"clearCofactor\",\n value: function clearCofactor() {\n var cofactor = CURVE.h;\n if (cofactor === _1n$4) return this;\n return this.multiplyUnsafe(cofactor);\n } // Converts hash string or Uint8Array to Point.\n // Uses algo from RFC8032 5.1.3.\n\n }, {\n key: \"toRawBytes\",\n value: function toRawBytes() {\n var _this$toAffine = this.toAffine(),\n x = _this$toAffine.x,\n y = _this$toAffine.y;\n\n var bytes = numberToBytesLE(y, Fp.BYTES); // each y has 2 x values (x, -y)\n\n bytes[bytes.length - 1] |= x & _1n$4 ? 0x80 : 0; // when compressing, it's enough to store y\n\n return bytes; // and use the last byte to encode sign of x\n }\n }, {\n key: \"toHex\",\n value: function toHex() {\n return bytesToHex(this.toRawBytes()); // Same as toRawBytes, but returns string.\n }\n }], [{\n key: \"fromAffine\",\n value: function fromAffine(p) {\n if (p instanceof Point) throw new Error('extended point not allowed');\n\n var _ref = p || {},\n x = _ref.x,\n y = _ref.y;\n\n if (!in0MaskRange(x) || !in0MaskRange(y)) throw new Error('invalid affine point');\n return new Point(x, y, _1n$4, modP(x * y));\n }\n }, {\n key: \"normalizeZ\",\n value: function normalizeZ(points) {\n var toInv = Fp.invertBatch(points.map(function (p) {\n return p.ez;\n }));\n return points.map(function (p, i) {\n return p.toAffine(toInv[i]);\n }).map(Point.fromAffine);\n }\n }, {\n key: \"fromHex\",\n value: function fromHex(hex) {\n var zip215 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var d = CURVE.d,\n a = CURVE.a;\n var len = Fp.BYTES;\n hex = ensureBytes('pointHex', hex, len); // copy hex to a new array\n\n var normed = hex.slice(); // copy again, we'll manipulate it\n\n var lastByte = hex[len - 1]; // select last byte\n\n normed[len - 1] = lastByte & ~0x80; // clear last bit\n\n var y = bytesToNumberLE(normed);\n if (y === _0n$2) ;else {\n // RFC8032 prohibits >= p, but ZIP215 doesn't\n if (zip215) assertInRange(y, MASK); // zip215=true [1..P-1] (2^255-19-1 for ed25519)\n else assertInRange(y, Fp.ORDER); // zip215=false [1..MASK-1] (2^256-1 for ed25519)\n } // Ed25519: x² = (y²-1)/(dy²+1) mod p. Ed448: x² = (y²-1)/(dy²-1) mod p. Generic case:\n // ax²+y²=1+dx²y² => y²-1=dx²y²-ax² => y²-1=x²(dy²-a) => x²=(y²-1)/(dy²-a)\n\n var y2 = modP(y * y); // denominator is always non-0 mod p.\n\n var u = modP(y2 - _1n$4); // u = y² - 1\n\n var v = modP(d * y2 - a); // v = d y² + 1.\n\n var _uvRatio = uvRatio(u, v),\n isValid = _uvRatio.isValid,\n x = _uvRatio.value; // √(u/v)\n\n\n if (!isValid) throw new Error('Point.fromHex: invalid y coordinate');\n var isXOdd = (x & _1n$4) === _1n$4; // There are 2 square roots. Use x_0 bit to select proper\n\n var isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n\n if (!zip215 && x === _0n$2 && isLastByteOdd) // if x=0 and x_0 = 1, fail\n throw new Error('Point.fromHex: x=0 and x_0=1');\n if (isLastByteOdd !== isXOdd) x = modP(-x); // if x_0 != x mod 2, set x = p-x\n\n return Point.fromAffine({\n x: x,\n y: y\n });\n }\n }, {\n key: \"fromPrivateKey\",\n value: function fromPrivateKey(privKey) {\n return getExtendedPublicKey(privKey).point;\n }\n }]);\n\n return Point;\n }();\n\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, _1n$4, modP(CURVE.Gx * CURVE.Gy));\n Point.ZERO = new Point(_0n$2, _1n$4, _1n$4, _0n$2); // 0, 1, 1, 0\n\n var G = Point.BASE,\n I = Point.ZERO;\n var wnaf = wNAF(Point, nByteLength * 8);\n\n function modN(a) {\n return mod(a, CURVE_ORDER);\n } // Little-endian SHA512 with modulo n\n\n\n function modN_LE(hash) {\n return modN(bytesToNumberLE(hash));\n }\n /** Convenience method that creates public key and other stuff. RFC8032 5.1.5 */\n\n\n function getExtendedPublicKey(key) {\n var len = nByteLength;\n key = ensureBytes('private key', key, len); // Hash private key with curve's hash function to produce uniformingly random input\n // Check byte lengths: ensure(64, h(ensure(32, key)))\n\n var hashed = ensureBytes('hashed private key', cHash(key), 2 * len);\n var head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE\n\n var prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6)\n\n var scalar = modN_LE(head); // The actual private scalar\n\n var point = G.multiply(scalar); // Point on Edwards curve aka public key\n\n var pointBytes = point.toRawBytes(); // Uint8Array representation\n\n return {\n head: head,\n prefix: prefix,\n scalar: scalar,\n point: point,\n pointBytes: pointBytes\n };\n } // Calculates EdDSA pub key. RFC8032 5.1.5. Privkey is hashed. Use first half with 3 bits cleared\n\n\n function getPublicKey(privKey) {\n return getExtendedPublicKey(privKey).pointBytes;\n } // int('LE', SHA512(dom2(F, C) || msgs)) mod N\n\n\n function hashDomainToScalar() {\n var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Uint8Array();\n\n for (var _len = arguments.length, msgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n msgs[_key - 1] = arguments[_key];\n }\n\n var msg = concatBytes.apply(ut, msgs);\n return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash)));\n }\n /** Signs message with privateKey. RFC8032 5.1.6 */\n\n\n function sign(msg, privKey) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n msg = ensureBytes('message', msg);\n if (prehash) msg = prehash(msg); // for ed25519ph etc.\n\n var _getExtendedPublicKey = getExtendedPublicKey(privKey),\n prefix = _getExtendedPublicKey.prefix,\n scalar = _getExtendedPublicKey.scalar,\n pointBytes = _getExtendedPublicKey.pointBytes;\n\n var r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)\n\n var R = G.multiply(r).toRawBytes(); // R = rG\n\n var k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M)\n\n var s = modN(r + k * scalar); // S = (r + k * s) mod L\n\n assertGE0(s); // 0 <= s < l\n\n var res = concatBytes(R, numberToBytesLE(s, Fp.BYTES));\n return ensureBytes('result', res, nByteLength * 2); // 64-byte signature\n }\n\n var verifyOpts = VERIFY_DEFAULT;\n\n function verify(sig, msg, publicKey) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : verifyOpts;\n var context = options.context,\n zip215 = options.zip215;\n var len = Fp.BYTES; // Verifies EdDSA signature against message and public key. RFC8032 5.1.7.\n\n sig = ensureBytes('signature', sig, 2 * len); // An extended group equation is checked.\n\n msg = ensureBytes('message', msg);\n if (prehash) msg = prehash(msg); // for ed25519ph, etc\n\n var s = bytesToNumberLE(sig.slice(len, 2 * len)); // zip215: true is good for consensus-critical apps and allows points < 2^256\n // zip215: false follows RFC8032 / NIST186-5 and restricts points to CURVE.p\n\n var A, R, SB;\n\n try {\n A = Point.fromHex(publicKey, zip215);\n R = Point.fromHex(sig.slice(0, len), zip215);\n SB = G.multiplyUnsafe(s); // 0 <= s < l is done inside\n } catch (error) {\n return false;\n }\n\n if (!zip215 && A.isSmallOrder()) return false;\n var k = hashDomainToScalar(context, R.toRawBytes(), A.toRawBytes(), msg);\n var RkA = R.add(A.multiplyUnsafe(k)); // [8][S]B = [8]R + [8][k]A'\n\n return RkA.subtract(SB).clearCofactor().equals(Point.ZERO);\n }\n\n G._setWindowSize(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n\n\n var utils = {\n getExtendedPublicKey: getExtendedPublicKey,\n // ed25519 private keys are uniform 32b. No need to check for modulo bias, like in secp256k1.\n randomPrivateKey: function randomPrivateKey() {\n return randomBytes(Fp.BYTES);\n },\n\n /**\n * We're doing scalar multiplication (used in getPublicKey etc) with precomputed BASE_POINT\n * values. This slows down first getPublicKey() by milliseconds (see Speed section),\n * but allows to speed-up subsequent getPublicKey() calls up to 20x.\n * @param windowSize 2, 4, 8, 16\n */\n precompute: function precompute() {\n var windowSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n var point = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Point.BASE;\n\n point._setWindowSize(windowSize);\n\n point.multiply(BigInt(3));\n return point;\n }\n };\n return {\n CURVE: CURVE,\n getPublicKey: getPublicKey,\n sign: sign,\n verify: verify,\n ExtendedPoint: Point,\n utils: utils\n };\n}\n/**\n * ed25519 Twisted Edwards curve with following addons:\n * - X25519 ECDH\n * - Ristretto cofactor elimination\n * - Elligator hash-to-group / point indistinguishability\n */\n\n\nvar ED25519_P = BigInt('57896044618658097711785492504343953926634992332820282019728792003956564819949'); // √(-1) aka √(a) aka 2^((p-1)/4)\n\nvar ED25519_SQRT_M1 = BigInt('19681161376707505956807079304988542015446066515923890162744021073123829784752'); // prettier-ignore\n\nBigInt(0);\n\nvar _1n$3 = BigInt(1),\n _2n$2 = BigInt(2),\n _5n = BigInt(5); // prettier-ignore\n\n\nvar _10n = BigInt(10),\n _20n = BigInt(20),\n _40n = BigInt(40),\n _80n = BigInt(80);\n\nfunction ed25519_pow_2_252_3(x) {\n var P = ED25519_P;\n var x2 = x * x % P;\n var b2 = x2 * x % P; // x^3, 11\n\n var b4 = pow2(b2, _2n$2, P) * b2 % P; // x^15, 1111\n\n var b5 = pow2(b4, _1n$3, P) * x % P; // x^31\n\n var b10 = pow2(b5, _5n, P) * b5 % P;\n var b20 = pow2(b10, _10n, P) * b10 % P;\n var b40 = pow2(b20, _20n, P) * b20 % P;\n var b80 = pow2(b40, _40n, P) * b40 % P;\n var b160 = pow2(b80, _80n, P) * b80 % P;\n var b240 = pow2(b160, _80n, P) * b80 % P;\n var b250 = pow2(b240, _10n, P) * b10 % P;\n var pow_p_5_8 = pow2(b250, _2n$2, P) * x % P; // ^ To pow to (p+3)/8, multiply it by x.\n\n return {\n pow_p_5_8: pow_p_5_8,\n b2: b2\n };\n}\n\nfunction adjustScalarBytes(bytes) {\n // Section 5: For X25519, in order to decode 32 random bytes as an integer scalar,\n // set the three least significant bits of the first byte\n bytes[0] &= 248; // 0b1111_1000\n // and the most significant bit of the last to zero,\n\n bytes[31] &= 127; // 0b0111_1111\n // set the second most significant bit of the last byte to 1\n\n bytes[31] |= 64; // 0b0100_0000\n\n return bytes;\n} // sqrt(u/v)\n\n\nfunction uvRatio(u, v) {\n var P = ED25519_P;\n var v3 = mod(v * v * v, P); // v³\n\n var v7 = mod(v3 * v3 * v, P); // v⁷\n // (p+3)/8 and (p-5)/8\n\n var pow = ed25519_pow_2_252_3(u * v7).pow_p_5_8;\n var x = mod(u * v3 * pow, P); // (uv³)(uv⁷)^(p-5)/8\n\n var vx2 = mod(v * x * x, P); // vx²\n\n var root1 = x; // First root candidate\n\n var root2 = mod(x * ED25519_SQRT_M1, P); // Second root candidate\n\n var useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root\n\n var useRoot2 = vx2 === mod(-u, P); // If vx² = -u, set x <-- x * 2^((p-1)/4)\n\n var noRoot = vx2 === mod(-u * ED25519_SQRT_M1, P); // There is no valid root, vx² = -u√(-1)\n\n if (useRoot1) x = root1;\n if (useRoot2 || noRoot) x = root2; // We return root2 anyway, for const-time\n\n if (isNegativeLE(x, P)) x = mod(-x, P);\n return {\n isValid: useRoot1 || useRoot2,\n value: x\n };\n} // Just in case\n\n\nvar Fp$1 = Field(ED25519_P, undefined, true);\nvar ed25519Defaults = {\n // Param: a\n a: BigInt(-1),\n // Fp.create(-1) is proper; our way still works and is faster\n // d is equal to -121665/121666 over finite field.\n // Negative number is P - number, and division is invert(number, P)\n d: BigInt('37095705934669439343138083508754565189542113879843219016388785533085940283555'),\n // Finite field 𝔽p over which we'll do calculations; 2n**255n - 19n\n Fp: Fp$1,\n // Subgroup order: how many points curve has\n // 2n**252n + 27742317777372353535851937790883648493n;\n n: BigInt('7237005577332262213973186563042994240857116359379907606001950938285454250989'),\n // Cofactor\n h: BigInt(8),\n // Base point (x, y) aka generator point\n Gx: BigInt('15112221349535400772501151409588531511454012693041857206046113283949847762202'),\n Gy: BigInt('46316835694926478169428394003475163141307993866256225615783033603165251855960'),\n hash: sha512,\n randomBytes: randomBytes,\n adjustScalarBytes: adjustScalarBytes,\n // dom2\n // Ratio of u to v. Allows us to combine inversion and square root. Uses algo from RFC8032 5.1.3.\n // Constant-time, u/√v\n uvRatio: uvRatio\n};\nvar ed25519 = /* @__PURE__ */twistedEdwards(ed25519Defaults);\n\nfunction ed25519_domain(data, ctx, phflag) {\n if (ctx.length > 255) throw new Error('Context is too big');\n return concatBytes$1(utf8ToBytes$1('SigEd25519 no Ed25519 collisions'), new Uint8Array([phflag ? 1 : 0, ctx.length]), ctx, data);\n}\n/* @__PURE__ */\n\n\ntwistedEdwards(_objectSpread2(_objectSpread2({}, ed25519Defaults), {}, {\n domain: ed25519_domain\n}));\n/* @__PURE__ */\n\ntwistedEdwards(_objectSpread2(_objectSpread2({}, ed25519Defaults), {}, {\n domain: ed25519_domain,\n prehash: sha512\n})); // NOTE: very important part is usage of FpSqrtEven for ELL2_C1_EDWARDS, since\n// SageMath returns different root first and everything falls apart\n\nvar ELL2_C1 = (Fp$1.ORDER + BigInt(3)) / BigInt(8); // 1. c1 = (q + 3) / 8 # Integer arithmetic\n\nFp$1.pow(_2n$2, ELL2_C1); // 2. c2 = 2^c1\n\nFp$1.sqrt(Fp$1.neg(Fp$1.ONE)); // 3. c3 = sqrt(-1)\n\n(Fp$1.ORDER - BigInt(5)) / BigInt(8); // 4. c4 = (q - 5) / 8 # Integer arithmetic\n\nBigInt(486662); // prettier-ignore\n\nFpSqrtEven(Fp$1, Fp$1.neg(BigInt(486664))); // sgn0(c1) MUST equal 0\n\nBigInt('25063068953384623474111414158702152701244531502492656460079210482610430750235'); // 1 / √(a-d)\n\nBigInt('54469307008909316920995813868745141605393597292927456921205312896311721017578'); // 1-d²\n\nBigInt('1159843021668779879193775521855586647937357759715417654439879720876111806838'); // (d-1)²\n\nBigInt('40440834346308536858101042469323190826248399146238708352240133220865137265952'); // Calculates 1/√(number)\n\nBigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'); // legacy\n\nvar bn$2 = {\n exports: {}\n};\nvar require$$1$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_buffer);\n\n(function (module) {\n (function (module, exports) {\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\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; // Reduction context\n\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\n if (_typeof$1(module) === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require$$1$1.Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && _typeof$1(num) === 'object' && 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$1(number) === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\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\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\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\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\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\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\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\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\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this._strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // '0' - '9'\n\n if (c >= 48 && c <= 57) {\n return c - 48; // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55; // '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\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\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\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\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\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\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\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\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n b = c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa; // '0' - '9'\n } else {\n b = c;\n }\n\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\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; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\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\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\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\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\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype._strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\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\n return this;\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\n\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 var zeros = [];\n var groupSizes = [];\n var groupBases = [];\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 = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\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\n if (off >= 26) {\n off -= 26;\n i--;\n }\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\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\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\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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\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\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\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 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 res[position++] = word & 0xff;\n\n if (position < res.length) {\n res[position++] = word >> 8 & 0xff;\n }\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\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 res[position--] = word & 0xff;\n\n if (position >= 0) {\n res[position--] = word >> 8 & 0xff;\n }\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\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\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\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 var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\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 w[bit] = num.words[off] >>> wbit & 0x01;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\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\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\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\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 }; // Or `num` with `this` in-place\n\n\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 }; // Or `num` with `this`\n\n\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 }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\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 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 }; // And `num` with `this`\n\n\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 }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\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 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 }; // Xor `num` with `this`\n\n\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 }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this._strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\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 }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\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(); // 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 } // a.length > b.length\n\n\n var a, b;\n\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\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\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\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // 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 }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\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 return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\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(); // -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 } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\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\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\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 } // Copy rest of the words\n\n\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 }; // Subtract `num` from `this`\n\n\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; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\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\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\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\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\n\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 out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\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 var carry = 0;\n var hncarry = 0;\n\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\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 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 hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\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\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 }; // Cooley-Tukey algorithm for FFT\n\n\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 }; // Multiply employing FFT\n\n\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 }; // In-place Multiplication\n\n\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 assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\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; // NOTE: lo is 27bit maximum\n\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 }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\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 res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\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 }; // 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\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\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 h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) ;else if (this.length > s) {\n this.length -= s;\n\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 var carry = 0;\n\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 } // Push carried bits as a mask\n\n\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 }; // Shift-left\n\n\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 }; // Shift-right\n\n\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 }; // Test if n bit is set\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\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 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\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 }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\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 } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\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 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\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\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(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\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\n this.negative = 1;\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\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\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\n if (diff.negative === 0) {\n a = diff;\n\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 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q._strip();\n }\n\n a._strip(); // Denormalize\n\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\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\n\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\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\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\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\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 }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\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 }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\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 assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\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 }; // WARNING: DEPRECATED\n\n\n BN.prototype.modn = function modn(num) {\n return this.modrn(num);\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var carry = 0;\n\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\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 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 } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\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 ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\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 }; // 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\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\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 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 ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\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\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 var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\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\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\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 }; // Invert number in the field F(num)\n\n\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 }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\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\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\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 if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n\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 var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\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 var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\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 var res = 0;\n\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 if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\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 // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\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 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\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(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\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\n prev >>>= 22;\n input.words[i - 10] = prev;\n\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; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\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 } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\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 num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\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\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\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, '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 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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\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 var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\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\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\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\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 var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\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\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\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\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 res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\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 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 // Montgomery method engine\n //\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 this.shift = this.m.bitLength();\n\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 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\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 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\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 })(module, commonjsGlobal);\n})(bn$2);\n\nvar BN$1 = bn$2.exports;\nvar safeBuffer$1 = {\n exports: {}\n};\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n\n(function (module, exports) {\n /* eslint-disable node/no-deprecated-api */\n var buffer = require$$1$1;\n var Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\n function copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n }\n\n if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n }\n\n SafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer\n\n copyProps(Buffer, SafeBuffer);\n\n SafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n };\n\n SafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n };\n\n SafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n };\n\n SafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n };\n})(safeBuffer$1, safeBuffer$1.exports); // Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\n\n\nvar _Buffer$1 = safeBuffer$1.exports.Buffer;\n\nfunction base$2(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n\n var BASE_MAP = new Uint8Array(256);\n\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n\n BASE_MAP[xc] = i;\n }\n\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n\n function encode(source) {\n if (Array.isArray(source) || source instanceof Uint8Array) {\n source = _Buffer$1.from(source);\n }\n\n if (!_Buffer$1.isBuffer(source)) {\n throw new TypeError('Expected Buffer');\n }\n\n if (source.length === 0) {\n return '';\n } // Skip & count leading zeroes.\n\n\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n } // Allocate enough space in big-endian base58 representation.\n\n\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size); // Process the bytes.\n\n while (pbegin !== pend) {\n var carry = source[pbegin]; // Apply \"b58 = b58 * 256 + ch\".\n\n var i = 0;\n\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\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n\n length = i;\n pbegin++;\n } // Skip leading zeroes in base58 result.\n\n\n var it2 = size - length;\n\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n } // Translate the result into a string.\n\n\n var str = LEADER.repeat(zeroes);\n\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n\n return str;\n }\n\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n\n if (source.length === 0) {\n return _Buffer$1.alloc(0);\n }\n\n var psz = 0; // Skip and count leading '1's.\n\n var zeroes = 0;\n var length = 0;\n\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n } // Allocate enough space in big-endian base256 representation.\n\n\n var size = (source.length - psz) * FACTOR + 1 >>> 0; // log(58) / log(256), rounded up.\n\n var b256 = new Uint8Array(size); // Process the characters.\n\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]; // Invalid character\n\n if (carry === 255) {\n return;\n }\n\n var i = 0;\n\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\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n\n length = i;\n psz++;\n } // Skip leading zeroes in b256.\n\n\n var it4 = size - length;\n\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n\n var vch = _Buffer$1.allocUnsafe(zeroes + (size - it4));\n\n vch.fill(0x00, 0, zeroes);\n var j = zeroes;\n\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n\n return vch;\n }\n\n function decode(string) {\n var buffer = decodeUnsafe(string);\n\n if (buffer) {\n return buffer;\n }\n\n throw new Error('Non-base' + BASE + ' character');\n }\n\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\n\nvar src$2 = base$2;\nvar basex$2 = src$2;\nvar ALPHABET$2 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nvar bs58$4 = basex$2(ALPHABET$2);\nvar bs58$5 = bs58$4; // BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\n\nvar Chi = function Chi(a, b, c) {\n return a & b ^ ~a & c;\n}; // Majority function, true if any two inpust is true\n\n\nvar Maj = function Maj(a, b, c) {\n return a & b ^ a & c ^ b & c;\n}; // Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\n\n\nvar SHA256_K = /* @__PURE__ */new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]); // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\n\nvar IV = /* @__PURE__ */new Uint32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]); // Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\n\nvar SHA256_W = /* @__PURE__ */new Uint32Array(64);\n\nvar SHA256 = /*#__PURE__*/function (_SHA) {\n _inherits(SHA256, _SHA);\n\n var _super = _createSuper(SHA256);\n\n function SHA256() {\n var _this;\n\n _classCallCheck(this, SHA256);\n\n _this = _super.call(this, 64, 32, 8, false); // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n\n _this.A = IV[0] | 0;\n _this.B = IV[1] | 0;\n _this.C = IV[2] | 0;\n _this.D = IV[3] | 0;\n _this.E = IV[4] | 0;\n _this.F = IV[5] | 0;\n _this.G = IV[6] | 0;\n _this.H = IV[7] | 0;\n return _this;\n }\n\n _createClass(SHA256, [{\n key: \"get\",\n value: function get() {\n var A = this.A,\n B = this.B,\n C = this.C,\n D = this.D,\n E = this.E,\n F = this.F,\n G = this.G,\n H = this.H;\n return [A, B, C, D, E, F, G, H];\n } // prettier-ignore\n\n }, {\n key: \"set\",\n value: function set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n }, {\n key: \"process\",\n value: function process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (var i = 0; i < 16; i++, offset += 4) {\n SHA256_W[i] = view.getUint32(offset, false);\n }\n\n for (var _i2 = 16; _i2 < 64; _i2++) {\n var W15 = SHA256_W[_i2 - 15];\n var W2 = SHA256_W[_i2 - 2];\n var s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ W15 >>> 3;\n var s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ W2 >>> 10;\n SHA256_W[_i2] = s1 + SHA256_W[_i2 - 7] + s0 + SHA256_W[_i2 - 16] | 0;\n } // Compression function main loop, 64 rounds\n\n\n var A = this.A,\n B = this.B,\n C = this.C,\n D = this.D,\n E = this.E,\n F = this.F,\n G = this.G,\n H = this.H;\n\n for (var _i4 = 0; _i4 < 64; _i4++) {\n var sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n var T1 = H + sigma1 + Chi(E, F, G) + SHA256_K[_i4] + SHA256_W[_i4] | 0;\n var sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n var T2 = sigma0 + Maj(A, 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 } // Add the compressed chunk to the current hash value\n\n\n A = A + this.A | 0;\n B = B + this.B | 0;\n C = C + this.C | 0;\n D = D + this.D | 0;\n E = E + this.E | 0;\n F = F + this.F | 0;\n G = G + this.G | 0;\n H = H + this.H | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n }, {\n key: \"roundClean\",\n value: function roundClean() {\n SHA256_W.fill(0);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n }]);\n\n return SHA256;\n}(SHA2); // Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\n\n\nvar sha256 = /* @__PURE__ */wrapConstructor(function () {\n return new SHA256();\n});\nvar lib$1 = {};\nvar bn$1 = {\n exports: {}\n};\n\n(function (module) {\n (function (module, exports) {\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\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; // Reduction context\n\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\n if (_typeof$1(module) === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require$$1$1.Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && _typeof$1(num) === 'object' && 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$1(number) === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\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\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\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\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\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\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\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\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\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this._strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // '0' - '9'\n\n if (c >= 48 && c <= 57) {\n return c - 48; // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55; // '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\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\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\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\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\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\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\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\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n b = c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa; // '0' - '9'\n } else {\n b = c;\n }\n\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\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; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\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\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\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\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\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype._strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\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\n return this;\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\n\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 var zeros = [];\n var groupSizes = [];\n var groupBases = [];\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 = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\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\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 off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\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\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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\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\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\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 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 res[position++] = word & 0xff;\n\n if (position < res.length) {\n res[position++] = word >> 8 & 0xff;\n }\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\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 res[position--] = word & 0xff;\n\n if (position >= 0) {\n res[position--] = word >> 8 & 0xff;\n }\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\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\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\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 var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\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 w[bit] = num.words[off] >>> wbit & 0x01;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\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\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\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\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 }; // Or `num` with `this` in-place\n\n\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 }; // Or `num` with `this`\n\n\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 }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\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 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 }; // And `num` with `this`\n\n\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 }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\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 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 }; // Xor `num` with `this`\n\n\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 }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this._strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\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 }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\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(); // 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 } // a.length > b.length\n\n\n var a, b;\n\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\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\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\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // 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 }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\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 return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\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(); // -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 } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\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\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\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 } // Copy rest of the words\n\n\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 }; // Subtract `num` from `this`\n\n\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; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\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\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\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\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\n\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 out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\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 var carry = 0;\n var hncarry = 0;\n\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\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 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 hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\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\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 }; // Cooley-Tukey algorithm for FFT\n\n\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 }; // Multiply employing FFT\n\n\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 }; // In-place Multiplication\n\n\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 assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\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; // NOTE: lo is 27bit maximum\n\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 }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\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 res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\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 }; // 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\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\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 h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) ;else if (this.length > s) {\n this.length -= s;\n\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 var carry = 0;\n\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 } // Push carried bits as a mask\n\n\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 }; // Shift-left\n\n\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 }; // Shift-right\n\n\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 }; // Test if n bit is set\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\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 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\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 }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\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 } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\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 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\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\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(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\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\n this.negative = 1;\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\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\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\n if (diff.negative === 0) {\n a = diff;\n\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 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q._strip();\n }\n\n a._strip(); // Denormalize\n\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\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\n\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\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\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\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\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 }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\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 }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\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 assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\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 }; // WARNING: DEPRECATED\n\n\n BN.prototype.modn = function modn(num) {\n return this.modrn(num);\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var carry = 0;\n\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\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 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 } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\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 ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\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 }; // 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\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\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 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 ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\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\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 var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\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\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\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 }; // Invert number in the field F(num)\n\n\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 }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\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\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\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 if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n\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 var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\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 var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\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 var res = 0;\n\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 if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\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 // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\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 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\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(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\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\n prev >>>= 22;\n input.words[i - 10] = prev;\n\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; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\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 } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\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 num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\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\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\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, '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 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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\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 var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\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\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\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\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 var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\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\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\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\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 res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\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 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 // Montgomery method engine\n //\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 this.shift = this.m.bitLength();\n\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 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\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 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\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 })(module, commonjsGlobal);\n})(bn$1);\n\nvar safeBuffer = {\n exports: {}\n};\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n\n(function (module, exports) {\n /* eslint-disable node/no-deprecated-api */\n var buffer = require$$1$1;\n var Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\n function copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n }\n\n if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n }\n\n SafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer\n\n copyProps(Buffer, SafeBuffer);\n\n SafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n };\n\n SafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n };\n\n SafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n };\n\n SafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n };\n})(safeBuffer, safeBuffer.exports); // Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\n\n\nvar _Buffer = safeBuffer.exports.Buffer;\n\nfunction base$1(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n\n var BASE_MAP = new Uint8Array(256);\n\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n\n BASE_MAP[xc] = i;\n }\n\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n\n function encode(source) {\n if (Array.isArray(source) || source instanceof Uint8Array) {\n source = _Buffer.from(source);\n }\n\n if (!_Buffer.isBuffer(source)) {\n throw new TypeError('Expected Buffer');\n }\n\n if (source.length === 0) {\n return '';\n } // Skip & count leading zeroes.\n\n\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n } // Allocate enough space in big-endian base58 representation.\n\n\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size); // Process the bytes.\n\n while (pbegin !== pend) {\n var carry = source[pbegin]; // Apply \"b58 = b58 * 256 + ch\".\n\n var i = 0;\n\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\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n\n length = i;\n pbegin++;\n } // Skip leading zeroes in base58 result.\n\n\n var it2 = size - length;\n\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n } // Translate the result into a string.\n\n\n var str = LEADER.repeat(zeroes);\n\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n\n return str;\n }\n\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n\n if (source.length === 0) {\n return _Buffer.alloc(0);\n }\n\n var psz = 0; // Skip and count leading '1's.\n\n var zeroes = 0;\n var length = 0;\n\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n } // Allocate enough space in big-endian base256 representation.\n\n\n var size = (source.length - psz) * FACTOR + 1 >>> 0; // log(58) / log(256), rounded up.\n\n var b256 = new Uint8Array(size); // Process the characters.\n\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]; // Invalid character\n\n if (carry === 255) {\n return;\n }\n\n var i = 0;\n\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\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n\n length = i;\n psz++;\n } // Skip leading zeroes in b256.\n\n\n var it4 = size - length;\n\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4));\n\n vch.fill(0x00, 0, zeroes);\n var j = zeroes;\n\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n\n return vch;\n }\n\n function decode(string) {\n var buffer = decodeUnsafe(string);\n\n if (buffer) {\n return buffer;\n }\n\n throw new Error('Non-base' + BASE + ' character');\n }\n\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\n\nvar src$1 = base$1;\nvar basex$1 = src$1;\nvar ALPHABET$1 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nvar bs58$3 = basex$1(ALPHABET$1);\n\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n/**\n * @param {*} o\n * @return {Object}\n */\n\n\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\n\n\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n // 1. Let S be the DOMString value.\n var s = String(string); // 2. Let n be the length of S.\n\n var n = s.length; // 3. Initialize i to 0.\n\n var i = 0; // 4. Initialize U to be an empty sequence of Unicode characters.\n\n var u = []; // 5. While i < n:\n\n while (i < n) {\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i); // 2. Depending on the value of c:\n // c < 0xD800 or c > 0xDFFF\n\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n } // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n } // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n } // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1); // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF; // 2. Let b be d & 0x3FF.\n\n var b = d & 0x3FF; // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n\n u.push(0x10000 + (a << 10) + b); // 4. Set i to i+1.\n\n i += 1;\n } // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n } // 3. Set i to i+1.\n\n\n i += 1;\n } // 6. Return U.\n\n\n return u;\n}\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\n\n\nfunction codePointsToString(code_points) {\n var s = '';\n\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800, (cp & 0x3FF) + 0xDC00);\n }\n }\n\n return s;\n} //\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */\n\n\nvar end_of_stream = -1;\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\n\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function endOfStream() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function read() {\n if (!this.tokens.length) return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function prepend(token) {\n if (Array.isArray(token)) {\n var tokens =\n /**@type {!Array.}*/\n token;\n\n while (tokens.length) {\n this.tokens.unshift(tokens.pop());\n }\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function push(token) {\n if (Array.isArray(token)) {\n var tokens =\n /**@type {!Array.}*/\n token;\n\n while (tokens.length) {\n this.tokens.push(tokens.shift());\n }\n } else {\n this.tokens.push(token);\n }\n }\n}; //\n// 4. Encodings\n//\n// 4.1 Encoders and decoders\n\n/** @const */\n\nvar finished = -1;\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\n\nfunction decoderError(fatal, opt_code_point) {\n if (fatal) throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n} // 7. API\n//\n\n/** @const */\n\n\nvar DEFAULT_ENCODING = 'utf-8'; // 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\n\nfunction TextDecoder$1(encoding, options) {\n if (!(this instanceof TextDecoder$1)) {\n return new TextDecoder$1(encoding, options);\n }\n\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n\n options = ToDictionary(options);\n /** @private @type {boolean} */\n\n this._streaming = false;\n /** @private @type {boolean} */\n\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n\n this._decoder = null;\n /** @private @type {boolean} */\n\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n Object.defineProperty(this, 'encoding', {\n value: 'utf-8'\n });\n Object.defineProperty(this, 'fatal', {\n value: this._fatal\n });\n Object.defineProperty(this, 'ignoreBOM', {\n value: this._ignoreBOM\n });\n}\n\nTextDecoder$1.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n\n if (_typeof$1(input) === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (_typeof$1(input) === 'object' && 'buffer' in input && input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({\n fatal: this._fatal\n });\n this._BOMseen = false;\n }\n\n this._streaming = Boolean(options['stream']);\n var input_stream = new Stream(bytes);\n var code_points = [];\n /** @type {?(number|!Array.)} */\n\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished) break;\n if (result === null) continue;\n if (Array.isArray(result)) code_points.push.apply(code_points,\n /**@type {!Array.}*/\n result);else code_points.push(result);\n }\n\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished) break;\n if (result === null) continue;\n if (Array.isArray(result)) code_points.push.apply(code_points,\n /**@type {!Array.}*/\n result);else code_points.push(result);\n } while (!input_stream.endOfStream());\n\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 && !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n}; // 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\n\nfunction TextEncoder$1(encoding, options) {\n if (!(this instanceof TextEncoder$1)) return new TextEncoder$1(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n\n options = ToDictionary(options);\n /** @private @type {boolean} */\n\n this._streaming = false;\n /** @private @type {?Encoder} */\n\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n\n this._options = {\n fatal: Boolean(options['fatal'])\n };\n Object.defineProperty(this, 'encoding', {\n value: 'utf-8'\n });\n}\n\nTextEncoder$1.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options); // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n\n if (!this._streaming) this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished) break;\n if (Array.isArray(result)) bytes.push.apply(bytes,\n /**@type {!Array.}*/\n result);else bytes.push(result);\n }\n\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished) break;\n if (Array.isArray(result)) bytes.push.apply(bytes,\n /**@type {!Array.}*/\n result);else bytes.push(result);\n }\n\n this._encoder = null;\n }\n\n return new Uint8Array(bytes);\n }\n}; //\n// 8. The encoding\n//\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\n\nfunction UTF8Decoder(options) {\n var fatal = options.fatal; // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n\n var\n /** @type {number} */\n utf8_code_point = 0,\n\n /** @type {number} */\n utf8_bytes_seen = 0,\n\n /** @type {number} */\n utf8_bytes_needed = 0,\n\n /** @type {number} */\n utf8_lower_boundary = 0x80,\n\n /** @type {number} */\n utf8_upper_boundary = 0xBF;\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n\n this.handler = function (stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n } // 2. If byte is end-of-stream, return finished.\n\n\n if (bite === end_of_stream) return finished; // 3. If utf-8 bytes needed is 0, based on byte:\n\n if (utf8_bytes_needed === 0) {\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n } // 0xC2 to 0xDF\n\n\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n } // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0) utf8_lower_boundary = 0xA0; // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n\n if (bite === 0xED) utf8_upper_boundary = 0x9F; // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n } // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0) utf8_lower_boundary = 0x90; // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n\n if (bite === 0xF4) utf8_upper_boundary = 0x8F; // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n } // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n } // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n\n\n utf8_code_point = utf8_code_point << 6 * utf8_bytes_needed;\n return null;\n } // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n\n\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF; // 2. Prepend byte to stream.\n\n stream.prepend(bite); // 3. Return error.\n\n return decoderError(fatal);\n } // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n\n\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF; // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n\n utf8_bytes_seen += 1;\n utf8_code_point += bite - 0x80 << 6 * (utf8_bytes_needed - utf8_bytes_seen); // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n\n if (utf8_bytes_seen !== utf8_bytes_needed) return null; // 8. Let code point be utf-8 code point.\n\n var code_point = utf8_code_point; // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0; // 10. Return a code point whose value is code point.\n\n return code_point;\n };\n}\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\n\n\nfunction UTF8Encoder(options) {\n options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n\n this.handler = function (stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream) return finished; // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n\n if (inRange(code_point, 0x0000, 0x007f)) return code_point; // 3. Set count and offset based on the range code point is in:\n\n var count, offset; // U+0080 to U+07FF: 1 and 0xC0\n\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n } // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n } // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n } // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n\n\n var bytes = [(code_point >> 6 * count) + offset]; // 5. Run these substeps while count is greater than 0:\n\n while (count > 0) {\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> 6 * (count - 1); // 2. Append to bytes 0x80 | (temp & 0x3F).\n\n bytes.push(0x80 | temp & 0x3F); // 3. Decrease count by one.\n\n count -= 1;\n } // 6. Return bytes bytes, in order.\n\n\n return bytes;\n };\n}\n\nvar encoding_lib = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TextEncoder: TextEncoder$1,\n TextDecoder: TextDecoder$1\n});\nvar require$$2 = /*@__PURE__*/getAugmentedNamespace(encoding_lib);\n\nvar __createBinding = commonjsGlobal && commonjsGlobal.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = commonjsGlobal && commonjsGlobal.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __decorate = commonjsGlobal && commonjsGlobal.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof$1(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\nvar __importStar = commonjsGlobal && commonjsGlobal.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(lib$1, \"__esModule\", {\n value: true\n});\nvar deserializeUnchecked_1 = lib$1.deserializeUnchecked = deserialize_1 = lib$1.deserialize = serialize_1 = lib$1.serialize = lib$1.BinaryReader = lib$1.BinaryWriter = lib$1.BorshError = lib$1.baseDecode = lib$1.baseEncode = void 0;\n\nvar bn_js_1 = __importDefault(bn$1.exports);\n\nvar bs58_1 = __importDefault(bs58$3); // TODO: Make sure this polyfill not included when not required\n\n\nvar encoding = __importStar(require$$2);\n\nvar ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nvar textDecoder = new ResolvedTextDecoder(\"utf-8\", {\n fatal: true\n});\n\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n value = Buffer$1.from(value, \"utf8\");\n }\n\n return bs58_1[\"default\"].encode(Buffer$1.from(value));\n}\n\nlib$1.baseEncode = baseEncode;\n\nfunction baseDecode(value) {\n return Buffer$1.from(bs58_1[\"default\"].decode(value));\n}\n\nlib$1.baseDecode = baseDecode;\nvar INITIAL_LENGTH = 1024;\n\nvar BorshError = /*#__PURE__*/function (_Error) {\n _inherits(BorshError, _Error);\n\n var _super = _createSuper(BorshError);\n\n function BorshError(message) {\n var _this;\n\n _classCallCheck(this, BorshError);\n\n _this = _super.call(this, message);\n _this.fieldPath = [];\n _this.originalMessage = message;\n return _this;\n }\n\n _createClass(BorshError, [{\n key: \"addToFieldPath\",\n value: function addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName); // NOTE: Modifying message directly as jest doesn't use .toString()\n\n this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n }\n }]);\n\n return BorshError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nlib$1.BorshError = BorshError; /// Binary encoder.\n\nvar BinaryWriter = /*#__PURE__*/function () {\n function BinaryWriter() {\n _classCallCheck(this, BinaryWriter);\n\n this.buf = Buffer$1.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n\n _createClass(BinaryWriter, [{\n key: \"maybeResize\",\n value: function maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer$1.concat([this.buf, Buffer$1.alloc(INITIAL_LENGTH)]);\n }\n }\n }, {\n key: \"writeU8\",\n value: function writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n }, {\n key: \"writeU16\",\n value: function writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n }, {\n key: \"writeU32\",\n value: function writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n }, {\n key: \"writeU64\",\n value: function writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer$1.from(new bn_js_1[\"default\"](value).toArray(\"le\", 8)));\n }\n }, {\n key: \"writeU128\",\n value: function writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer$1.from(new bn_js_1[\"default\"](value).toArray(\"le\", 16)));\n }\n }, {\n key: \"writeU256\",\n value: function writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer$1.from(new bn_js_1[\"default\"](value).toArray(\"le\", 32)));\n }\n }, {\n key: \"writeU512\",\n value: function writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer$1.from(new bn_js_1[\"default\"](value).toArray(\"le\", 64)));\n }\n }, {\n key: \"writeBuffer\",\n value: function writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer$1.concat([Buffer$1.from(this.buf.subarray(0, this.length)), buffer, Buffer$1.alloc(INITIAL_LENGTH)]);\n this.length += buffer.length;\n }\n }, {\n key: \"writeString\",\n value: function writeString(str) {\n this.maybeResize();\n var b = Buffer$1.from(str, \"utf8\");\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n }, {\n key: \"writeFixedArray\",\n value: function writeFixedArray(array) {\n this.writeBuffer(Buffer$1.from(array));\n }\n }, {\n key: \"writeArray\",\n value: function writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n\n var _iterator = _createForOfIteratorHelper(array),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var elem = _step.value;\n this.maybeResize();\n fn(elem);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n return this.buf.subarray(0, this.length);\n }\n }]);\n\n return BinaryWriter;\n}();\n\nlib$1.BinaryWriter = BinaryWriter;\n\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n var originalMethod = propertyDescriptor.value;\n\n propertyDescriptor.value = function () {\n try {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return originalMethod.apply(this, args);\n } catch (e) {\n if (e instanceof RangeError) {\n var code = e.code;\n\n if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n throw new BorshError(\"Reached the end of buffer when deserializing\");\n }\n }\n\n throw e;\n }\n };\n}\n\nvar BinaryReader = /*#__PURE__*/function () {\n function BinaryReader(buf) {\n _classCallCheck(this, BinaryReader);\n\n this.buf = buf;\n this.offset = 0;\n }\n\n _createClass(BinaryReader, [{\n key: \"readU8\",\n value: function readU8() {\n var value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n }, {\n key: \"readU16\",\n value: function readU16() {\n var value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n }, {\n key: \"readU32\",\n value: function readU32() {\n var value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n }, {\n key: \"readU64\",\n value: function readU64() {\n var buf = this.readBuffer(8);\n return new bn_js_1[\"default\"](buf, \"le\");\n }\n }, {\n key: \"readU128\",\n value: function readU128() {\n var buf = this.readBuffer(16);\n return new bn_js_1[\"default\"](buf, \"le\");\n }\n }, {\n key: \"readU256\",\n value: function readU256() {\n var buf = this.readBuffer(32);\n return new bn_js_1[\"default\"](buf, \"le\");\n }\n }, {\n key: \"readU512\",\n value: function readU512() {\n var buf = this.readBuffer(64);\n return new bn_js_1[\"default\"](buf, \"le\");\n }\n }, {\n key: \"readBuffer\",\n value: function readBuffer(len) {\n if (this.offset + len > this.buf.length) {\n throw new BorshError(\"Expected buffer length \".concat(len, \" isn't within bounds\"));\n }\n\n var result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n }, {\n key: \"readString\",\n value: function readString() {\n var len = this.readU32();\n var buf = this.readBuffer(len);\n\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n } catch (e) {\n throw new BorshError(\"Error decoding UTF-8 string: \".concat(e));\n }\n }\n }, {\n key: \"readFixedArray\",\n value: function readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n }, {\n key: \"readArray\",\n value: function readArray(fn) {\n var len = this.readU32();\n var result = Array();\n\n for (var i = 0; i < len; ++i) {\n result.push(fn());\n }\n\n return result;\n }\n }]);\n\n return BinaryReader;\n}();\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU8\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU16\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU32\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU64\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU128\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU256\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readU512\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readString\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readFixedArray\", null);\n\n__decorate([handlingRangeError], BinaryReader.prototype, \"readArray\", null);\n\nlib$1.BinaryReader = BinaryReader;\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === \"string\") {\n writer[\"write\".concat(capitalizeFirstLetter(fieldType))](value);\n } else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n if (value.length !== fieldType[0]) {\n throw new BorshError(\"Expecting byte array of length \".concat(fieldType[0], \", but got \").concat(value.length, \" bytes\"));\n }\n\n writer.writeFixedArray(value);\n } else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n if (value.length !== fieldType[1]) {\n throw new BorshError(\"Expecting byte array of length \".concat(fieldType[1], \", but got \").concat(value.length, \" bytes\"));\n }\n\n for (var i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n } else {\n writer.writeArray(value, function (item) {\n serializeField(schema, fieldName, item, fieldType[0], writer);\n });\n }\n } else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case \"option\":\n {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n } else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n\n break;\n }\n\n case \"map\":\n {\n writer.writeU32(value.size);\n value.forEach(function (val, key) {\n serializeField(schema, fieldName, key, fieldType.key, writer);\n serializeField(schema, fieldName, val, fieldType.value, writer);\n });\n break;\n }\n\n default:\n throw new BorshError(\"FieldType \".concat(fieldType, \" unrecognized\"));\n }\n } else {\n serializeStruct(schema, value, writer);\n }\n } catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n\n throw error;\n }\n}\n\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === \"function\") {\n obj.borshSerialize(writer);\n return;\n }\n\n var structSchema = schema.get(obj.constructor);\n\n if (!structSchema) {\n throw new BorshError(\"Class \".concat(obj.constructor.name, \" is missing in schema\"));\n }\n\n if (structSchema.kind === \"struct\") {\n structSchema.fields.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n fieldName = _ref2[0],\n fieldType = _ref2[1];\n\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n } else if (structSchema.kind === \"enum\") {\n var name = obj[structSchema.field];\n\n for (var idx = 0; idx < structSchema.values.length; ++idx) {\n var _structSchema$values$2 = _slicedToArray(structSchema.values[idx], 2),\n fieldName = _structSchema$values$2[0],\n fieldType = _structSchema$values$2[1];\n\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n } else {\n throw new BorshError(\"Unexpected schema kind: \".concat(structSchema.kind, \" for \").concat(obj.constructor.name));\n }\n} /// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\n\n\nfunction serialize(schema, obj) {\n var Writer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : BinaryWriter;\n var writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\n\nvar serialize_1 = lib$1.serialize = serialize;\n\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === \"string\") {\n return reader[\"read\".concat(capitalizeFirstLetter(fieldType))]();\n }\n\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n return reader.readFixedArray(fieldType[0]);\n } else if (typeof fieldType[1] === \"number\") {\n var arr = [];\n\n for (var i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n\n return arr;\n } else {\n return reader.readArray(function () {\n return deserializeField(schema, fieldName, fieldType[0], reader);\n });\n }\n }\n\n if (fieldType.kind === \"option\") {\n var option = reader.readU8();\n\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n\n return undefined;\n }\n\n if (fieldType.kind === \"map\") {\n var map = new Map();\n var length = reader.readU32();\n\n for (var _i2 = 0; _i2 < length; _i2++) {\n var key = deserializeField(schema, fieldName, fieldType.key, reader);\n var val = deserializeField(schema, fieldName, fieldType.value, reader);\n map.set(key, val);\n }\n\n return map;\n }\n\n return deserializeStruct(schema, fieldType, reader);\n } catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n\n throw error;\n }\n}\n\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === \"function\") {\n return classType.borshDeserialize(reader);\n }\n\n var structSchema = schema.get(classType);\n\n if (!structSchema) {\n throw new BorshError(\"Class \".concat(classType.name, \" is missing in schema\"));\n }\n\n if (structSchema.kind === \"struct\") {\n var result = {};\n\n var _iterator2 = _createForOfIteratorHelper(schema.get(classType).fields),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value2 = _slicedToArray(_step2.value, 2),\n fieldName = _step2$value2[0],\n fieldType = _step2$value2[1];\n\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return new classType(result);\n }\n\n if (structSchema.kind === \"enum\") {\n var idx = reader.readU8();\n\n if (idx >= structSchema.values.length) {\n throw new BorshError(\"Enum index: \".concat(idx, \" is out of range\"));\n }\n\n var _structSchema$values$4 = _slicedToArray(structSchema.values[idx], 2),\n _fieldName = _structSchema$values$4[0],\n _fieldType = _structSchema$values$4[1];\n\n var fieldValue = deserializeField(schema, _fieldName, _fieldType, reader);\n return new classType(_defineProperty({}, _fieldName, fieldValue));\n }\n\n throw new BorshError(\"Unexpected schema kind: \".concat(structSchema.kind, \" for \").concat(classType.constructor.name));\n} /// Deserializes object from bytes using schema.\n\n\nfunction deserialize(schema, classType, buffer) {\n var Reader = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : BinaryReader;\n var reader = new Reader(buffer);\n var result = deserializeStruct(schema, classType, reader);\n\n if (reader.offset < buffer.length) {\n throw new BorshError(\"Unexpected \".concat(buffer.length - reader.offset, \" bytes after deserialized data\"));\n }\n\n return result;\n}\n\nvar deserialize_1 = lib$1.deserialize = deserialize; /// Deserializes object from bytes using schema, without checking the length read\n\nfunction deserializeUnchecked(schema, classType, buffer) {\n var Reader = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : BinaryReader;\n var reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\n\ndeserializeUnchecked_1 = lib$1.deserializeUnchecked = deserializeUnchecked;\nvar Layout$3 = {};\nObject.defineProperty(Layout$3, \"__esModule\", {\n value: true\n});\nLayout$3.s16 = Layout$3.s8 = Layout$3.nu64be = Layout$3.u48be = Layout$3.u40be = Layout$3.u32be = Layout$3.u24be = Layout$3.u16be = nu64$1 = Layout$3.nu64 = Layout$3.u48 = Layout$3.u40 = u32 = Layout$3.u32 = Layout$3.u24 = u16 = Layout$3.u16 = u8 = Layout$3.u8 = offset$1 = Layout$3.offset = Layout$3.greedy = Layout$3.Constant = Layout$3.UTF8 = Layout$3.CString = Layout$3.Blob = Layout$3.Boolean = Layout$3.BitField = Layout$3.BitStructure = Layout$3.VariantLayout = Layout$3.Union = Layout$3.UnionLayoutDiscriminator = Layout$3.UnionDiscriminator = Layout$3.Structure = Layout$3.Sequence = Layout$3.DoubleBE = Layout$3.Double = Layout$3.FloatBE = Layout$3.Float = Layout$3.NearInt64BE = Layout$3.NearInt64 = Layout$3.NearUInt64BE = Layout$3.NearUInt64 = Layout$3.IntBE = Layout$3.Int = Layout$3.UIntBE = Layout$3.UInt = Layout$3.OffsetLayout = Layout$3.GreedyCount = Layout$3.ExternalLayout = Layout$3.bindConstructorLayout = Layout$3.nameWithProperty = Layout$3.Layout = Layout$3.uint8ArrayToBuffer = Layout$3.checkUint8Array = void 0;\nLayout$3.constant = Layout$3.utf8 = Layout$3.cstr = blob$1 = Layout$3.blob = Layout$3.unionLayoutDiscriminator = Layout$3.union = seq$1 = Layout$3.seq = Layout$3.bits = struct = Layout$3.struct = Layout$3.f64be = Layout$3.f64 = Layout$3.f32be = Layout$3.f32 = Layout$3.ns64be = Layout$3.s48be = Layout$3.s40be = Layout$3.s32be = Layout$3.s24be = Layout$3.s16be = ns64 = Layout$3.ns64 = Layout$3.s48 = Layout$3.s40 = Layout$3.s32 = Layout$3.s24 = void 0;\nvar buffer_1 = require$$1$1;\n/* Check if a value is a Uint8Array.\n *\n * @ignore */\n\nfunction checkUint8Array(b) {\n if (!(b instanceof Uint8Array)) {\n throw new TypeError('b must be a Uint8Array');\n }\n}\n\nLayout$3.checkUint8Array = checkUint8Array;\n/* Create a Buffer instance from a Uint8Array.\n *\n * @ignore */\n\nfunction uint8ArrayToBuffer(b) {\n checkUint8Array(b);\n return buffer_1.Buffer.from(b.buffer, b.byteOffset, b.length);\n}\n\nLayout$3.uint8ArrayToBuffer = uint8ArrayToBuffer;\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\n\nvar Layout$2 = /*#__PURE__*/function () {\n function Layout(span, property) {\n _classCallCheck(this, Layout);\n\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n\n\n this.span = span;\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n\n this.property = property;\n }\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n\n\n _createClass(Layout, [{\n key: \"makeDestinationObject\",\n value: function makeDestinationObject() {\n return {};\n }\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Uint8Array} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n\n }, {\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n\n return this.span;\n }\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n\n }, {\n key: \"replicate\",\n value: function replicate(property) {\n var rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n\n }, {\n key: \"fromArray\",\n value: function fromArray(values) {\n return undefined;\n }\n }]);\n\n return Layout;\n}();\n\nLayout$3.Layout = Layout$2;\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\n\nfunction nameWithProperty$1(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n\n return name;\n}\n\nLayout$3.nameWithProperty = nameWithProperty$1;\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\n// `Class` must be a constructor Function, but the assignment of a `layout_` property to it makes it difficult to type\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nfunction bindConstructorLayout$1(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n\n if (Object.prototype.hasOwnProperty.call(Class, 'layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n\n if (!(layout && layout instanceof Layout$2)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (Object.prototype.hasOwnProperty.call(layout, 'boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n\n layout.makeDestinationObject = function () {\n return new Class();\n };\n\n Object.defineProperty(Class.prototype, 'encode', {\n value: function value(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true\n });\n Object.defineProperty(Class, 'decode', {\n value: function value(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true\n });\n}\n\nLayout$3.bindConstructorLayout = bindConstructorLayout$1;\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\n\nvar ExternalLayout$1 = /*#__PURE__*/function (_Layout) {\n _inherits(ExternalLayout, _Layout);\n\n var _super = _createSuper(ExternalLayout);\n\n function ExternalLayout() {\n _classCallCheck(this, ExternalLayout);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ExternalLayout, [{\n key: \"isCount\",\n value:\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n function isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n }]);\n\n return ExternalLayout;\n}(Layout$2);\n\nLayout$3.ExternalLayout = ExternalLayout$1;\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\n\nvar GreedyCount$1 = /*#__PURE__*/function (_ExternalLayout) {\n _inherits(GreedyCount, _ExternalLayout);\n\n var _super2 = _createSuper(GreedyCount);\n\n function GreedyCount() {\n var _this;\n\n var elementSpan = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var property = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, GreedyCount);\n\n if (!Number.isInteger(elementSpan) || 0 >= elementSpan) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n\n _this = _super2.call(this, -1, property);\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n\n _this.elementSpan = elementSpan;\n return _this;\n }\n /** @override */\n\n\n _createClass(GreedyCount, [{\n key: \"isCount\",\n value: function isCount() {\n return true;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n checkUint8Array(b);\n var rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n return 0;\n }\n }]);\n\n return GreedyCount;\n}(ExternalLayout$1);\n\nLayout$3.GreedyCount = GreedyCount$1;\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\n\nvar OffsetLayout$1 = /*#__PURE__*/function (_ExternalLayout2) {\n _inherits(OffsetLayout, _ExternalLayout2);\n\n var _super3 = _createSuper(OffsetLayout);\n\n function OffsetLayout(layout) {\n var _this2;\n\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var property = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, OffsetLayout);\n\n if (!(layout instanceof Layout$2)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n\n _this2 = _super3.call(this, layout.span, property || layout.property);\n /** The subordinated layout. */\n\n _this2.layout = layout;\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Uint8Array\n * being accessed. */\n\n _this2.offset = offset;\n return _this2;\n }\n /** @override */\n\n\n _createClass(OffsetLayout, [{\n key: \"isCount\",\n value: function isCount() {\n return this.layout instanceof UInt$1 || this.layout instanceof UIntBE$1;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this.layout.decode(b, offset + this.offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return this.layout.encode(src, b, offset + this.offset);\n }\n }]);\n\n return OffsetLayout;\n}(ExternalLayout$1);\n\nLayout$3.OffsetLayout = OffsetLayout$1;\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar UInt$1 = /*#__PURE__*/function (_Layout2) {\n _inherits(UInt, _Layout2);\n\n var _super4 = _createSuper(UInt);\n\n function UInt(span, property) {\n var _this3;\n\n _classCallCheck(this, UInt);\n\n _this3 = _super4.call(this, span, property);\n\n if (6 < _this3.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this3;\n }\n /** @override */\n\n\n _createClass(UInt, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readUIntLE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeUIntLE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return UInt;\n}(Layout$2);\n\nLayout$3.UInt = UInt$1;\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar UIntBE$1 = /*#__PURE__*/function (_Layout3) {\n _inherits(UIntBE, _Layout3);\n\n var _super5 = _createSuper(UIntBE);\n\n function UIntBE(span, property) {\n var _this4;\n\n _classCallCheck(this, UIntBE);\n\n _this4 = _super5.call(this, span, property);\n\n if (6 < _this4.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this4;\n }\n /** @override */\n\n\n _createClass(UIntBE, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readUIntBE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeUIntBE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return UIntBE;\n}(Layout$2);\n\nLayout$3.UIntBE = UIntBE$1;\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Int$1 = /*#__PURE__*/function (_Layout4) {\n _inherits(Int, _Layout4);\n\n var _super6 = _createSuper(Int);\n\n function Int(span, property) {\n var _this5;\n\n _classCallCheck(this, Int);\n\n _this5 = _super6.call(this, span, property);\n\n if (6 < _this5.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this5;\n }\n /** @override */\n\n\n _createClass(Int, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readIntLE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeIntLE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return Int;\n}(Layout$2);\n\nLayout$3.Int = Int$1;\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar IntBE$1 = /*#__PURE__*/function (_Layout5) {\n _inherits(IntBE, _Layout5);\n\n var _super7 = _createSuper(IntBE);\n\n function IntBE(span, property) {\n var _this6;\n\n _classCallCheck(this, IntBE);\n\n _this6 = _super7.call(this, span, property);\n\n if (6 < _this6.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this6;\n }\n /** @override */\n\n\n _createClass(IntBE, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readIntBE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeIntBE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return IntBE;\n}(Layout$2);\n\nLayout$3.IntBE = IntBE$1;\nvar V2E32$1 = Math.pow(2, 32);\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\n\nfunction divmodInt64$1(src) {\n var hi32 = Math.floor(src / V2E32$1);\n var lo32 = src - hi32 * V2E32$1;\n return {\n hi32: hi32,\n lo32: lo32\n };\n}\n/* Reconstruct Number from quotient and non-negative remainder */\n\n\nfunction roundedInt64$1(hi32, lo32) {\n return hi32 * V2E32$1 + lo32;\n}\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\n\nvar NearUInt64$1 = /*#__PURE__*/function (_Layout6) {\n _inherits(NearUInt64, _Layout6);\n\n var _super8 = _createSuper(NearUInt64);\n\n function NearUInt64(property) {\n _classCallCheck(this, NearUInt64);\n\n return _super8.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearUInt64, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var buffer = uint8ArrayToBuffer(b);\n var lo32 = buffer.readUInt32LE(offset);\n var hi32 = buffer.readUInt32LE(offset + 4);\n return roundedInt64$1(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var split = divmodInt64$1(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n }]);\n\n return NearUInt64;\n}(Layout$2);\n\nLayout$3.NearUInt64 = NearUInt64$1;\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\nvar NearUInt64BE$1 = /*#__PURE__*/function (_Layout7) {\n _inherits(NearUInt64BE, _Layout7);\n\n var _super9 = _createSuper(NearUInt64BE);\n\n function NearUInt64BE(property) {\n _classCallCheck(this, NearUInt64BE);\n\n return _super9.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearUInt64BE, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var buffer = uint8ArrayToBuffer(b);\n var hi32 = buffer.readUInt32BE(offset);\n var lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64$1(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var split = divmodInt64$1(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n }]);\n\n return NearUInt64BE;\n}(Layout$2);\n\nLayout$3.NearUInt64BE = NearUInt64BE$1;\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\nvar NearInt64$1 = /*#__PURE__*/function (_Layout8) {\n _inherits(NearInt64, _Layout8);\n\n var _super10 = _createSuper(NearInt64);\n\n function NearInt64(property) {\n _classCallCheck(this, NearInt64);\n\n return _super10.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearInt64, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var buffer = uint8ArrayToBuffer(b);\n var lo32 = buffer.readUInt32LE(offset);\n var hi32 = buffer.readInt32LE(offset + 4);\n return roundedInt64$1(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var split = divmodInt64$1(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n }]);\n\n return NearInt64;\n}(Layout$2);\n\nLayout$3.NearInt64 = NearInt64$1;\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\nvar NearInt64BE$1 = /*#__PURE__*/function (_Layout9) {\n _inherits(NearInt64BE, _Layout9);\n\n var _super11 = _createSuper(NearInt64BE);\n\n function NearInt64BE(property) {\n _classCallCheck(this, NearInt64BE);\n\n return _super11.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearInt64BE, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var buffer = uint8ArrayToBuffer(b);\n var hi32 = buffer.readInt32BE(offset);\n var lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64$1(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var split = divmodInt64$1(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n }]);\n\n return NearInt64BE;\n}(Layout$2);\n\nLayout$3.NearInt64BE = NearInt64BE$1;\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Float$1 = /*#__PURE__*/function (_Layout10) {\n _inherits(Float, _Layout10);\n\n var _super12 = _createSuper(Float);\n\n function Float(property) {\n _classCallCheck(this, Float);\n\n return _super12.call(this, 4, property);\n }\n /** @override */\n\n\n _createClass(Float, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readFloatLE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeFloatLE(src, offset);\n return 4;\n }\n }]);\n\n return Float;\n}(Layout$2);\n\nLayout$3.Float = Float$1;\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar FloatBE$1 = /*#__PURE__*/function (_Layout11) {\n _inherits(FloatBE, _Layout11);\n\n var _super13 = _createSuper(FloatBE);\n\n function FloatBE(property) {\n _classCallCheck(this, FloatBE);\n\n return _super13.call(this, 4, property);\n }\n /** @override */\n\n\n _createClass(FloatBE, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readFloatBE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeFloatBE(src, offset);\n return 4;\n }\n }]);\n\n return FloatBE;\n}(Layout$2);\n\nLayout$3.FloatBE = FloatBE$1;\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Double$1 = /*#__PURE__*/function (_Layout12) {\n _inherits(Double, _Layout12);\n\n var _super14 = _createSuper(Double);\n\n function Double(property) {\n _classCallCheck(this, Double);\n\n return _super14.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(Double, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readDoubleLE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeDoubleLE(src, offset);\n return 8;\n }\n }]);\n\n return Double;\n}(Layout$2);\n\nLayout$3.Double = Double$1;\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar DoubleBE$1 = /*#__PURE__*/function (_Layout13) {\n _inherits(DoubleBE, _Layout13);\n\n var _super15 = _createSuper(DoubleBE);\n\n function DoubleBE(property) {\n _classCallCheck(this, DoubleBE);\n\n return _super15.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(DoubleBE, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return uint8ArrayToBuffer(b).readDoubleBE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n uint8ArrayToBuffer(b).writeDoubleBE(src, offset);\n return 8;\n }\n }]);\n\n return DoubleBE;\n}(Layout$2);\n\nLayout$3.DoubleBE = DoubleBE$1;\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Sequence$1 = /*#__PURE__*/function (_Layout14) {\n _inherits(Sequence, _Layout14);\n\n var _super16 = _createSuper(Sequence);\n\n function Sequence(elementLayout, count, property) {\n var _this7;\n\n _classCallCheck(this, Sequence);\n\n if (!(elementLayout instanceof Layout$2)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n\n if (!(count instanceof ExternalLayout$1 && count.isCount() || Number.isInteger(count) && 0 <= count)) {\n throw new TypeError('count must be non-negative integer ' + 'or an unsigned integer ExternalLayout');\n }\n\n var span = -1;\n\n if (!(count instanceof ExternalLayout$1) && 0 < elementLayout.span) {\n span = count * elementLayout.span;\n }\n\n _this7 = _super16.call(this, span, property);\n /** The layout for individual elements of the sequence. */\n\n _this7.elementLayout = elementLayout;\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n\n _this7.count = count;\n return _this7;\n }\n /** @override */\n\n\n _createClass(Sequence, [{\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (0 <= this.span) {\n return this.span;\n }\n\n var span = 0;\n var count = this.count;\n\n if (count instanceof ExternalLayout$1) {\n count = count.decode(b, offset);\n }\n\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n } else {\n var idx = 0;\n\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n\n return span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var rv = [];\n var i = 0;\n var count = this.count;\n\n if (count instanceof ExternalLayout$1) {\n count = count.decode(b, offset);\n }\n\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n\n return rv;\n }\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var elo = this.elementLayout;\n var span = src.reduce(function (span, v) {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n\n if (this.count instanceof ExternalLayout$1) {\n this.count.encode(src.length, b, offset);\n }\n\n return span;\n }\n }]);\n\n return Sequence;\n}(Layout$2);\n\nLayout$3.Sequence = Sequence$1;\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\n\nvar Structure$1 = /*#__PURE__*/function (_Layout15) {\n _inherits(Structure, _Layout15);\n\n var _super17 = _createSuper(Structure);\n\n function Structure(fields, property, decodePrefixes) {\n var _this8;\n\n _classCallCheck(this, Structure);\n\n if (!(Array.isArray(fields) && fields.reduce(function (acc, v) {\n return acc && v instanceof Layout$2;\n }, true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n\n if ('boolean' === typeof property && undefined === decodePrefixes) {\n decodePrefixes = property;\n property = undefined;\n }\n /* Verify absence of unnamed variable-length fields. */\n\n\n var _iterator = _createForOfIteratorHelper(fields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var fd = _step.value;\n\n if (0 > fd.span && undefined === fd.property) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var span = -1;\n\n try {\n span = fields.reduce(function (span, fd) {\n return span + fd.getSpan();\n }, 0);\n } catch (e) {// ignore error\n }\n\n _this8 = _super17.call(this, span, property);\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n\n _this8.fields = fields;\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n\n _this8.decodePrefixes = !!decodePrefixes;\n return _this8;\n }\n /** @override */\n\n\n _createClass(Structure, [{\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (0 <= this.span) {\n return this.span;\n }\n\n var span = 0;\n\n try {\n span = this.fields.reduce(function (span, fd) {\n var fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n } catch (e) {\n throw new RangeError('indeterminate span');\n }\n\n return span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n checkUint8Array(b);\n var dest = this.makeDestinationObject();\n\n var _iterator2 = _createForOfIteratorHelper(this.fields),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var fd = _step2.value;\n\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n\n offset += fd.getSpan(b, offset);\n\n if (this.decodePrefixes && b.length === offset) {\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var firstOffset = offset;\n var lastOffset = 0;\n var lastWrote = 0;\n\n var _iterator3 = _createForOfIteratorHelper(this.fields),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var fd = _step3.value;\n var span = fd.span;\n lastWrote = 0 < span ? span : 0;\n\n if (undefined !== fd.property) {\n var fv = src[fd.property];\n\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return lastOffset + lastWrote - firstOffset;\n }\n /** @override */\n\n }, {\n key: \"fromArray\",\n value: function fromArray(values) {\n var dest = this.makeDestinationObject();\n\n var _iterator4 = _createForOfIteratorHelper(this.fields),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var fd = _step4.value;\n\n if (undefined !== fd.property && 0 < values.length) {\n dest[fd.property] = values.shift();\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return dest;\n }\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n\n }, {\n key: \"layoutFor\",\n value: function layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n\n var _iterator5 = _createForOfIteratorHelper(this.fields),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var fd = _step5.value;\n\n if (fd.property === property) {\n return fd;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return undefined;\n }\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n\n }, {\n key: \"offsetOf\",\n value: function offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n\n var offset = 0;\n\n var _iterator6 = _createForOfIteratorHelper(this.fields),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var fd = _step6.value;\n\n if (fd.property === property) {\n return offset;\n }\n\n if (0 > fd.span) {\n offset = -1;\n } else if (0 <= offset) {\n offset += fd.span;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return undefined;\n }\n }]);\n\n return Structure;\n}(Layout$2);\n\nLayout$3.Structure = Structure$1;\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\n\nvar UnionDiscriminator$1 = /*#__PURE__*/function () {\n function UnionDiscriminator(property) {\n _classCallCheck(this, UnionDiscriminator);\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n\n\n this.property = property;\n }\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n\n\n _createClass(UnionDiscriminator, [{\n key: \"decode\",\n value: function decode(b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n }\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n }\n }]);\n\n return UnionDiscriminator;\n}();\n\nLayout$3.UnionDiscriminator = UnionDiscriminator$1;\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\n\nvar UnionLayoutDiscriminator$1 = /*#__PURE__*/function (_UnionDiscriminator) {\n _inherits(UnionLayoutDiscriminator, _UnionDiscriminator);\n\n var _super18 = _createSuper(UnionLayoutDiscriminator);\n\n function UnionLayoutDiscriminator(layout, property) {\n var _this9;\n\n _classCallCheck(this, UnionLayoutDiscriminator);\n\n if (!(layout instanceof ExternalLayout$1 && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n\n _this9 = _super18.call(this, property || layout.property || 'variant');\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n\n _this9.layout = layout;\n return _this9;\n }\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n\n\n _createClass(UnionLayoutDiscriminator, [{\n key: \"decode\",\n value: function decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n }]);\n\n return UnionLayoutDiscriminator;\n}(UnionDiscriminator$1);\n\nLayout$3.UnionLayoutDiscriminator = UnionLayoutDiscriminator$1;\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Union$1 = /*#__PURE__*/function (_Layout16) {\n _inherits(Union, _Layout16);\n\n var _super19 = _createSuper(Union);\n\n function Union(discr, defaultLayout, property) {\n var _this10;\n\n _classCallCheck(this, Union);\n\n var discriminator;\n\n if (discr instanceof UInt$1 || discr instanceof UIntBE$1) {\n discriminator = new UnionLayoutDiscriminator$1(new OffsetLayout$1(discr));\n } else if (discr instanceof ExternalLayout$1 && discr.isCount()) {\n discriminator = new UnionLayoutDiscriminator$1(discr);\n } else if (!(discr instanceof UnionDiscriminator$1)) {\n throw new TypeError('discr must be a UnionDiscriminator ' + 'or an unsigned integer layout');\n } else {\n discriminator = discr;\n }\n\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n\n if (!(null === defaultLayout || defaultLayout instanceof Layout$2)) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n\n\n var span = -1;\n\n if (defaultLayout) {\n span = defaultLayout.span;\n\n if (0 <= span && (discr instanceof UInt$1 || discr instanceof UIntBE$1)) {\n span += discriminator.layout.span;\n }\n }\n\n _this10 = _super19.call(this, span, property);\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n\n _this10.discriminator = discriminator;\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n\n _this10.usesPrefixDiscriminator = discr instanceof UInt$1 || discr instanceof UIntBE$1;\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n\n _this10.defaultLayout = defaultLayout;\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n\n _this10.registry = {};\n /* Private variable used when invoking getSourceVariant */\n\n var boundGetSourceVariant = _this10.defaultGetSourceVariant.bind(_assertThisInitialized(_this10));\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n\n\n _this10.getSourceVariant = function (src) {\n return boundGetSourceVariant(src);\n };\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n\n\n _this10.configGetSourceVariant = function (gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n\n return _this10;\n }\n /** @override */\n\n\n _createClass(Union, [{\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (0 <= this.span) {\n return this.span;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n\n\n var vlo = this.getVariant(b, offset);\n\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n\n return vlo.getSpan(b, offset);\n }\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisfied rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n\n }, {\n key: \"defaultGetSourceVariant\",\n value: function defaultGetSourceVariant(src) {\n if (Object.prototype.hasOwnProperty.call(src, this.discriminator.property)) {\n if (this.defaultLayout && this.defaultLayout.property && Object.prototype.hasOwnProperty.call(src, this.defaultLayout.property)) {\n return undefined;\n }\n\n var vlo = this.registry[src[this.discriminator.property]];\n\n if (vlo && (!vlo.layout || vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property))) {\n return vlo;\n }\n } else {\n for (var tag in this.registry) {\n var _vlo = this.registry[tag];\n\n if (_vlo.property && Object.prototype.hasOwnProperty.call(src, _vlo.property)) {\n return _vlo;\n }\n }\n }\n\n throw new Error('unable to infer src variant');\n }\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var dest;\n var dlo = this.discriminator;\n var discr = dlo.decode(b, offset);\n var clo = this.registry[discr];\n\n if (undefined === clo) {\n var defaultLayout = this.defaultLayout;\n var contentOffset = 0;\n\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr; // defaultLayout.property can be undefined, but this is allowed by buffer-layout\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n dest[defaultLayout.property] = defaultLayout.decode(b, offset + contentOffset);\n } else {\n dest = clo.decode(b, offset);\n }\n\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var vlo = this.getSourceVariant(src);\n\n if (undefined === vlo) {\n var dlo = this.discriminator; // this.defaultLayout is not undefined when vlo is undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n var clo = this.defaultLayout;\n var contentOffset = 0;\n\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n\n dlo.encode(src[dlo.property], b, offset); // clo.property is not undefined when vlo is undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n return contentOffset + clo.encode(src[clo.property], b, offset + contentOffset);\n }\n\n return vlo.encode(src, b, offset);\n }\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n\n }, {\n key: \"addVariant\",\n value: function addVariant(variant, layout, property) {\n var rv = new VariantLayout$1(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Uint8Array)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Uint8Array}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n\n }, {\n key: \"getVariant\",\n value: function getVariant(vb) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var variant;\n\n if (vb instanceof Uint8Array) {\n variant = this.discriminator.decode(vb, offset);\n } else {\n variant = vb;\n }\n\n return this.registry[variant];\n }\n }]);\n\n return Union;\n}(Layout$2);\n\nLayout$3.Union = Union$1;\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\n\nvar VariantLayout$1 = /*#__PURE__*/function (_Layout17) {\n _inherits(VariantLayout, _Layout17);\n\n var _super20 = _createSuper(VariantLayout);\n\n function VariantLayout(union, variant, layout, property) {\n var _this11;\n\n _classCallCheck(this, VariantLayout);\n\n if (!(union instanceof Union$1)) {\n throw new TypeError('union must be a Union');\n }\n\n if (!Number.isInteger(variant) || 0 > variant) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n\n if ('string' === typeof layout && undefined === property) {\n property = layout;\n layout = null;\n }\n\n if (layout) {\n if (!(layout instanceof Layout$2)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (null !== union.defaultLayout && 0 <= layout.span && layout.span > union.defaultLayout.span) {\n throw new Error('variant span exceeds span of containing union');\n }\n\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n\n var span = union.span;\n\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n\n if (0 <= span && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n\n _this11 = _super20.call(this, span, property);\n /** The {@link Union} to which this variant belongs. */\n\n _this11.union = union;\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n\n _this11.variant = variant;\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n\n _this11.layout = layout || null;\n return _this11;\n }\n /** @override */\n\n\n _createClass(VariantLayout, [{\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n\n var contentOffset = 0;\n\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n\n\n var span = 0;\n\n if (this.layout) {\n span = this.layout.getSpan(b, offset + contentOffset);\n }\n\n return contentOffset + span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var dest = this.makeDestinationObject();\n\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n\n var contentOffset = 0;\n\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n } else if (this.property) {\n dest[this.property] = true;\n } else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n\n return dest;\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var contentOffset = 0;\n\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n\n if (this.layout && !Object.prototype.hasOwnProperty.call(src, this.property)) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n\n this.union.discriminator.encode(this.variant, b, offset);\n var span = contentOffset;\n\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n\n if (0 <= this.union.span && span > this.union.span) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n\n return span;\n }\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n\n }, {\n key: \"fromArray\",\n value: function fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n\n return undefined;\n }\n }]);\n\n return VariantLayout;\n}(Layout$2);\n\nLayout$3.VariantLayout = VariantLayout$1;\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\n\nfunction fixBitwiseResult$1(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n\n return v;\n}\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar BitStructure$1 = /*#__PURE__*/function (_Layout18) {\n _inherits(BitStructure, _Layout18);\n\n var _super21 = _createSuper(BitStructure);\n\n function BitStructure(word, msb, property) {\n var _this12;\n\n _classCallCheck(this, BitStructure);\n\n if (!(word instanceof UInt$1 || word instanceof UIntBE$1)) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n\n if ('string' === typeof msb && undefined === property) {\n property = msb;\n msb = false;\n }\n\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n\n _this12 = _super21.call(this, word.span, property);\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n\n _this12.word = word;\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n\n _this12.msb = !!msb;\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n\n _this12.fields = [];\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n\n var value = 0;\n\n _this12._packedSetValue = function (v) {\n value = fixBitwiseResult$1(v);\n return this;\n };\n\n _this12._packedGetValue = function () {\n return value;\n };\n\n return _this12;\n }\n /** @override */\n\n\n _createClass(BitStructure, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var dest = this.makeDestinationObject();\n var value = this.word.decode(b, offset);\n\n this._packedSetValue(value);\n\n var _iterator7 = _createForOfIteratorHelper(this.fields),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var fd = _step7.value;\n\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b);\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var value = this.word.decode(b, offset);\n\n this._packedSetValue(value);\n\n var _iterator8 = _createForOfIteratorHelper(this.fields),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var fd = _step8.value;\n\n if (undefined !== fd.property) {\n var fv = src[fd.property];\n\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n\n }, {\n key: \"addField\",\n value: function addField(bits, property) {\n var bf = new BitField$1(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n // `Boolean` conflicts with the native primitive type\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n }, {\n key: \"addBoolean\",\n value: function addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n var bf = new Boolean$2(this, property);\n this.fields.push(bf);\n return bf;\n }\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n\n }, {\n key: \"fieldFor\",\n value: function fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n\n var _iterator9 = _createForOfIteratorHelper(this.fields),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var fd = _step9.value;\n\n if (fd.property === property) {\n return fd;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return undefined;\n }\n }]);\n\n return BitStructure;\n}(Layout$2);\n\nLayout$3.BitStructure = BitStructure$1;\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\n\nvar BitField$1 = /*#__PURE__*/function () {\n function BitField(container, bits, property) {\n _classCallCheck(this, BitField);\n\n if (!(container instanceof BitStructure$1)) {\n throw new TypeError('container must be a BitStructure');\n }\n\n if (!Number.isInteger(bits) || 0 >= bits) {\n throw new TypeError('bits must be positive integer');\n }\n\n var totalBits = 8 * container.span;\n var usedBits = container.fields.reduce(function (sum, fd) {\n return sum + fd.bits;\n }, 0);\n\n if (bits + usedBits > totalBits) {\n throw new Error('bits too long for span remainder (' + (totalBits - usedBits) + ' of ' + totalBits + ' remain)');\n }\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n\n\n this.container = container;\n /** The span of this value in bits. */\n\n this.bits = bits;\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n\n this.valueMask = (1 << bits) - 1;\n\n if (32 === bits) {\n // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n\n\n this.start = usedBits;\n\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n\n\n this.wordMask = fixBitwiseResult$1(this.valueMask << this.start);\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n\n this.property = property;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n\n\n _createClass(BitField, [{\n key: \"decode\",\n value: function decode(b, offset) {\n var word = this.container._packedGetValue();\n\n var wordValue = fixBitwiseResult$1(word & this.wordMask);\n var value = wordValue >>> this.start;\n return value;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n\n }, {\n key: \"encode\",\n value: function encode(value) {\n if ('number' !== typeof value || !Number.isInteger(value) || value !== fixBitwiseResult$1(value & this.valueMask)) {\n throw new TypeError(nameWithProperty$1('BitField.encode', this) + ' value must be integer not exceeding ' + this.valueMask);\n }\n\n var word = this.container._packedGetValue();\n\n var wordValue = fixBitwiseResult$1(value << this.start);\n\n this.container._packedSetValue(fixBitwiseResult$1(word & ~this.wordMask) | wordValue);\n }\n }]);\n\n return BitField;\n}();\n\nLayout$3.BitField = BitField$1;\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n\n/* eslint-disable no-extend-native */\n\nvar Boolean$2 = /*#__PURE__*/function (_BitField) {\n _inherits(Boolean, _BitField);\n\n var _super22 = _createSuper(Boolean);\n\n function Boolean(container, property) {\n _classCallCheck(this, Boolean);\n\n return _super22.call(this, container, 1, property);\n }\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n\n\n _createClass(Boolean, [{\n key: \"decode\",\n value: function decode(b, offset) {\n return !!_get(_getPrototypeOf(Boolean.prototype), \"decode\", this).call(this, b, offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n\n _get(_getPrototypeOf(Boolean.prototype), \"encode\", this).call(this, value);\n }\n }]);\n\n return Boolean;\n}(BitField$1);\n\nLayout$3.Boolean = Boolean$2;\n/* eslint-enable no-extend-native */\n\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Uint8Array.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Blob$1 = /*#__PURE__*/function (_Layout19) {\n _inherits(Blob, _Layout19);\n\n var _super23 = _createSuper(Blob);\n\n function Blob(length, property) {\n var _this13;\n\n _classCallCheck(this, Blob);\n\n if (!(length instanceof ExternalLayout$1 && length.isCount() || Number.isInteger(length) && 0 <= length)) {\n throw new TypeError('length must be positive integer ' + 'or an unsigned integer ExternalLayout');\n }\n\n var span = -1;\n\n if (!(length instanceof ExternalLayout$1)) {\n span = length;\n }\n\n _this13 = _super23.call(this, span, property);\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n\n _this13.length = length;\n return _this13;\n }\n /** @override */\n\n\n _createClass(Blob, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n var span = this.span;\n\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n\n return span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var span = this.span;\n\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n\n return uint8ArrayToBuffer(b).slice(offset, offset + span);\n }\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n var span = this.length;\n\n if (this.length instanceof ExternalLayout$1) {\n span = src.length;\n }\n\n if (!(src instanceof Uint8Array && span === src.length)) {\n throw new TypeError(nameWithProperty$1('Blob.encode', this) + ' requires (length ' + span + ') Uint8Array as src');\n }\n\n if (offset + span > b.length) {\n throw new RangeError('encoding overruns Uint8Array');\n }\n\n var srcBuffer = uint8ArrayToBuffer(src);\n uint8ArrayToBuffer(b).write(srcBuffer.toString('hex'), offset, span, 'hex');\n\n if (this.length instanceof ExternalLayout$1) {\n this.length.encode(span, b, offset);\n }\n\n return span;\n }\n }]);\n\n return Blob;\n}(Layout$2);\n\nLayout$3.Blob = Blob$1;\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar CString$1 = /*#__PURE__*/function (_Layout20) {\n _inherits(CString, _Layout20);\n\n var _super24 = _createSuper(CString);\n\n function CString(property) {\n _classCallCheck(this, CString);\n\n return _super24.call(this, -1, property);\n }\n /** @override */\n\n\n _createClass(CString, [{\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n checkUint8Array(b);\n var idx = offset;\n\n while (idx < b.length && 0 !== b[idx]) {\n idx += 1;\n }\n\n return 1 + idx - offset;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var span = this.getSpan(b, offset);\n return uint8ArrayToBuffer(b).slice(offset, offset + span - 1).toString('utf-8');\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n\n if ('string' !== typeof src) {\n src = String(src);\n }\n\n var srcb = buffer_1.Buffer.from(src, 'utf8');\n var span = srcb.length;\n\n if (offset + span > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n\n var buffer = uint8ArrayToBuffer(b);\n srcb.copy(buffer, offset);\n buffer[offset + span] = 0;\n return span + 1;\n }\n }]);\n\n return CString;\n}(Layout$2);\n\nLayout$3.CString = CString$1;\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar UTF8$1 = /*#__PURE__*/function (_Layout21) {\n _inherits(UTF8, _Layout21);\n\n var _super25 = _createSuper(UTF8);\n\n function UTF8(maxSpan, property) {\n var _this14;\n\n _classCallCheck(this, UTF8);\n\n if ('string' === typeof maxSpan && undefined === property) {\n property = maxSpan;\n maxSpan = undefined;\n }\n\n if (undefined === maxSpan) {\n maxSpan = -1;\n } else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n\n _this14 = _super25.call(this, -1, property);\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n\n _this14.maxSpan = maxSpan;\n return _this14;\n }\n /** @override */\n\n\n _createClass(UTF8, [{\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n checkUint8Array(b);\n return b.length - offset;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var span = this.getSpan(b, offset);\n\n if (0 <= this.maxSpan && this.maxSpan < span) {\n throw new RangeError('text length exceeds maxSpan');\n }\n\n return uint8ArrayToBuffer(b).slice(offset, offset + span).toString('utf-8');\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n\n if ('string' !== typeof src) {\n src = String(src);\n }\n\n var srcb = buffer_1.Buffer.from(src, 'utf8');\n var span = srcb.length;\n\n if (0 <= this.maxSpan && this.maxSpan < span) {\n throw new RangeError('text length exceeds maxSpan');\n }\n\n if (offset + span > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n\n srcb.copy(uint8ArrayToBuffer(b), offset);\n return span;\n }\n }]);\n\n return UTF8;\n}(Layout$2);\n\nLayout$3.UTF8 = UTF8$1;\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\nvar Constant$1 = /*#__PURE__*/function (_Layout22) {\n _inherits(Constant, _Layout22);\n\n var _super26 = _createSuper(Constant);\n\n function Constant(value, property) {\n var _this15;\n\n _classCallCheck(this, Constant);\n\n _this15 = _super26.call(this, 0, property);\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n\n _this15.value = value;\n return _this15;\n }\n /** @override */\n\n\n _createClass(Constant, [{\n key: \"decode\",\n value: function decode(b, offset) {\n return this.value;\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n }]);\n\n return Constant;\n}(Layout$2);\n\nLayout$3.Constant = Constant$1;\n/** Factory for {@link GreedyCount}. */\n\nLayout$3.greedy = function (elementSpan, property) {\n return new GreedyCount$1(elementSpan, property);\n};\n/** Factory for {@link OffsetLayout}. */\n\n\nvar offset$1 = Layout$3.offset = function (layout, offset, property) {\n return new OffsetLayout$1(layout, offset, property);\n};\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\n\n\nvar u8 = Layout$3.u8 = function (property) {\n return new UInt$1(1, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\n\n\nvar u16 = Layout$3.u16 = function (property) {\n return new UInt$1(2, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\n\n\nLayout$3.u24 = function (property) {\n return new UInt$1(3, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\n\n\nvar u32 = Layout$3.u32 = function (property) {\n return new UInt$1(4, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\n\n\nLayout$3.u40 = function (property) {\n return new UInt$1(5, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\n\n\nLayout$3.u48 = function (property) {\n return new UInt$1(6, property);\n};\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\n\n\nvar nu64$1 = Layout$3.nu64 = function (property) {\n return new NearUInt64$1(property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\n\n\nLayout$3.u16be = function (property) {\n return new UIntBE$1(2, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\n\n\nLayout$3.u24be = function (property) {\n return new UIntBE$1(3, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\n\n\nLayout$3.u32be = function (property) {\n return new UIntBE$1(4, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\n\n\nLayout$3.u40be = function (property) {\n return new UIntBE$1(5, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\n\n\nLayout$3.u48be = function (property) {\n return new UIntBE$1(6, property);\n};\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\n\n\nLayout$3.nu64be = function (property) {\n return new NearUInt64BE$1(property);\n};\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\n\n\nLayout$3.s8 = function (property) {\n return new Int$1(1, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\n\n\nLayout$3.s16 = function (property) {\n return new Int$1(2, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\n\n\nLayout$3.s24 = function (property) {\n return new Int$1(3, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\n\n\nLayout$3.s32 = function (property) {\n return new Int$1(4, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\n\n\nLayout$3.s40 = function (property) {\n return new Int$1(5, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\n\n\nLayout$3.s48 = function (property) {\n return new Int$1(6, property);\n};\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\n\n\nvar ns64 = Layout$3.ns64 = function (property) {\n return new NearInt64$1(property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\n\n\nLayout$3.s16be = function (property) {\n return new IntBE$1(2, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\n\n\nLayout$3.s24be = function (property) {\n return new IntBE$1(3, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\n\n\nLayout$3.s32be = function (property) {\n return new IntBE$1(4, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\n\n\nLayout$3.s40be = function (property) {\n return new IntBE$1(5, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\n\n\nLayout$3.s48be = function (property) {\n return new IntBE$1(6, property);\n};\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\n\n\nLayout$3.ns64be = function (property) {\n return new NearInt64BE$1(property);\n};\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\n\n\nLayout$3.f32 = function (property) {\n return new Float$1(property);\n};\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\n\n\nLayout$3.f32be = function (property) {\n return new FloatBE$1(property);\n};\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\n\n\nLayout$3.f64 = function (property) {\n return new Double$1(property);\n};\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\n\n\nLayout$3.f64be = function (property) {\n return new DoubleBE$1(property);\n};\n/** Factory for {@link Structure} values. */\n\n\nvar struct = Layout$3.struct = function (fields, property, decodePrefixes) {\n return new Structure$1(fields, property, decodePrefixes);\n};\n/** Factory for {@link BitStructure} values. */\n\n\nLayout$3.bits = function (word, msb, property) {\n return new BitStructure$1(word, msb, property);\n};\n/** Factory for {@link Sequence} values. */\n\n\nvar seq$1 = Layout$3.seq = function (elementLayout, count, property) {\n return new Sequence$1(elementLayout, count, property);\n};\n/** Factory for {@link Union} values. */\n\n\nLayout$3.union = function (discr, defaultLayout, property) {\n return new Union$1(discr, defaultLayout, property);\n};\n/** Factory for {@link UnionLayoutDiscriminator} values. */\n\n\nLayout$3.unionLayoutDiscriminator = function (layout, property) {\n return new UnionLayoutDiscriminator$1(layout, property);\n};\n/** Factory for {@link Blob} values. */\n\n\nvar blob$1 = Layout$3.blob = function (length, property) {\n return new Blob$1(length, property);\n};\n/** Factory for {@link CString} values. */\n\n\nLayout$3.cstr = function (property) {\n return new CString$1(property);\n};\n/** Factory for {@link UTF8} values. */\n\n\nLayout$3.utf8 = function (maxSpan, property) {\n return new UTF8$1(maxSpan, property);\n};\n/** Factory for {@link Constant} values. */\n\n\nLayout$3.constant = function (value, property) {\n return new Constant$1(value, property);\n};\n\nvar browser$1 = {};\nObject.defineProperty(browser$1, \"__esModule\", {\n value: true\n});\n/**\n * Convert a little-endian buffer into a BigInt.\n * @param buf The little-endian buffer to convert\n * @returns A BigInt with the little-endian representation of buf.\n */\n\nfunction toBigIntLE(buf) {\n {\n var reversed = Buffer$1.from(buf);\n reversed.reverse();\n var hex = reversed.toString('hex');\n\n if (hex.length === 0) {\n return BigInt(0);\n }\n\n return BigInt(\"0x\".concat(hex));\n }\n}\n\nvar toBigIntLE_1 = browser$1.toBigIntLE = toBigIntLE;\n/**\n * Convert a big-endian buffer into a BigInt\n * @param buf The big-endian buffer to convert.\n * @returns A BigInt with the big-endian representation of buf.\n */\n\nfunction toBigIntBE(buf) {\n {\n var hex = buf.toString('hex');\n\n if (hex.length === 0) {\n return BigInt(0);\n }\n\n return BigInt(\"0x\".concat(hex));\n }\n}\n\nbrowser$1.toBigIntBE = toBigIntBE;\n/**\n * Convert a BigInt to a little-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A little-endian buffer representation of num.\n */\n\nfunction toBufferLE(num, width) {\n {\n var hex = num.toString(16);\n var buffer = Buffer$1.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n buffer.reverse();\n return buffer;\n } // Allocation is done here, since it is slower using napi in C\n}\n\nvar toBufferLE_1 = browser$1.toBufferLE = toBufferLE;\n/**\n * Convert a BigInt to a big-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A big-endian buffer representation of num.\n */\n\nfunction toBufferBE(num, width) {\n {\n var hex = num.toString(16);\n return Buffer$1.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n }\n}\n\nbrowser$1.toBufferBE = toBufferBE;\nvar _excluded$1 = [\"message\"];\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime().mark(toFailures);\n/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\n\n\nvar StructError = /*#__PURE__*/function (_TypeError) {\n _inherits(StructError, _TypeError);\n\n var _super = _createSuper(StructError);\n\n function StructError(failure, failures) {\n var _this;\n\n _classCallCheck(this, StructError);\n\n var cached;\n\n var message = failure.message,\n rest = _objectWithoutProperties(failure, _excluded$1);\n\n var path = failure.path;\n var msg = path.length === 0 ? message : \"At path: \" + path.join('.') + \" -- \" + message;\n _this = _super.call(this, msg);\n Object.assign(_assertThisInitialized(_this), rest);\n _this.name = _this.constructor.name;\n\n _this.failures = function () {\n var _cached;\n\n return (_cached = cached) != null ? _cached : cached = [failure].concat(_toConsumableArray(failures()));\n };\n\n return _this;\n }\n\n return _createClass(StructError);\n}( /*#__PURE__*/_wrapNativeSuper(TypeError));\n/**\n * Check if a value is an iterator.\n */\n\n\nfunction isIterable(x) {\n return isObject(x) && typeof x[Symbol.iterator] === 'function';\n}\n/**\n * Check if a value is a plain object.\n */\n\n\nfunction isObject(x) {\n return _typeof$1(x) === 'object' && x != null;\n}\n/**\n * Return a value as a printable string.\n */\n\n\nfunction print(value) {\n return typeof value === 'string' ? JSON.stringify(value) : \"\" + value;\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\n\n\nfunction shiftIterator(input) {\n var _input$next = input.next(),\n done = _input$next.done,\n value = _input$next.value;\n\n return done ? undefined : value;\n}\n/**\n * Convert a single validation result to a failure.\n */\n\n\nfunction toFailure(result, context, struct, value) {\n if (result === true) {\n return;\n } else if (result === false) {\n result = {};\n } else if (typeof result === 'string') {\n result = {\n message: result\n };\n }\n\n var path = context.path,\n branch = context.branch;\n var type = struct.type;\n var _result = result,\n refinement = _result.refinement,\n _result$message = _result.message,\n message = _result$message === void 0 ? \"Expected a value of type `\" + type + \"`\" + (refinement ? \" with refinement `\" + refinement + \"`\" : '') + \", but received: `\" + print(value) + \"`\" : _result$message;\n return _objectSpread2(_objectSpread2({\n value: value,\n type: type,\n refinement: refinement,\n key: path[path.length - 1],\n path: path,\n branch: branch\n }, result), {}, {\n message: message\n });\n}\n/**\n * Convert a validation result to an iterable of failures.\n */\n\n\nfunction toFailures(result, context, struct, value) {\n var _iterator, _step, r, failure;\n\n return _regeneratorRuntime().wrap(function toFailures$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!isIterable(result)) {\n result = [result];\n }\n\n _iterator = _createForOfIteratorHelper(result);\n _context.prev = 2;\n\n _iterator.s();\n\n case 4:\n if ((_step = _iterator.n()).done) {\n _context.next = 12;\n break;\n }\n\n r = _step.value;\n failure = toFailure(r, context, struct, value);\n\n if (!failure) {\n _context.next = 10;\n break;\n }\n\n _context.next = 10;\n return failure;\n\n case 10:\n _context.next = 4;\n break;\n\n case 12:\n _context.next = 17;\n break;\n\n case 14:\n _context.prev = 14;\n _context.t0 = _context[\"catch\"](2);\n\n _iterator.e(_context.t0);\n\n case 17:\n _context.prev = 17;\n\n _iterator.f();\n\n return _context.finish(17);\n\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, null, [[2, 14, 17, 20]]);\n}\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\n\n\nfunction run(value, struct) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _options$path, path, _options$branch, branch, _options$coerce, coerce, _options$mask, mask, ctx, key, valid, _iterator2, _step2, _failure, _iterator3, _step3, _step3$value2, k, v, s, ts, _iterator5, _step5, t, _iterator4, _step4, failure;\n\n return _regeneratorRuntime().wrap(function _callee$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _options$path = options.path, path = _options$path === void 0 ? [] : _options$path, _options$branch = options.branch, branch = _options$branch === void 0 ? [value] : _options$branch, _options$coerce = options.coerce, coerce = _options$coerce === void 0 ? false : _options$coerce, _options$mask = options.mask, mask = _options$mask === void 0 ? false : _options$mask;\n ctx = {\n path: path,\n branch: branch\n };\n\n if (coerce) {\n value = struct.coercer(value, ctx);\n\n if (mask && struct.type !== 'type' && isObject(struct.schema) && isObject(value) && !Array.isArray(value)) {\n for (key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key];\n }\n }\n }\n }\n\n valid = true;\n _iterator2 = _createForOfIteratorHelper(struct.validator(value, ctx));\n _context2.prev = 5;\n\n _iterator2.s();\n\n case 7:\n if ((_step2 = _iterator2.n()).done) {\n _context2.next = 14;\n break;\n }\n\n _failure = _step2.value;\n valid = false;\n _context2.next = 12;\n return [_failure, undefined];\n\n case 12:\n _context2.next = 7;\n break;\n\n case 14:\n _context2.next = 19;\n break;\n\n case 16:\n _context2.prev = 16;\n _context2.t0 = _context2[\"catch\"](5);\n\n _iterator2.e(_context2.t0);\n\n case 19:\n _context2.prev = 19;\n\n _iterator2.f();\n\n return _context2.finish(19);\n\n case 22:\n _iterator3 = _createForOfIteratorHelper(struct.entries(value, ctx));\n _context2.prev = 23;\n\n _iterator3.s();\n\n case 25:\n if ((_step3 = _iterator3.n()).done) {\n _context2.next = 52;\n break;\n }\n\n _step3$value2 = _slicedToArray(_step3.value, 3), k = _step3$value2[0], v = _step3$value2[1], s = _step3$value2[2];\n ts = run(v, s, {\n path: k === undefined ? path : [].concat(_toConsumableArray(path), [k]),\n branch: k === undefined ? branch : [].concat(_toConsumableArray(branch), [v]),\n coerce: coerce,\n mask: mask\n });\n _iterator5 = _createForOfIteratorHelper(ts);\n _context2.prev = 29;\n\n _iterator5.s();\n\n case 31:\n if ((_step5 = _iterator5.n()).done) {\n _context2.next = 42;\n break;\n }\n\n t = _step5.value;\n\n if (!t[0]) {\n _context2.next = 39;\n break;\n }\n\n valid = false;\n _context2.next = 37;\n return [t[0], undefined];\n\n case 37:\n _context2.next = 40;\n break;\n\n case 39:\n if (coerce) {\n v = t[1];\n\n if (k === undefined) {\n value = v;\n } else if (value instanceof Map) {\n value.set(k, v);\n } else if (value instanceof Set) {\n value.add(v);\n } else if (isObject(value)) {\n value[k] = v;\n }\n }\n\n case 40:\n _context2.next = 31;\n break;\n\n case 42:\n _context2.next = 47;\n break;\n\n case 44:\n _context2.prev = 44;\n _context2.t1 = _context2[\"catch\"](29);\n\n _iterator5.e(_context2.t1);\n\n case 47:\n _context2.prev = 47;\n\n _iterator5.f();\n\n return _context2.finish(47);\n\n case 50:\n _context2.next = 25;\n break;\n\n case 52:\n _context2.next = 57;\n break;\n\n case 54:\n _context2.prev = 54;\n _context2.t2 = _context2[\"catch\"](23);\n\n _iterator3.e(_context2.t2);\n\n case 57:\n _context2.prev = 57;\n\n _iterator3.f();\n\n return _context2.finish(57);\n\n case 60:\n if (!valid) {\n _context2.next = 79;\n break;\n }\n\n _iterator4 = _createForOfIteratorHelper(struct.refiner(value, ctx));\n _context2.prev = 62;\n\n _iterator4.s();\n\n case 64:\n if ((_step4 = _iterator4.n()).done) {\n _context2.next = 71;\n break;\n }\n\n failure = _step4.value;\n valid = false;\n _context2.next = 69;\n return [failure, undefined];\n\n case 69:\n _context2.next = 64;\n break;\n\n case 71:\n _context2.next = 76;\n break;\n\n case 73:\n _context2.prev = 73;\n _context2.t3 = _context2[\"catch\"](62);\n\n _iterator4.e(_context2.t3);\n\n case 76:\n _context2.prev = 76;\n\n _iterator4.f();\n\n return _context2.finish(76);\n\n case 79:\n if (!valid) {\n _context2.next = 82;\n break;\n }\n\n _context2.next = 82;\n return [undefined, value];\n\n case 82:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee, null, [[5, 16, 19, 22], [23, 54, 57, 60], [29, 44, 47, 50], [62, 73, 76, 79]]);\n })();\n}\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\n\n\nvar Struct$1 = /*#__PURE__*/function () {\n function Struct(props) {\n var _this2 = this;\n\n _classCallCheck(this, Struct);\n\n var type = props.type,\n schema = props.schema,\n validator = props.validator,\n refiner = props.refiner,\n _props$coercer = props.coercer,\n coercer = _props$coercer === void 0 ? function (value) {\n return value;\n } : _props$coercer,\n _props$entries = props.entries,\n entries = _props$entries === void 0 ? /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee2);\n }) : _props$entries;\n this.type = type;\n this.schema = schema;\n this.entries = entries;\n this.coercer = coercer;\n\n if (validator) {\n this.validator = function (value, context) {\n var result = validator(value, context);\n return toFailures(result, context, _this2, value);\n };\n } else {\n this.validator = function () {\n return [];\n };\n }\n\n if (refiner) {\n this.refiner = function (value, context) {\n var result = refiner(value, context);\n return toFailures(result, context, _this2, value);\n };\n } else {\n this.refiner = function () {\n return [];\n };\n }\n }\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n\n\n _createClass(Struct, [{\n key: \"assert\",\n value: function assert(value) {\n return _assert(value, this);\n }\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n\n }, {\n key: \"create\",\n value: function create(value) {\n return _create(value, this);\n }\n /**\n * Check if a value passes the struct's validation.\n */\n\n }, {\n key: \"is\",\n value: function is(value) {\n return _is(value, this);\n }\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n\n }, {\n key: \"mask\",\n value: function mask(value) {\n return _mask(value, this);\n }\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n\n }, {\n key: \"validate\",\n value: function validate(value) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _validate(value, this, options);\n }\n }]);\n\n return Struct;\n}();\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\n\n\nfunction _assert(value, struct) {\n var result = _validate(value, struct);\n\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\n\n\nfunction _create(value, struct) {\n var result = _validate(value, struct, {\n coerce: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\n\n\nfunction _mask(value, struct) {\n var result = _validate(value, struct, {\n coerce: true,\n mask: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Check if a value passes a struct.\n */\n\n\nfunction _is(value, struct) {\n var result = _validate(value, struct);\n\n return !result[0];\n}\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\n\n\nfunction _validate(value, struct) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var tuples = run(value, struct, options);\n var tuple = shiftIterator(tuples);\n\n if (tuple[0]) {\n var error = new StructError(tuple[0], /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var _iterator6, _step6, t;\n\n return _regeneratorRuntime().wrap(function _callee3$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _iterator6 = _createForOfIteratorHelper(tuples);\n _context4.prev = 1;\n\n _iterator6.s();\n\n case 3:\n if ((_step6 = _iterator6.n()).done) {\n _context4.next = 10;\n break;\n }\n\n t = _step6.value;\n\n if (!t[0]) {\n _context4.next = 8;\n break;\n }\n\n _context4.next = 8;\n return t[0];\n\n case 8:\n _context4.next = 3;\n break;\n\n case 10:\n _context4.next = 15;\n break;\n\n case 12:\n _context4.prev = 12;\n _context4.t0 = _context4[\"catch\"](1);\n\n _iterator6.e(_context4.t0);\n\n case 15:\n _context4.prev = 15;\n\n _iterator6.f();\n\n return _context4.finish(15);\n\n case 18:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee3, null, [[1, 12, 15, 18]]);\n }));\n return [error, undefined];\n } else {\n var v = tuple[1];\n return [undefined, v];\n }\n}\n/**\n * Define a new struct type with a custom validation function.\n */\n\n\nfunction define(name, validator) {\n return new Struct$1({\n type: name,\n schema: null,\n validator: validator\n });\n}\n/**\n * Ensure that any value passes validation.\n */\n\n\nfunction any() {\n return define('any', function () {\n return true;\n });\n}\n\nfunction array(Element) {\n return new Struct$1({\n type: 'array',\n schema: Element,\n entries: /*#__PURE__*/_regeneratorRuntime().mark(function entries(value) {\n var _iterator9, _step9, _step9$value2, i, v;\n\n return _regeneratorRuntime().wrap(function entries$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!(Element && Array.isArray(value))) {\n _context7.next = 18;\n break;\n }\n\n _iterator9 = _createForOfIteratorHelper(value.entries());\n _context7.prev = 2;\n\n _iterator9.s();\n\n case 4:\n if ((_step9 = _iterator9.n()).done) {\n _context7.next = 10;\n break;\n }\n\n _step9$value2 = _slicedToArray(_step9.value, 2), i = _step9$value2[0], v = _step9$value2[1];\n _context7.next = 8;\n return [i, v, Element];\n\n case 8:\n _context7.next = 4;\n break;\n\n case 10:\n _context7.next = 15;\n break;\n\n case 12:\n _context7.prev = 12;\n _context7.t0 = _context7[\"catch\"](2);\n\n _iterator9.e(_context7.t0);\n\n case 15:\n _context7.prev = 15;\n\n _iterator9.f();\n\n return _context7.finish(15);\n\n case 18:\n case \"end\":\n return _context7.stop();\n }\n }\n }, entries, null, [[2, 12, 15, 18]]);\n }),\n coercer: function coercer(value) {\n return Array.isArray(value) ? value.slice() : value;\n },\n validator: function validator(value) {\n return Array.isArray(value) || \"Expected an array value, but received: \" + print(value);\n }\n });\n}\n/**\n * Ensure that a value is a boolean.\n */\n\n\nfunction _boolean() {\n return define('boolean', function (value) {\n return typeof value === 'boolean';\n });\n}\n/**\n * Ensure that a value is an instance of a specific class.\n */\n\n\nfunction instance(Class) {\n return define('instance', function (value) {\n return value instanceof Class || \"Expected a `\" + Class.name + \"` instance, but received: \" + print(value);\n });\n}\n\nfunction literal(constant) {\n var description = print(constant);\n\n var t = _typeof$1(constant);\n\n return new Struct$1({\n type: 'literal',\n schema: t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n validator: function validator(value) {\n return value === constant || \"Expected the literal `\" + description + \"`, but received: \" + print(value);\n }\n });\n}\n/**\n * Ensure that no value ever passes validation.\n */\n\n\nfunction never() {\n return define('never', function () {\n return false;\n });\n}\n/**\n * Augment an existing struct to allow `null` values.\n */\n\n\nfunction nullable(struct) {\n return new Struct$1(_objectSpread2(_objectSpread2({}, struct), {}, {\n validator: function validator(value, ctx) {\n return value === null || struct.validator(value, ctx);\n },\n refiner: function refiner(value, ctx) {\n return value === null || struct.refiner(value, ctx);\n }\n }));\n}\n/**\n * Ensure that a value is a number.\n */\n\n\nfunction number() {\n return define('number', function (value) {\n return typeof value === 'number' && !isNaN(value) || \"Expected a number, but received: \" + print(value);\n });\n}\n/**\n * Augment a struct to allow `undefined` values.\n */\n\n\nfunction optional(struct) {\n return new Struct$1(_objectSpread2(_objectSpread2({}, struct), {}, {\n validator: function validator(value, ctx) {\n return value === undefined || struct.validator(value, ctx);\n },\n refiner: function refiner(value, ctx) {\n return value === undefined || struct.refiner(value, ctx);\n }\n }));\n}\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\n\n\nfunction record(Key, Value) {\n return new Struct$1({\n type: 'record',\n schema: null,\n entries: /*#__PURE__*/_regeneratorRuntime().mark(function entries(value) {\n var k, v;\n return _regeneratorRuntime().wrap(function entries$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (!isObject(value)) {\n _context13.next = 11;\n break;\n }\n\n _context13.t0 = _regeneratorRuntime().keys(value);\n\n case 2:\n if ((_context13.t1 = _context13.t0()).done) {\n _context13.next = 11;\n break;\n }\n\n k = _context13.t1.value;\n v = value[k];\n _context13.next = 7;\n return [k, k, Key];\n\n case 7:\n _context13.next = 9;\n return [k, v, Value];\n\n case 9:\n _context13.next = 2;\n break;\n\n case 11:\n case \"end\":\n return _context13.stop();\n }\n }\n }, entries);\n }),\n validator: function validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n });\n}\n/**\n * Ensure that a value is a string.\n */\n\n\nfunction string() {\n return define('string', function (value) {\n return typeof value === 'string' || \"Expected a string, but received: \" + print(value);\n });\n}\n\nfunction tuple(Elements) {\n var Never = never();\n return new Struct$1({\n type: 'tuple',\n schema: null,\n entries: /*#__PURE__*/_regeneratorRuntime().mark(function entries(value) {\n var length, i;\n return _regeneratorRuntime().wrap(function entries$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n if (!Array.isArray(value)) {\n _context15.next = 9;\n break;\n }\n\n length = Math.max(Elements.length, value.length);\n i = 0;\n\n case 3:\n if (!(i < length)) {\n _context15.next = 9;\n break;\n }\n\n _context15.next = 6;\n return [i, value[i], Elements[i] || Never];\n\n case 6:\n i++;\n _context15.next = 3;\n break;\n\n case 9:\n case \"end\":\n return _context15.stop();\n }\n }\n }, entries);\n }),\n validator: function validator(value) {\n return Array.isArray(value) || \"Expected an array, but received: \" + print(value);\n }\n });\n}\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\n\n\nfunction type(schema) {\n var keys = Object.keys(schema);\n return new Struct$1({\n type: 'type',\n schema: schema,\n entries: /*#__PURE__*/_regeneratorRuntime().mark(function entries(value) {\n var _iterator18, _step18, k;\n\n return _regeneratorRuntime().wrap(function entries$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n if (!isObject(value)) {\n _context16.next = 18;\n break;\n }\n\n _iterator18 = _createForOfIteratorHelper(keys);\n _context16.prev = 2;\n\n _iterator18.s();\n\n case 4:\n if ((_step18 = _iterator18.n()).done) {\n _context16.next = 10;\n break;\n }\n\n k = _step18.value;\n _context16.next = 8;\n return [k, value[k], schema[k]];\n\n case 8:\n _context16.next = 4;\n break;\n\n case 10:\n _context16.next = 15;\n break;\n\n case 12:\n _context16.prev = 12;\n _context16.t0 = _context16[\"catch\"](2);\n\n _iterator18.e(_context16.t0);\n\n case 15:\n _context16.prev = 15;\n\n _iterator18.f();\n\n return _context16.finish(15);\n\n case 18:\n case \"end\":\n return _context16.stop();\n }\n }\n }, entries, null, [[2, 12, 15, 18]]);\n }),\n validator: function validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n });\n}\n\nfunction union(Structs) {\n var description = Structs.map(function (s) {\n return s.type;\n }).join(' | ');\n return new Struct$1({\n type: 'union',\n schema: null,\n validator: function validator(value, ctx) {\n var failures = [];\n\n var _iterator19 = _createForOfIteratorHelper(Structs),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var S = _step19.value;\n\n var _run3 = run(value, S, ctx),\n _run4 = _toArray(_run3),\n tuples = _run4.slice(0);\n\n var _tuples2 = _slicedToArray(tuples, 1),\n first = _tuples2[0];\n\n if (!first[0]) {\n return [];\n } else {\n var _iterator20 = _createForOfIteratorHelper(tuples),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var _step20$value2 = _slicedToArray(_step20.value, 1),\n failure = _step20$value2[0];\n\n if (failure) {\n failures.push(failure);\n }\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n }\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n return [\"Expected the value to satisfy a union of `\" + description + \"`, but received: \" + print(value)].concat(failures);\n }\n });\n}\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\n\n\nfunction unknown() {\n return define('unknown', function () {\n return true;\n });\n}\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\n\nfunction coerce(struct, condition, _coercer) {\n return new Struct$1(_objectSpread2(_objectSpread2({}, struct), {}, {\n coercer: function coercer(value, ctx) {\n return _is(value, condition) ? struct.coercer(_coercer(value, ctx), ctx) : struct.coercer(value, ctx);\n }\n }));\n} // Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}\n\nvar REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify$1(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n} //\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify$1(b);\n}\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nvar DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nvar URL$1 = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify$1(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL$1;\n return generateUUID;\n}\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar v3 = v35('v3', 0x30, md5);\nvar v3$1 = v3;\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify$1(rnds);\n} // Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\n\n\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar v5 = v35('v5', 0x50, sha1);\nvar v5$1 = v5;\nvar nil = '00000000-0000-0000-0000-000000000000';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar esmBrowser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n v1: v1,\n v3: v3$1,\n v4: v4,\n v5: v5$1,\n NIL: nil,\n version: version,\n validate: validate,\n stringify: stringify$1,\n parse: parse\n});\nvar require$$0 = /*@__PURE__*/getAugmentedNamespace(esmBrowser);\nvar uuid$1 = require$$0.v4;\n/**\n * Generates a JSON-RPC 1.0 or 2.0 request\n * @param {String} method Name of method to call\n * @param {Array|Object} params Array of parameters passed to the method as specified, or an object of parameter names and corresponding value\n * @param {String|Number|null} [id] Request ID can be a string, number, null for explicit notification or left out for automatic generation\n * @param {Object} [options]\n * @param {Number} [options.version=2] JSON-RPC version to use (1 or 2)\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @param {Function} [options.generator] Passed the request, and the options object and is expected to return a request ID\n * @throws {TypeError} If any of the parameters are invalid\n * @return {Object} A JSON-RPC 1.0 or 2.0 request\n * @memberOf Utils\n */\n\nvar generateRequest$1 = function generateRequest(method, params, id, options) {\n if (typeof method !== 'string') {\n throw new TypeError(method + ' must be a string');\n }\n\n options = options || {}; // check valid version provided\n\n var version = typeof options.version === 'number' ? options.version : 2;\n\n if (version !== 1 && version !== 2) {\n throw new TypeError(version + ' must be 1 or 2');\n }\n\n var request = {\n method: method\n };\n\n if (version === 2) {\n request.jsonrpc = '2.0';\n }\n\n if (params) {\n // params given, but invalid?\n if (_typeof$1(params) !== 'object' && !Array.isArray(params)) {\n throw new TypeError(params + ' must be an object, array or omitted');\n }\n\n request.params = params;\n } // if id was left out, generate one (null means explicit notification)\n\n\n if (typeof id === 'undefined') {\n var generator = typeof options.generator === 'function' ? options.generator : function () {\n return uuid$1();\n };\n request.id = generator(request, options);\n } else if (version === 2 && id === null) {\n // we have a version 2 notification\n if (options.notificationIdNull) {\n request.id = null; // id will not be set at all unless option provided\n }\n } else {\n request.id = id;\n }\n\n return request;\n};\n\nvar generateRequest_1 = generateRequest$1;\nvar uuid = require$$0.v4;\nvar generateRequest = generateRequest_1;\n/**\n * Constructor for a Jayson Browser Client that does not depend any node.js core libraries\n * @class ClientBrowser\n * @param {Function} callServer Method that calls the server, receives the stringified request and a regular node-style callback\n * @param {Object} [options]\n * @param {Function} [options.reviver] Reviver function for JSON\n * @param {Function} [options.replacer] Replacer function for JSON\n * @param {Number} [options.version=2] JSON-RPC version to use (1|2)\n * @param {Function} [options.generator] Function to use for generating request IDs\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @return {ClientBrowser}\n */\n\nvar ClientBrowser = function ClientBrowser(callServer, options) {\n if (!(this instanceof ClientBrowser)) {\n return new ClientBrowser(callServer, options);\n }\n\n if (!options) {\n options = {};\n }\n\n this.options = {\n reviver: typeof options.reviver !== 'undefined' ? options.reviver : null,\n replacer: typeof options.replacer !== 'undefined' ? options.replacer : null,\n generator: typeof options.generator !== 'undefined' ? options.generator : function () {\n return uuid();\n },\n version: typeof options.version !== 'undefined' ? options.version : 2,\n notificationIdNull: typeof options.notificationIdNull === 'boolean' ? options.notificationIdNull : false\n };\n this.callServer = callServer;\n};\n\nvar browser = ClientBrowser;\n/**\n * Creates a request and dispatches it if given a callback.\n * @param {String|Array} method A batch request if passed an Array, or a method name if passed a String\n * @param {Array|Object} [params] Parameters for the method\n * @param {String|Number} [id] Optional id. If undefined an id will be generated. If null it creates a notification request\n * @param {Function} [callback] Request callback. If specified, executes the request rather than only returning it.\n * @throws {TypeError} Invalid parameters\n * @return {Object} JSON-RPC 1.0 or 2.0 compatible request\n */\n\nClientBrowser.prototype.request = function (method, params, id, callback) {\n var self = this;\n var request = null; // is this a batch request?\n\n var isBatch = Array.isArray(method) && typeof params === 'function';\n\n if (this.options.version === 1 && isBatch) {\n throw new TypeError('JSON-RPC 1.0 does not support batching');\n } // is this a raw request?\n\n\n var isRaw = !isBatch && method && _typeof$1(method) === 'object' && typeof params === 'function';\n\n if (isBatch || isRaw) {\n callback = params;\n request = method;\n } else {\n if (typeof id === 'function') {\n callback = id; // specifically undefined because \"null\" is a notification request\n\n id = undefined;\n }\n\n var hasCallback = typeof callback === 'function';\n\n try {\n request = generateRequest(method, params, id, {\n generator: this.options.generator,\n version: this.options.version,\n notificationIdNull: this.options.notificationIdNull\n });\n } catch (err) {\n if (hasCallback) {\n return callback(err);\n }\n\n throw err;\n } // no callback means we should just return a raw request\n\n\n if (!hasCallback) {\n return request;\n }\n }\n\n var message;\n\n try {\n message = JSON.stringify(request, this.options.replacer);\n } catch (err) {\n return callback(err);\n }\n\n this.callServer(message, function (err, response) {\n self._parseResponse(err, response, callback);\n }); // always return the raw request\n\n return request;\n};\n/**\n * Parses a response from a server\n * @param {Object} err Error to pass on that is unrelated to the actual response\n * @param {String} responseText JSON-RPC 1.0 or 2.0 response\n * @param {Function} callback Callback that will receive different arguments depending on the amount of parameters\n * @private\n */\n\n\nClientBrowser.prototype._parseResponse = function (err, responseText, callback) {\n if (err) {\n callback(err);\n return;\n }\n\n if (!responseText) {\n // empty response text, assume that is correct because it could be a\n // notification which jayson does not give any body for\n return callback();\n }\n\n var response;\n\n try {\n response = JSON.parse(responseText, this.options.reviver);\n } catch (err) {\n return callback(err);\n }\n\n if (callback.length === 3) {\n // if callback length is 3, we split callback arguments on error and response\n // is batch response?\n if (Array.isArray(response)) {\n // neccesary to split strictly on validity according to spec here\n var isError = function isError(res) {\n return typeof res.error !== 'undefined';\n };\n\n var isNotError = function isNotError(res) {\n return !isError(res);\n };\n\n return callback(null, response.filter(isError), response.filter(isNotError));\n } else {\n // split regardless of validity\n return callback(null, response.error, response.result);\n }\n }\n\n callback(null, response);\n};\n\nvar RpcClient = browser;\nvar client = {};\nvar interopRequireDefault = {\n exports: {}\n};\n\n(function (module) {\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n }\n\n module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n})(interopRequireDefault);\n\nvar regeneratorRuntime$1 = {\n exports: {}\n};\nvar _typeof = {\n exports: {}\n};\nvar hasRequired_typeof;\n\nfunction require_typeof() {\n if (hasRequired_typeof) return _typeof.exports;\n hasRequired_typeof = 1;\n\n (function (module) {\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n }\n\n module.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(_typeof);\n\n return _typeof.exports;\n}\n\nvar hasRequiredRegeneratorRuntime;\n\nfunction requireRegeneratorRuntime() {\n if (hasRequiredRegeneratorRuntime) return regeneratorRuntime$1.exports;\n hasRequiredRegeneratorRuntime = 1;\n\n (function (module) {\n var _typeof = require_typeof()[\"default\"];\n\n function _regeneratorRuntime() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n }\n\n module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(regeneratorRuntime$1);\n\n return regeneratorRuntime$1.exports;\n}\n\nvar regenerator;\nvar hasRequiredRegenerator;\n\nfunction requireRegenerator() {\n if (hasRequiredRegenerator) return regenerator;\n hasRequiredRegenerator = 1; // TODO(Babel 8): Remove this file.\n\n var runtime = requireRegeneratorRuntime()();\n regenerator = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\n\n try {\n regeneratorRuntime = runtime;\n } catch (accidentalStrictMode) {\n if ((typeof globalThis === \"undefined\" ? \"undefined\" : _typeof$1(globalThis)) === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n }\n\n return regenerator;\n}\n\nvar asyncToGenerator = {\n exports: {}\n};\nvar hasRequiredAsyncToGenerator;\n\nfunction requireAsyncToGenerator() {\n if (hasRequiredAsyncToGenerator) return asyncToGenerator.exports;\n hasRequiredAsyncToGenerator = 1;\n\n (function (module) {\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n }\n\n module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(asyncToGenerator);\n\n return asyncToGenerator.exports;\n}\n\nvar classCallCheck = {\n exports: {}\n};\nvar hasRequiredClassCallCheck;\n\nfunction requireClassCallCheck() {\n if (hasRequiredClassCallCheck) return classCallCheck.exports;\n hasRequiredClassCallCheck = 1;\n\n (function (module) {\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n module.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(classCallCheck);\n\n return classCallCheck.exports;\n}\n\nvar createClass = {\n exports: {}\n};\nvar hasRequiredCreateClass;\n\nfunction requireCreateClass() {\n if (hasRequiredCreateClass) return createClass.exports;\n hasRequiredCreateClass = 1;\n\n (function (module) {\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n module.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(createClass);\n\n return createClass.exports;\n}\n\nvar inherits = {\n exports: {}\n};\nvar setPrototypeOf = {\n exports: {}\n};\nvar hasRequiredSetPrototypeOf;\n\nfunction requireSetPrototypeOf() {\n if (hasRequiredSetPrototypeOf) return setPrototypeOf.exports;\n hasRequiredSetPrototypeOf = 1;\n\n (function (module) {\n function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n }\n\n module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(setPrototypeOf);\n\n return setPrototypeOf.exports;\n}\n\nvar hasRequiredInherits;\n\nfunction requireInherits() {\n if (hasRequiredInherits) return inherits.exports;\n hasRequiredInherits = 1;\n\n (function (module) {\n var setPrototypeOf = requireSetPrototypeOf();\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n }\n\n module.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(inherits);\n\n return inherits.exports;\n}\n\nvar possibleConstructorReturn = {\n exports: {}\n};\nvar assertThisInitialized = {\n exports: {}\n};\nvar hasRequiredAssertThisInitialized;\n\nfunction requireAssertThisInitialized() {\n if (hasRequiredAssertThisInitialized) return assertThisInitialized.exports;\n hasRequiredAssertThisInitialized = 1;\n\n (function (module) {\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(assertThisInitialized);\n\n return assertThisInitialized.exports;\n}\n\nvar hasRequiredPossibleConstructorReturn;\n\nfunction requirePossibleConstructorReturn() {\n if (hasRequiredPossibleConstructorReturn) return possibleConstructorReturn.exports;\n hasRequiredPossibleConstructorReturn = 1;\n\n (function (module) {\n var _typeof = require_typeof()[\"default\"];\n var assertThisInitialized = requireAssertThisInitialized();\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n }\n\n module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(possibleConstructorReturn);\n\n return possibleConstructorReturn.exports;\n}\n\nvar getPrototypeOf = {\n exports: {}\n};\nvar hasRequiredGetPrototypeOf;\n\nfunction requireGetPrototypeOf() {\n if (hasRequiredGetPrototypeOf) return getPrototypeOf.exports;\n hasRequiredGetPrototypeOf = 1;\n\n (function (module) {\n function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n }\n\n module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n })(getPrototypeOf);\n\n return getPrototypeOf.exports;\n}\n\nvar eventemitter3 = {\n exports: {}\n};\nvar hasRequiredEventemitter3;\n\nfunction requireEventemitter3() {\n if (hasRequiredEventemitter3) return eventemitter3.exports;\n hasRequiredEventemitter3 = 1;\n\n (function (module) {\n var has = Object.prototype.hasOwnProperty,\n prefix = '~';\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 */\n\n function Events() {} //\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 //\n\n\n if (Object.create) {\n Events.prototype = Object.create(null); //\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\n if (!new Events().__proto__) prefix = false;\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 */\n\n\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\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 */\n\n\n function 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 if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);else emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\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 */\n\n\n function clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();else delete emitter._events[evt];\n }\n /**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\n\n\n function EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n /**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\n\n\n EventEmitter.prototype.eventNames = function eventNames() {\n var names = [],\n events,\n name;\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 * 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 */\n\n\n EventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event,\n handlers = this._events[evt];\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 * 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 */\n\n\n EventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event,\n listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\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 */\n\n\n EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\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:\n return listeners.fn.call(listeners.context), true;\n\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\n case 6:\n 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:\n listeners[i].fn.call(listeners[i].context);\n break;\n\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\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 */\n\n\n EventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\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 */\n\n\n EventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\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 */\n\n\n EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n\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 (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n } //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n\n\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else clearEvent(this, evt);\n }\n\n return this;\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 */\n\n\n EventEmitter.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 // Alias methods names because people roll like that.\n //\n\n\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.addListener = EventEmitter.prototype.on; //\n // Expose the prefix.\n //\n\n EventEmitter.prefixed = prefix; //\n // Allow `EventEmitter` to be imported as module namespace.\n //\n\n EventEmitter.EventEmitter = EventEmitter; //\n // Expose the module.\n //\n\n {\n module.exports = EventEmitter;\n }\n })(eventemitter3);\n\n return eventemitter3.exports;\n}\n\n(function (exports) {\n var _interopRequireDefault = interopRequireDefault.exports;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = void 0;\n\n var _regenerator = _interopRequireDefault(requireRegenerator());\n\n var _asyncToGenerator2 = _interopRequireDefault(requireAsyncToGenerator());\n\n var _typeof2 = _interopRequireDefault(require_typeof());\n\n var _classCallCheck2 = _interopRequireDefault(requireClassCallCheck());\n\n var _createClass2 = _interopRequireDefault(requireCreateClass());\n\n var _inherits2 = _interopRequireDefault(requireInherits());\n\n var _possibleConstructorReturn2 = _interopRequireDefault(requirePossibleConstructorReturn());\n\n var _getPrototypeOf2 = _interopRequireDefault(requireGetPrototypeOf());\n\n var _eventemitter = requireEventemitter3();\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = (0, _getPrototypeOf2[\"default\"])(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return (0, _possibleConstructorReturn2[\"default\"])(this, result);\n };\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n var __rest = function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n }; // @ts-ignore\n\n\n var CommonClient = /*#__PURE__*/function (_EventEmitter) {\n (0, _inherits2[\"default\"])(CommonClient, _EventEmitter);\n\n var _super = _createSuper(CommonClient);\n /**\n * Instantiate a Client class.\n * @constructor\n * @param {webSocketFactory} webSocketFactory - factory method for WebSocket\n * @param {String} address - url to a websocket server\n * @param {Object} options - ws options object with reconnect parameters\n * @param {Function} generate_request_id - custom generation request Id\n * @return {CommonClient}\n */\n\n\n function CommonClient(webSocketFactory) {\n var _this;\n\n var address = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"ws://localhost:8080\";\n\n var _a = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var generate_request_id = arguments.length > 3 ? arguments[3] : undefined;\n (0, _classCallCheck2[\"default\"])(this, CommonClient);\n\n var _a$autoconnect = _a.autoconnect,\n autoconnect = _a$autoconnect === void 0 ? true : _a$autoconnect,\n _a$reconnect = _a.reconnect,\n reconnect = _a$reconnect === void 0 ? true : _a$reconnect,\n _a$reconnect_interval = _a.reconnect_interval,\n reconnect_interval = _a$reconnect_interval === void 0 ? 1000 : _a$reconnect_interval,\n _a$max_reconnects = _a.max_reconnects,\n max_reconnects = _a$max_reconnects === void 0 ? 5 : _a$max_reconnects,\n rest_options = __rest(_a, [\"autoconnect\", \"reconnect\", \"reconnect_interval\", \"max_reconnects\"]);\n\n _this = _super.call(this);\n _this.webSocketFactory = webSocketFactory;\n _this.queue = {};\n _this.rpc_id = 0;\n _this.address = address;\n _this.autoconnect = autoconnect;\n _this.ready = false;\n _this.reconnect = reconnect;\n _this.reconnect_timer_id = undefined;\n _this.reconnect_interval = reconnect_interval;\n _this.max_reconnects = max_reconnects;\n _this.rest_options = rest_options;\n _this.current_reconnects = 0;\n\n _this.generate_request_id = generate_request_id || function () {\n return ++_this.rpc_id;\n };\n\n if (_this.autoconnect) _this._connect(_this.address, Object.assign({\n autoconnect: _this.autoconnect,\n reconnect: _this.reconnect,\n reconnect_interval: _this.reconnect_interval,\n max_reconnects: _this.max_reconnects\n }, _this.rest_options));\n return _this;\n }\n /**\n * Connects to a defined server if not connected already.\n * @method\n * @return {Undefined}\n */\n\n\n (0, _createClass2[\"default\"])(CommonClient, [{\n key: \"connect\",\n value: function connect() {\n if (this.socket) return;\n\n this._connect(this.address, Object.assign({\n autoconnect: this.autoconnect,\n reconnect: this.reconnect,\n reconnect_interval: this.reconnect_interval,\n max_reconnects: this.max_reconnects\n }, this.rest_options));\n }\n /**\n * Calls a registered RPC method on server.\n * @method\n * @param {String} method - RPC method name\n * @param {Object|Array} params - optional method parameters\n * @param {Number} timeout - RPC reply timeout value\n * @param {Object} ws_opts - options passed to ws\n * @return {Promise}\n */\n\n }, {\n key: \"call\",\n value: function call(method, params, timeout, ws_opts) {\n var _this2 = this;\n\n if (!ws_opts && \"object\" === (0, _typeof2[\"default\"])(timeout)) {\n ws_opts = timeout;\n timeout = null;\n }\n\n return new Promise(function (resolve, reject) {\n if (!_this2.ready) return reject(new Error(\"socket not ready\"));\n\n var rpc_id = _this2.generate_request_id(method, params);\n\n var message = {\n jsonrpc: \"2.0\",\n method: method,\n params: params || null,\n id: rpc_id\n };\n\n _this2.socket.send(JSON.stringify(message), ws_opts, function (error) {\n if (error) return reject(error);\n _this2.queue[rpc_id] = {\n promise: [resolve, reject]\n };\n\n if (timeout) {\n _this2.queue[rpc_id].timeout = setTimeout(function () {\n delete _this2.queue[rpc_id];\n reject(new Error(\"reply timeout\"));\n }, timeout);\n }\n });\n });\n }\n /**\n * Logins with the other side of the connection.\n * @method\n * @param {Object} params - Login credentials object\n * @return {Promise}\n */\n\n }, {\n key: \"login\",\n value: function () {\n var _login = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(params) {\n var resp;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.call(\"rpc.login\", params);\n\n case 2:\n resp = _context.sent;\n\n if (resp) {\n _context.next = 5;\n break;\n }\n\n throw new Error(\"authentication failed\");\n\n case 5:\n return _context.abrupt(\"return\", resp);\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function login(_x) {\n return _login.apply(this, arguments);\n }\n\n return login;\n }()\n /**\n * Fetches a list of client's methods registered on server.\n * @method\n * @return {Array}\n */\n\n }, {\n key: \"listMethods\",\n value: function () {\n var _listMethods = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.call(\"__listMethods\");\n\n case 2:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function listMethods() {\n return _listMethods.apply(this, arguments);\n }\n\n return listMethods;\n }()\n /**\n * Sends a JSON-RPC 2.0 notification to server.\n * @method\n * @param {String} method - RPC method name\n * @param {Object} params - optional method parameters\n * @return {Promise}\n */\n\n }, {\n key: \"notify\",\n value: function notify(method, params) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n if (!_this3.ready) return reject(new Error(\"socket not ready\"));\n var message = {\n jsonrpc: \"2.0\",\n method: method,\n params: params || null\n };\n\n _this3.socket.send(JSON.stringify(message), function (error) {\n if (error) return reject(error);\n resolve();\n });\n });\n }\n /**\n * Subscribes for a defined event.\n * @method\n * @param {String|Array} event - event name\n * @return {Undefined}\n * @throws {Error}\n */\n\n }, {\n key: \"subscribe\",\n value: function () {\n var _subscribe = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee3(event) {\n var result;\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (typeof event === \"string\") event = [event];\n _context3.next = 3;\n return this.call(\"rpc.on\", event);\n\n case 3:\n result = _context3.sent;\n\n if (!(typeof event === \"string\" && result[event] !== \"ok\")) {\n _context3.next = 6;\n break;\n }\n\n throw new Error(\"Failed subscribing to an event '\" + event + \"' with: \" + result[event]);\n\n case 6:\n return _context3.abrupt(\"return\", result);\n\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function subscribe(_x2) {\n return _subscribe.apply(this, arguments);\n }\n\n return subscribe;\n }()\n /**\n * Unsubscribes from a defined event.\n * @method\n * @param {String|Array} event - event name\n * @return {Undefined}\n * @throws {Error}\n */\n\n }, {\n key: \"unsubscribe\",\n value: function () {\n var _unsubscribe = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee4(event) {\n var result;\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n if (typeof event === \"string\") event = [event];\n _context4.next = 3;\n return this.call(\"rpc.off\", event);\n\n case 3:\n result = _context4.sent;\n\n if (!(typeof event === \"string\" && result[event] !== \"ok\")) {\n _context4.next = 6;\n break;\n }\n\n throw new Error(\"Failed unsubscribing from an event with: \" + result);\n\n case 6:\n return _context4.abrupt(\"return\", result);\n\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function unsubscribe(_x3) {\n return _unsubscribe.apply(this, arguments);\n }\n\n return unsubscribe;\n }()\n /**\n * Closes a WebSocket connection gracefully.\n * @method\n * @param {Number} code - socket close code\n * @param {String} data - optional data to be sent before closing\n * @return {Undefined}\n */\n\n }, {\n key: \"close\",\n value: function close(code, data) {\n this.socket.close(code || 1000, data);\n }\n /**\n * Connection/Message handler.\n * @method\n * @private\n * @param {String} address - WebSocket API address\n * @param {Object} options - ws options object\n * @return {Undefined}\n */\n\n }, {\n key: \"_connect\",\n value: function _connect(address, options) {\n var _this4 = this;\n\n clearTimeout(this.reconnect_timer_id);\n this.socket = this.webSocketFactory(address, options);\n this.socket.addEventListener(\"open\", function () {\n _this4.ready = true;\n\n _this4.emit(\"open\");\n\n _this4.current_reconnects = 0;\n });\n this.socket.addEventListener(\"message\", function (_ref) {\n var message = _ref.data;\n if (message instanceof ArrayBuffer) message = Buffer$1.from(message).toString();\n\n try {\n message = JSON.parse(message);\n } catch (error) {\n return;\n } // check if any listeners are attached and forward event\n\n\n if (message.notification && _this4.listeners(message.notification).length) {\n if (!Object.keys(message.params).length) return _this4.emit(message.notification);\n var args = [message.notification];\n if (message.params.constructor === Object) args.push(message.params);else // using for-loop instead of unshift/spread because performance is better\n for (var i = 0; i < message.params.length; i++) {\n args.push(message.params[i]);\n } // run as microtask so that pending queue messages are resolved first\n // eslint-disable-next-line prefer-spread\n\n return Promise.resolve().then(function () {\n _this4.emit.apply(_this4, args);\n });\n }\n\n if (!_this4.queue[message.id]) {\n // general JSON RPC 2.0 events\n if (message.method && message.params) {\n // run as microtask so that pending queue messages are resolved first\n return Promise.resolve().then(function () {\n _this4.emit(message.method, message.params);\n });\n }\n\n return;\n } // reject early since server's response is invalid\n\n\n if (\"error\" in message === \"result\" in message) _this4.queue[message.id].promise[1](new Error(\"Server response malformed. Response must include either \\\"result\\\"\" + \" or \\\"error\\\", but not both.\"));\n if (_this4.queue[message.id].timeout) clearTimeout(_this4.queue[message.id].timeout);\n if (message.error) _this4.queue[message.id].promise[1](message.error);else _this4.queue[message.id].promise[0](message.result);\n delete _this4.queue[message.id];\n });\n this.socket.addEventListener(\"error\", function (error) {\n return _this4.emit(\"error\", error);\n });\n this.socket.addEventListener(\"close\", function (_ref2) {\n var code = _ref2.code,\n reason = _ref2.reason;\n if (_this4.ready) // Delay close event until internal state is updated\n setTimeout(function () {\n return _this4.emit(\"close\", code, reason);\n }, 0);\n _this4.ready = false;\n _this4.socket = undefined;\n if (code === 1000) return;\n _this4.current_reconnects++;\n if (_this4.reconnect && (_this4.max_reconnects > _this4.current_reconnects || _this4.max_reconnects === 0)) _this4.reconnect_timer_id = setTimeout(function () {\n return _this4._connect(address, options);\n }, _this4.reconnect_interval);\n });\n }\n }]);\n return CommonClient;\n }(_eventemitter.EventEmitter);\n\n exports[\"default\"] = CommonClient;\n})(client);\n\nvar RpcWebSocketCommonClient = /*@__PURE__*/getDefaultExportFromCjs$1(client);\nvar websocket_browser = {};\n/**\n * WebSocket implements a browser-side WebSocket specification.\n * @module Client\n */\n\n(function (exports) {\n var _interopRequireDefault = interopRequireDefault.exports;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports[\"default\"] = _default;\n\n var _classCallCheck2 = _interopRequireDefault(requireClassCallCheck());\n\n var _createClass2 = _interopRequireDefault(requireCreateClass());\n\n var _inherits2 = _interopRequireDefault(requireInherits());\n\n var _possibleConstructorReturn2 = _interopRequireDefault(requirePossibleConstructorReturn());\n\n var _getPrototypeOf2 = _interopRequireDefault(requireGetPrototypeOf());\n\n var _eventemitter = requireEventemitter3();\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = (0, _getPrototypeOf2[\"default\"])(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return (0, _possibleConstructorReturn2[\"default\"])(this, result);\n };\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n var WebSocketBrowserImpl = /*#__PURE__*/function (_EventEmitter) {\n (0, _inherits2[\"default\"])(WebSocketBrowserImpl, _EventEmitter);\n\n var _super = _createSuper(WebSocketBrowserImpl);\n /** Instantiate a WebSocket class\n * @constructor\n * @param {String} address - url to a websocket server\n * @param {(Object)} options - websocket options\n * @param {(String|Array)} protocols - a list of protocols\n * @return {WebSocketBrowserImpl} - returns a WebSocket instance\n */\n\n\n function WebSocketBrowserImpl(address, options, protocols) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, WebSocketBrowserImpl);\n _this = _super.call(this);\n _this.socket = new window.WebSocket(address, protocols);\n\n _this.socket.onopen = function () {\n return _this.emit(\"open\");\n };\n\n _this.socket.onmessage = function (event) {\n return _this.emit(\"message\", event.data);\n };\n\n _this.socket.onerror = function (error) {\n return _this.emit(\"error\", error);\n };\n\n _this.socket.onclose = function (event) {\n _this.emit(\"close\", event.code, event.reason);\n };\n\n return _this;\n }\n /**\n * Sends data through a websocket connection\n * @method\n * @param {(String|Object)} data - data to be sent via websocket\n * @param {Object} optionsOrCallback - ws options\n * @param {Function} callback - a callback called once the data is sent\n * @return {Undefined}\n */\n\n\n (0, _createClass2[\"default\"])(WebSocketBrowserImpl, [{\n key: \"send\",\n value: function send(data, optionsOrCallback, callback) {\n var cb = callback || optionsOrCallback;\n\n try {\n this.socket.send(data);\n cb();\n } catch (error) {\n cb(error);\n }\n }\n /**\n * Closes an underlying socket\n * @method\n * @param {Number} code - status code explaining why the connection is being closed\n * @param {String} reason - a description why the connection is closing\n * @return {Undefined}\n * @throws {Error}\n */\n\n }, {\n key: \"close\",\n value: function close(code, reason) {\n this.socket.close(code, reason);\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(type, listener, options) {\n this.socket.addEventListener(type, listener, options);\n }\n }]);\n return WebSocketBrowserImpl;\n }(_eventemitter.EventEmitter);\n /**\n * factory method for common WebSocket instance\n * @method\n * @param {String} address - url to a websocket server\n * @param {(Object)} options - websocket options\n * @return {Undefined}\n */\n\n\n function _default(address, options) {\n return new WebSocketBrowserImpl(address, options);\n }\n})(websocket_browser);\n\nvar createRpc = /*@__PURE__*/getDefaultExportFromCjs$1(websocket_browser); // It's called a sponge function.\n// Various per round constants calculations\n\nvar SHA3_PI = [],\n SHA3_ROTL = [],\n _SHA3_IOTA = [];\n\nvar _0n$1 = /* @__PURE__ */BigInt(0);\n\nvar _1n$2 = /* @__PURE__ */BigInt(1);\n\nvar _2n$1 = /* @__PURE__ */BigInt(2);\n\nvar _7n = /* @__PURE__ */BigInt(7);\n\nvar _256n = /* @__PURE__ */BigInt(256);\n\nvar _0x71n = /* @__PURE__ */BigInt(0x71);\n\nfor (var round = 0, R = _1n$2, x = 1, y = 0; round < 24; round++) {\n // Pi\n var _ref = [y, (2 * x + 3 * y) % 5];\n x = _ref[0];\n y = _ref[1];\n SHA3_PI.push(2 * (5 * y + x)); // Rotational\n\n SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); // Iota\n\n var t = _0n$1;\n\n for (var j = 0; j < 7; j++) {\n R = (R << _1n$2 ^ (R >> _7n) * _0x71n) % _256n;\n if (R & _2n$1) t ^= _1n$2 << (_1n$2 << /* @__PURE__ */BigInt(j)) - _1n$2;\n }\n\n _SHA3_IOTA.push(t);\n}\n\nvar _split = /* @__PURE__ */split(_SHA3_IOTA, true),\n _split2 = _slicedToArray(_split, 2),\n SHA3_IOTA_H = _split2[0],\n SHA3_IOTA_L = _split2[1]; // Left rotation (without 0, 32, 64)\n\n\nvar rotlH = function rotlH(h, l, s) {\n return s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);\n};\n\nvar rotlL = function rotlL(h, l, s) {\n return s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);\n}; // Same as keccakf1600, but allows to skip some rounds\n\n\nfunction keccakP(s) {\n var rounds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 24;\n var B = new Uint32Array(5 * 2); // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n\n for (var _round2 = 24 - rounds; _round2 < 24; _round2++) {\n // Theta θ\n for (var _x2 = 0; _x2 < 10; _x2++) {\n B[_x2] = s[_x2] ^ s[_x2 + 10] ^ s[_x2 + 20] ^ s[_x2 + 30] ^ s[_x2 + 40];\n }\n\n for (var _x4 = 0; _x4 < 10; _x4 += 2) {\n var idx1 = (_x4 + 8) % 10;\n var idx0 = (_x4 + 2) % 10;\n var B0 = B[idx0];\n var B1 = B[idx0 + 1];\n var Th = rotlH(B0, B1, 1) ^ B[idx1];\n var Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n\n for (var _y2 = 0; _y2 < 50; _y2 += 10) {\n s[_x4 + _y2] ^= Th;\n s[_x4 + _y2 + 1] ^= Tl;\n }\n } // Rho (ρ) and Pi (π)\n\n\n var curH = s[2];\n var curL = s[3];\n\n for (var _t2 = 0; _t2 < 24; _t2++) {\n var shift = SHA3_ROTL[_t2];\n\n var _Th = rotlH(curH, curL, shift);\n\n var _Tl = rotlL(curH, curL, shift);\n\n var PI = SHA3_PI[_t2];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = _Th;\n s[PI + 1] = _Tl;\n } // Chi (χ)\n\n\n for (var _y4 = 0; _y4 < 50; _y4 += 10) {\n for (var _x6 = 0; _x6 < 10; _x6++) {\n B[_x6] = s[_y4 + _x6];\n }\n\n for (var _x8 = 0; _x8 < 10; _x8++) {\n s[_y4 + _x8] ^= ~B[(_x8 + 2) % 10] & B[(_x8 + 4) % 10];\n }\n } // Iota (ι)\n\n\n s[0] ^= SHA3_IOTA_H[_round2];\n s[1] ^= SHA3_IOTA_L[_round2];\n }\n\n B.fill(0);\n}\n\nvar Keccak = /*#__PURE__*/function (_Hash) {\n _inherits(Keccak, _Hash);\n\n var _super = _createSuper(Keccak); // NOTE: we accept arguments in bytes instead of bits here.\n\n\n function Keccak(blockLen, suffix, outputLen) {\n var _this;\n\n var enableXOF = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var rounds = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 24;\n\n _classCallCheck(this, Keccak);\n\n _this = _super.call(this);\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; // Can be passed from user as dkLen\n\n number$1(outputLen); // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n\n if (0 >= _this.blockLen || _this.blockLen >= 200) throw new Error('Sha3 supports only keccak-f1600 function');\n _this.state = new Uint8Array(200);\n _this.state32 = u32$1(_this.state);\n return _this;\n }\n\n _createClass(Keccak, [{\n key: \"keccak\",\n value: function keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n }, {\n key: \"update\",\n value: function update(data) {\n exists(this);\n var blockLen = this.blockLen,\n state = this.state;\n data = toBytes(data);\n var len = data.length;\n\n for (var pos = 0; pos < len;) {\n var take = Math.min(blockLen - this.pos, len - pos);\n\n for (var i = 0; i < take; i++) {\n state[this.pos++] ^= data[pos++];\n }\n\n if (this.pos === blockLen) this.keccak();\n }\n\n return this;\n }\n }, {\n key: \"finish\",\n value: function finish() {\n if (this.finished) return;\n this.finished = true;\n var state = this.state,\n suffix = this.suffix,\n pos = this.pos,\n blockLen = this.blockLen; // Do the padding\n\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1) this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n }, {\n key: \"writeInto\",\n value: function writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n var bufferOut = this.state;\n var blockLen = this.blockLen;\n\n for (var pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen) this.keccak();\n var 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\n return out;\n }\n }, {\n key: \"xofInto\",\n value: function xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n }, {\n key: \"xof\",\n value: function xof(bytes) {\n number$1(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n }, {\n key: \"digestInto\",\n value: function digestInto(out) {\n output(out, this);\n if (this.finished) throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n }, {\n key: \"digest\",\n value: function digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n }, {\n key: \"_cloneInto\",\n value: function _cloneInto(to) {\n var blockLen = this.blockLen,\n suffix = this.suffix,\n outputLen = this.outputLen,\n rounds = this.rounds,\n enableXOF = this.enableXOF;\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; // Suffix can change in cSHAKE\n\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n }]);\n\n return Keccak;\n}(Hash);\n\nvar gen = function gen(suffix, blockLen, outputLen) {\n return wrapConstructor(function () {\n return new Keccak(blockLen, suffix, outputLen);\n });\n};\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\n\n\nvar keccak_256 = /* @__PURE__ */gen(0x01, 136, 256 / 8);\n\nfunction validatePointOpts(curve) {\n var opts = validateBasic(curve);\n validateObject(opts, {\n a: 'field',\n b: 'field'\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function'\n });\n var endo = opts.endo,\n Fp = opts.Fp,\n a = opts.a;\n\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n\n if (_typeof$1(endo) !== 'object' || typeof endo.beta !== 'bigint' || typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n\n return Object.freeze(_objectSpread2({}, opts));\n} // ASN.1 DER encoding utilities\n\n\nvar b2n = bytesToNumberBE,\n h2b = hexToBytes;\nvar DER = {\n // asn.1 DER encoding utils\n Err: /*#__PURE__*/function (_Error) {\n _inherits(DERErr, _Error);\n\n var _super = _createSuper(DERErr);\n\n function DERErr() {\n var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n _classCallCheck(this, DERErr);\n\n return _super.call(this, m);\n }\n\n return _createClass(DERErr);\n }( /*#__PURE__*/_wrapNativeSuper(Error)),\n _parseInt: function _parseInt(data) {\n var E = DER.Err;\n if (data.length < 2 || data[0] !== 0x02) throw new E('Invalid signature integer tag');\n var len = data[1];\n var res = data.subarray(2, len + 2);\n if (!len || res.length !== len) throw new E('Invalid signature integer: wrong length'); // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n\n if (res[0] & 128) throw new E('Invalid signature integer: negative');\n if (res[0] === 0x00 && !(res[1] & 128)) throw new E('Invalid signature integer: unnecessary leading zero');\n return {\n d: b2n(res),\n l: data.subarray(len + 2)\n }; // d is data, l is left\n },\n toSig: function toSig(hex) {\n // parse DER signature\n var E = DER.Err;\n var data = typeof hex === 'string' ? h2b(hex) : hex;\n if (!isBytes(data)) throw new Error('ui8a expected');\n var l = data.length;\n if (l < 2 || data[0] != 0x30) throw new E('Invalid signature tag');\n if (data[1] !== l - 2) throw new E('Invalid signature: incorrect length');\n\n var _DER$_parseInt = DER._parseInt(data.subarray(2)),\n r = _DER$_parseInt.d,\n sBytes = _DER$_parseInt.l;\n\n var _DER$_parseInt2 = DER._parseInt(sBytes),\n s = _DER$_parseInt2.d,\n rBytesLeft = _DER$_parseInt2.l;\n\n if (rBytesLeft.length) throw new E('Invalid signature: left bytes after parsing');\n return {\n r: r,\n s: s\n };\n },\n hexFromSig: function hexFromSig(sig) {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n var slice = function slice(s) {\n return Number.parseInt(s[0], 16) & 8 ? '00' + s : s;\n };\n\n var h = function h(num) {\n var hex = num.toString(16);\n return hex.length & 1 ? \"0\".concat(hex) : hex;\n };\n\n var s = slice(h(sig.s));\n var r = slice(h(sig.r));\n var shl = s.length / 2;\n var rhl = r.length / 2;\n var sl = h(shl);\n var rl = h(rhl);\n return \"30\".concat(h(rhl + shl + 4), \"02\").concat(rl).concat(r, \"02\").concat(sl).concat(s);\n }\n}; // Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\n\nvar _0n = BigInt(0),\n _1n$1 = BigInt(1);\n\nBigInt(2);\n\nvar _3n = BigInt(3);\n\nBigInt(4);\n\nfunction weierstrassPoints(opts) {\n var CURVE = validatePointOpts(opts);\n var Fp = CURVE.Fp; // All curves has same field / group length as for now, but they can differ\n\n var toBytes = CURVE.toBytes || function (_c, point, _isCompressed) {\n var a = point.toAffine();\n return concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n };\n\n var fromBytes = CURVE.fromBytes || function (bytes) {\n // const head = bytes[0];\n var tail = bytes.subarray(1); // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n\n var x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n var y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return {\n x: x,\n y: y\n };\n };\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n\n\n function weierstrassEquation(x) {\n var a = CURVE.a,\n b = CURVE.b;\n var x2 = Fp.sqr(x); // x * x\n\n var x3 = Fp.mul(x2, x); // x2 * x\n\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n } // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n\n\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx))) throw new Error('bad generator point: equation left != right'); // Valid group elements reside in range 1..n-1\n\n function isWithinCurveOrder(num) {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n\n function assertGE(num) {\n if (!isWithinCurveOrder(num)) throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n } // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n\n\n function normPrivateKeyToScalar(key) {\n var lengths = CURVE.allowedPrivateKeyLengths,\n nByteLength = CURVE.nByteLength,\n wrapPrivateKey = CURVE.wrapPrivateKey,\n n = CURVE.n;\n\n if (lengths && typeof key !== 'bigint') {\n if (isBytes(key)) key = bytesToHex(key); // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n\n if (typeof key !== 'string' || !lengths.includes(key.length)) throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n\n var num;\n\n try {\n num = typeof key === 'bigint' ? key : bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n } catch (error) {\n throw new Error(\"private key must be \".concat(nByteLength, \" bytes, hex or bigint, not \").concat(_typeof$1(key)));\n }\n\n if (wrapPrivateKey) num = mod(num, n); // disabled by default, enabled for BLS\n\n assertGE(num); // num in range [1..N-1]\n\n return num;\n }\n\n var pointPrecomputes = new Map();\n\n function assertPrjPoint(other) {\n if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n }\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n\n\n var Point = /*#__PURE__*/function () {\n function Point(px, py, pz) {\n _classCallCheck(this, Point);\n\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px)) throw new Error('x required');\n if (py == null || !Fp.isValid(py)) throw new Error('y required');\n if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n } // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n\n\n _createClass(Point, [{\n key: \"x\",\n get: function get() {\n return this.toAffine().x;\n }\n }, {\n key: \"y\",\n get: function get() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n\n }, {\n key: \"_setWindowSize\",\n value: // \"Private method\", don't use it directly\n function _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes[\"delete\"](this);\n } // A point on curve is valid if it conforms to equation.\n\n }, {\n key: \"assertValidity\",\n value: function assertValidity() {\n if (this.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(this.py)) return;\n throw new Error('bad point: ZERO');\n } // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n\n\n var _this$toAffine = this.toAffine(),\n x = _this$toAffine.x,\n y = _this$toAffine.y; // Check if x, y are valid field elements\n\n\n if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not FE');\n var left = Fp.sqr(y); // y²\n\n var right = weierstrassEquation(x); // x³ + ax + b\n\n if (!Fp.eql(left, right)) throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n }\n }, {\n key: \"hasEvenY\",\n value: function hasEvenY() {\n var _this$toAffine2 = this.toAffine(),\n y = _this$toAffine2.y;\n\n if (Fp.isOdd) return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n\n }, {\n key: \"equals\",\n value: function equals(other) {\n assertPrjPoint(other);\n var X1 = this.px,\n Y1 = this.py,\n Z1 = this.pz;\n var X2 = other.px,\n Y2 = other.py,\n Z2 = other.pz;\n var U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n var U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n\n }, {\n key: \"negate\",\n value: function negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n } // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n\n }, {\n key: \"double\",\n value: function double() {\n var a = CURVE.a,\n b = CURVE.b;\n var b3 = Fp.mul(b, _3n);\n var X1 = this.px,\n Y1 = this.py,\n Z1 = this.pz;\n var X3 = Fp.ZERO,\n Y3 = Fp.ZERO,\n Z3 = Fp.ZERO; // prettier-ignore\n\n var t0 = Fp.mul(X1, X1); // step 1\n\n var t1 = Fp.mul(Y1, Y1);\n var t2 = Fp.mul(Z1, Z1);\n var t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n } // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n\n }, {\n key: \"add\",\n value: function add(other) {\n assertPrjPoint(other);\n var X1 = this.px,\n Y1 = this.py,\n Z1 = this.pz;\n var X2 = other.px,\n Y2 = other.py,\n Z2 = other.pz;\n var X3 = Fp.ZERO,\n Y3 = Fp.ZERO,\n Z3 = Fp.ZERO; // prettier-ignore\n\n var a = CURVE.a;\n var b3 = Fp.mul(CURVE.b, _3n);\n var t0 = Fp.mul(X1, X2); // step 1\n\n var t1 = Fp.mul(Y1, Y2);\n var t2 = Fp.mul(Z1, Z2);\n var t3 = Fp.add(X1, Y1);\n var t4 = Fp.add(X2, Y2); // step 5\n\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n var t5 = Fp.add(X2, Z2); // step 10\n\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n\n return new Point(X3, Y3, Z3);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n return this.add(other.negate());\n }\n }, {\n key: \"is0\",\n value: function is0() {\n return this.equals(Point.ZERO);\n }\n }, {\n key: \"wNAF\",\n value: function wNAF(n) {\n return wnaf.wNAFCached(this, pointPrecomputes, n, function (comp) {\n var toInv = Fp.invertBatch(comp.map(function (p) {\n return p.pz;\n }));\n return comp.map(function (p, i) {\n return p.toAffine(toInv[i]);\n }).map(Point.fromAffine);\n });\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n\n }, {\n key: \"multiplyUnsafe\",\n value: function multiplyUnsafe(n) {\n var I = Point.ZERO;\n if (n === _0n) return I;\n assertGE(n); // Will throw on 0\n\n if (n === _1n$1) return this;\n var endo = CURVE.endo;\n if (!endo) return wnaf.unsafeLadder(this, n); // Apply endomorphism\n\n var _endo$splitScalar = endo.splitScalar(n),\n k1neg = _endo$splitScalar.k1neg,\n k1 = _endo$splitScalar.k1,\n k2neg = _endo$splitScalar.k2neg,\n k2 = _endo$splitScalar.k2;\n\n var k1p = I;\n var k2p = I;\n var d = this;\n\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n$1) k1p = k1p.add(d);\n if (k2 & _1n$1) k2p = k2p.add(d);\n d = d[\"double\"]();\n k1 >>= _1n$1;\n k2 >>= _1n$1;\n }\n\n if (k1neg) k1p = k1p.negate();\n if (k2neg) k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n\n }, {\n key: \"multiply\",\n value: function multiply(scalar) {\n assertGE(scalar);\n var n = scalar;\n var point, fake; // Fake point is used to const-time mult\n\n var endo = CURVE.endo;\n\n if (endo) {\n var _endo$splitScalar3 = endo.splitScalar(n),\n k1neg = _endo$splitScalar3.k1neg,\n k1 = _endo$splitScalar3.k1,\n k2neg = _endo$splitScalar3.k2neg,\n k2 = _endo$splitScalar3.k2;\n\n var _this$wNAF2 = this.wNAF(k1),\n k1p = _this$wNAF2.p,\n f1p = _this$wNAF2.f;\n\n var _this$wNAF4 = this.wNAF(k2),\n k2p = _this$wNAF4.p,\n f2p = _this$wNAF4.f;\n\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n } else {\n var _this$wNAF6 = this.wNAF(n),\n p = _this$wNAF6.p,\n f = _this$wNAF6.f;\n\n point = p;\n fake = f;\n } // Normalize `z` for both points, but return only real one\n\n\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n\n }, {\n key: \"multiplyAndAddUnsafe\",\n value: function multiplyAndAddUnsafe(Q, a, b) {\n var G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n\n var mul = function mul(P, a // Select faster multiply() method\n ) {\n return a === _0n || a === _1n$1 || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a);\n };\n\n var sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n } // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n\n }, {\n key: \"toAffine\",\n value: function toAffine(iz) {\n var x = this.px,\n y = this.py,\n z = this.pz;\n var is0 = this.is0(); // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n\n if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(z);\n var ax = Fp.mul(x, iz);\n var ay = Fp.mul(y, iz);\n var zz = Fp.mul(z, iz);\n if (is0) return {\n x: Fp.ZERO,\n y: Fp.ZERO\n };\n if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n return {\n x: ax,\n y: ay\n };\n }\n }, {\n key: \"isTorsionFree\",\n value: function isTorsionFree() {\n var cofactor = CURVE.h,\n isTorsionFree = CURVE.isTorsionFree;\n if (cofactor === _1n$1) return true; // No subgroups, always torsion-free\n\n if (isTorsionFree) return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n }, {\n key: \"clearCofactor\",\n value: function clearCofactor() {\n var cofactor = CURVE.h,\n clearCofactor = CURVE.clearCofactor;\n if (cofactor === _1n$1) return this; // Fast-path\n\n if (clearCofactor) return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n }, {\n key: \"toRawBytes\",\n value: function toRawBytes() {\n var isCompressed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n }, {\n key: \"toHex\",\n value: function toHex() {\n var isCompressed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return bytesToHex(this.toRawBytes(isCompressed));\n }\n }], [{\n key: \"fromAffine\",\n value: function fromAffine(p) {\n var _ref = p || {},\n x = _ref.x,\n y = _ref.y;\n\n if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n if (p instanceof Point) throw new Error('projective point not allowed');\n\n var is0 = function is0(i) {\n return Fp.eql(i, Fp.ZERO);\n }; // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n\n\n if (is0(x) && is0(y)) return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n }, {\n key: \"normalizeZ\",\n value: function normalizeZ(points) {\n var toInv = Fp.invertBatch(points.map(function (p) {\n return p.pz;\n }));\n return points.map(function (p, i) {\n return p.toAffine(toInv[i]);\n }).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n\n }, {\n key: \"fromHex\",\n value: function fromHex(hex) {\n var P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n } // Multiplies generator point by privateKey.\n\n }, {\n key: \"fromPrivateKey\",\n value: function fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n }]);\n\n return Point;\n }();\n\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n var _bits = CURVE.nBitLength;\n var wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits); // Validate if generator point is on curve\n\n return {\n CURVE: CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n weierstrassEquation: weierstrassEquation,\n isWithinCurveOrder: isWithinCurveOrder\n };\n}\n\nfunction validateOpts(curve) {\n var opts = validateBasic(curve);\n validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function'\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean'\n });\n return Object.freeze(_objectSpread2({\n lowS: true\n }, opts));\n}\n\nfunction weierstrass(curveDef) {\n var CURVE = validateOpts(curveDef);\n var Fp = CURVE.Fp,\n CURVE_ORDER = CURVE.n;\n var compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n\n var uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n\n function isValidFieldElement(num) {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n\n function modN(a) {\n return mod(a, CURVE_ORDER);\n }\n\n function invN(a) {\n return invert(a, CURVE_ORDER);\n }\n\n var _weierstrassPoints = weierstrassPoints(_objectSpread2(_objectSpread2({}, CURVE), {}, {\n toBytes: function toBytes(_c, point, isCompressed) {\n var a = point.toAffine();\n var x = Fp.toBytes(a.x);\n var cat = concatBytes;\n\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n } else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes: function fromBytes(bytes) {\n var len = bytes.length;\n var head = bytes[0];\n var tail = bytes.subarray(1); // this.assertValidity() is done inside of fromHex\n\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n var x = bytesToNumberBE(tail);\n if (!isValidFieldElement(x)) throw new Error('Point is not on curve');\n var y2 = weierstrassEquation(x); // y² = x³ + ax + b\n\n var y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n\n var isYOdd = (y & _1n$1) === _1n$1; // ECDSA\n\n var isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n return {\n x: x,\n y: y\n };\n } else if (len === uncompressedLen && head === 0x04) {\n var _x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n\n var _y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n\n return {\n x: _x,\n y: _y\n };\n } else {\n throw new Error(\"Point of length \".concat(len, \" was invalid. Expected \").concat(compressedLen, \" compressed bytes or \").concat(uncompressedLen, \" uncompressed bytes\"));\n }\n }\n })),\n Point = _weierstrassPoints.ProjectivePoint,\n normPrivateKeyToScalar = _weierstrassPoints.normPrivateKeyToScalar,\n weierstrassEquation = _weierstrassPoints.weierstrassEquation,\n isWithinCurveOrder = _weierstrassPoints.isWithinCurveOrder;\n\n var numToNByteStr = function numToNByteStr(num) {\n return bytesToHex(numberToBytesBE(num, CURVE.nByteLength));\n };\n\n function isBiggerThanHalfOrder(number) {\n var HALF = CURVE_ORDER >> _1n$1;\n return number > HALF;\n }\n\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n } // slice bytes num\n\n\n var slcNum = function slcNum(b, from, to) {\n return bytesToNumberBE(b.slice(from, to));\n };\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n\n\n var Signature = /*#__PURE__*/function () {\n function Signature(r, s, recovery) {\n _classCallCheck(this, Signature);\n\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n } // pair (bytes of r, bytes of s)\n\n\n _createClass(Signature, [{\n key: \"assertValidity\",\n value: function assertValidity() {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r)) throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s)) throw new Error('s must be 0 < s < CURVE.n');\n }\n }, {\n key: \"addRecoveryBit\",\n value: function addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n }, {\n key: \"recoverPublicKey\",\n value: function recoverPublicKey(msgHash) {\n var r = this.r,\n s = this.s,\n rec = this.recovery;\n var h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n\n if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n var radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER) throw new Error('recovery id 2 or 3 invalid');\n var prefix = (rec & 1) === 0 ? '02' : '03';\n var R = Point.fromHex(prefix + numToNByteStr(radj));\n var ir = invN(radj); // r^-1\n\n var u1 = modN(-h * ir); // -hr^-1\n\n var u2 = modN(s * ir); // sr^-1\n\n var Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n\n if (!Q) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n\n Q.assertValidity();\n return Q;\n } // Signatures should be low-s, to prevent malleability.\n\n }, {\n key: \"hasHighS\",\n value: function hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n }, {\n key: \"normalizeS\",\n value: function normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n } // DER-encoded\n\n }, {\n key: \"toDERRawBytes\",\n value: function toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n }, {\n key: \"toDERHex\",\n value: function toDERHex() {\n return DER.hexFromSig({\n r: this.r,\n s: this.s\n });\n } // padded bytes of r, then padded bytes of s\n\n }, {\n key: \"toCompactRawBytes\",\n value: function toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n }, {\n key: \"toCompactHex\",\n value: function toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }], [{\n key: \"fromCompact\",\n value: function fromCompact(hex) {\n var l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n } // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n\n }, {\n key: \"fromDER\",\n value: function fromDER(hex) {\n var _DER$toSig = DER.toSig(ensureBytes('DER', hex)),\n r = _DER$toSig.r,\n s = _DER$toSig.s;\n\n return new Signature(r, s);\n }\n }]);\n\n return Signature;\n }();\n\n var utils = {\n isValidPrivateKey: function isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n } catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: function randomPrivateKey() {\n var length = getMinHashLength(CURVE.n);\n return mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute: function precompute() {\n var windowSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n var point = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Point.BASE;\n\n point._setWindowSize(windowSize);\n\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n\n return point;\n }\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n\n function getPublicKey(privateKey) {\n var isCompressed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n\n\n function isProbPub(item) {\n var arr = isBytes(item);\n var str = typeof item === 'string';\n var len = (arr || str) && item.length;\n if (arr) return len === compressedLen || len === uncompressedLen;\n if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point) return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n\n\n function getSharedSecret(privateA, publicB) {\n var isCompressed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (isProbPub(privateA)) throw new Error('first arg must be private key');\n if (!isProbPub(publicB)) throw new Error('second arg must be public key');\n var b = Point.fromHex(publicB); // check for being on-curve\n\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n } // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n\n\n var bits2int = CURVE.bits2int || function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n var num = bytesToNumberBE(bytes); // check for == u8 done here\n\n var delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n\n var bits2int_modN = CURVE.bits2int_modN || function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n }; // NOTE: pads output with zero as per spec\n\n\n var ORDER_MASK = bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n\n function int2octets(num) {\n if (typeof num !== 'bigint') throw new Error('bigint expected');\n if (!(_0n <= num && num < ORDER_MASK)) throw new Error(\"bigint expected < 2^\".concat(CURVE.nBitLength)); // works with order, can have different size than numToField!\n\n return numberToBytesBE(num, CURVE.nByteLength);\n } // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n\n\n function prepSig(msgHash, privateKey) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultSigOpts;\n if (['recovered', 'canonical'].some(function (k) {\n return k in opts;\n })) throw new Error('sign() legacy options not supported');\n var hash = CURVE.hash,\n randomBytes = CURVE.randomBytes;\n var lowS = opts.lowS,\n prehash = opts.prehash,\n ent = opts.extraEntropy; // generates low-s sigs by default\n\n if (lowS == null) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n\n msgHash = ensureBytes('msgHash', msgHash);\n if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash)); // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n\n var h1int = bits2int_modN(msgHash);\n var d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n\n var seedArgs = [int2octets(d), int2octets(h1int)]; // extraEntropy. RFC6979 3.6: additional k' (optional).\n\n if (ent != null) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n var e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n\n var seed = concatBytes.apply(ut, seedArgs); // Step D of RFC6979 3.2\n\n var m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n var k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n\n if (!isWithinCurveOrder(k)) return; // Important: all mod() calls here must be done over N\n\n var ik = invN(k); // k^-1 mod n\n\n var q = Point.BASE.multiply(k).toAffine(); // q = Gk\n\n var r = modN(q.x); // r = q.x mod n\n\n if (r === _0n) return; // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n\n var s = modN(ik * modN(m + r * d)); // Not using blinding here\n\n if (s === _0n) return;\n var recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n$1); // recovery bit (2 or 3, when q.x > n)\n\n var normS = s;\n\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n\n recovery ^= 1; // // in the bottom half of N\n }\n\n return new Signature(r, normS, recovery); // use normS, not s\n }\n\n return {\n seed: seed,\n k2sig: k2sig\n };\n }\n\n var defaultSigOpts = {\n lowS: CURVE.lowS,\n prehash: false\n };\n var defaultVerOpts = {\n lowS: CURVE.lowS,\n prehash: false\n };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n\n function sign(msgHash, privKey) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultSigOpts;\n\n var _prepSig = prepSig(msgHash, privKey, opts),\n seed = _prepSig.seed,\n k2sig = _prepSig.k2sig; // Steps A, D of RFC6979 3.2.\n\n\n var C = CURVE;\n var drbg = createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n } // Enable precomputes. Slows down first publicKey computation by 20ms.\n\n\n Point.BASE._setWindowSize(8); // utils.precompute(8, ProjectivePoint.BASE)\n\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n\n\n function verify(signature, msgHash, publicKey) {\n var _Point$BASE$multiplyA;\n\n var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultVerOpts;\n var sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n var lowS = opts.lowS,\n prehash = opts.prehash;\n var _sig = undefined;\n var P;\n\n try {\n if (typeof sg === 'string' || isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n } catch (derError) {\n if (!(derError instanceof DER.Err)) throw derError;\n _sig = Signature.fromCompact(sg);\n }\n } else if (_typeof$1(sg) === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n var _r = sg.r,\n _s = sg.s;\n _sig = new Signature(_r, _s);\n } else {\n throw new Error('PARSE');\n }\n\n P = Point.fromHex(publicKey);\n } catch (error) {\n if (error.message === 'PARSE') throw new Error(\"signature must be Signature instance, Uint8Array or hex string\");\n return false;\n }\n\n if (lowS && _sig.hasHighS()) return false;\n if (prehash) msgHash = CURVE.hash(msgHash);\n var _sig2 = _sig,\n r = _sig2.r,\n s = _sig2.s;\n var h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n\n var is = invN(s); // s^-1\n\n var u1 = modN(h * is); // u1 = hs^-1 mod n\n\n var u2 = modN(r * is); // u2 = rs^-1 mod n\n\n var R = (_Point$BASE$multiplyA = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)) === null || _Point$BASE$multiplyA === void 0 ? void 0 : _Point$BASE$multiplyA.toAffine(); // R = u1⋅G + u2⋅P\n\n if (!R) return false;\n var v = modN(R.x);\n return v === r;\n }\n\n return {\n CURVE: CURVE,\n getPublicKey: getPublicKey,\n getSharedSecret: getSharedSecret,\n sign: sign,\n verify: verify,\n ProjectivePoint: Point,\n Signature: Signature,\n utils: utils\n };\n}\n\nvar HMAC = /*#__PURE__*/function (_Hash) {\n _inherits(HMAC, _Hash);\n\n var _super = _createSuper(HMAC);\n\n function HMAC(hash$1, _key) {\n var _this;\n\n _classCallCheck(this, HMAC);\n\n _this = _super.call(this);\n _this.finished = false;\n _this.destroyed = false;\n hash(hash$1);\n var key = toBytes(_key);\n _this.iHash = hash$1.create();\n if (typeof _this.iHash.update !== 'function') throw new Error('Expected instance of class which extends utils.Hash');\n _this.blockLen = _this.iHash.blockLen;\n _this.outputLen = _this.iHash.outputLen;\n var blockLen = _this.blockLen;\n var pad = new Uint8Array(blockLen); // blockLen can be bigger than outputLen\n\n pad.set(key.length > blockLen ? hash$1.create().update(key).digest() : key);\n\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n\n _this.iHash.update(pad); // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n\n\n _this.oHash = hash$1.create(); // Undo internal XOR && apply outer XOR\n\n for (var _i2 = 0; _i2 < pad.length; _i2++) {\n pad[_i2] ^= 0x36 ^ 0x5c;\n }\n\n _this.oHash.update(pad);\n\n pad.fill(0);\n return _this;\n }\n\n _createClass(HMAC, [{\n key: \"update\",\n value: function update(buf) {\n exists(this);\n this.iHash.update(buf);\n return this;\n }\n }, {\n key: \"digestInto\",\n value: function digestInto(out) {\n exists(this);\n bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n }, {\n key: \"digest\",\n value: function digest() {\n var out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n }, {\n key: \"_cloneInto\",\n value: function _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n var oHash = this.oHash,\n iHash = this.iHash,\n finished = this.finished,\n destroyed = this.destroyed,\n blockLen = this.blockLen,\n outputLen = this.outputLen;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n }]);\n\n return HMAC;\n}(Hash);\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\n\n\nvar hmac = function hmac(hash, key, message) {\n return new HMAC(hash, key).update(message).digest();\n};\n\nhmac.create = function (hash, key) {\n return new HMAC(hash, key);\n};\n\nfunction getHash(hash) {\n return {\n hash: hash,\n hmac: function hmac$1(key) {\n for (var _len = arguments.length, msgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n msgs[_key - 1] = arguments[_key];\n }\n\n return hmac(hash, key, concatBytes$1.apply(void 0, msgs));\n },\n randomBytes: randomBytes\n };\n}\n\nfunction createCurve(curveDef, defHash) {\n var create = function create(hash) {\n return weierstrass(_objectSpread2(_objectSpread2({}, curveDef), getHash(hash)));\n };\n\n return Object.freeze(_objectSpread2(_objectSpread2({}, create(defHash)), {}, {\n create: create\n }));\n}\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n\nvar secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nvar secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\n\nvar _1n = BigInt(1);\n\nvar _2n = BigInt(2);\n\nvar divNearest = function divNearest(a, b) {\n return (a + b / _2n) / b;\n};\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\n\n\nfunction sqrtMod(y) {\n var P = secp256k1P; // prettier-ignore\n\n var _3n = BigInt(3),\n _6n = BigInt(6),\n _11n = BigInt(11),\n _22n = BigInt(22); // prettier-ignore\n\n\n var _23n = BigInt(23),\n _44n = BigInt(44),\n _88n = BigInt(88);\n\n var b2 = y * y * y % P; // x^3, 11\n\n var b3 = b2 * b2 * y % P; // x^7\n\n var b6 = pow2(b3, _3n, P) * b3 % P;\n var b9 = pow2(b6, _3n, P) * b3 % P;\n var b11 = pow2(b9, _2n, P) * b2 % P;\n var b22 = pow2(b11, _11n, P) * b11 % P;\n var b44 = pow2(b22, _22n, P) * b22 % P;\n var b88 = pow2(b44, _44n, P) * b44 % P;\n var b176 = pow2(b88, _88n, P) * b88 % P;\n var b220 = pow2(b176, _44n, P) * b44 % P;\n var b223 = pow2(b220, _3n, P) * b3 % P;\n var t1 = pow2(b223, _23n, P) * b22 % P;\n var t2 = pow2(t1, _6n, P) * b2 % P;\n var root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y)) throw new Error('Cannot find square root');\n return root;\n}\n\nvar Fp = Field(secp256k1P, undefined, undefined, {\n sqrt: sqrtMod\n});\nvar secp256k1 = createCurve({\n a: BigInt(0),\n // equation params: a, b\n b: BigInt(7),\n // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp: Fp,\n // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N,\n // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n // Cofactor\n lowS: true,\n // Allow only low-S signatures by default in sign() and verify()\n\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: function splitScalar(k) {\n var n = secp256k1N;\n var a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n var b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n var a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n var b2 = a1;\n var POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n\n var c1 = divNearest(b2 * k, n);\n var c2 = divNearest(-b1 * k, n);\n var k1 = mod(k - c1 * a1 - c2 * a2, n);\n var k2 = mod(-c1 * b1 - c2 * b2, n);\n var k1neg = k1 > POW_2_128;\n var k2neg = k2 > POW_2_128;\n if (k1neg) k1 = n - k1;\n if (k2neg) k2 = n - k2;\n\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n\n return {\n k1neg: k1neg,\n k1: k1,\n k2neg: k2neg,\n k2: k2\n };\n }\n }\n}, sha256); // Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n\nBigInt(0);\nsecp256k1.ProjectivePoint;\nvar _excluded = [\"commitment\"],\n _excluded2 = [\"encoding\"],\n _excluded3 = [\"commitment\"],\n _excluded4 = [\"commitment\"];\n/**\n * A 64 byte secret key, the first 32 bytes of which is the\n * private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n\n/**\n * Ed25519 Keypair\n */\n\nvar generatePrivateKey = ed25519.utils.randomPrivateKey;\n\nvar generateKeypair = function generateKeypair() {\n var privateScalar = ed25519.utils.randomPrivateKey();\n var publicKey = getPublicKey(privateScalar);\n var secretKey = new Uint8Array(64);\n secretKey.set(privateScalar);\n secretKey.set(publicKey, 32);\n return {\n publicKey: publicKey,\n secretKey: secretKey\n };\n};\n\nvar getPublicKey = ed25519.getPublicKey;\n\nfunction _isOnCurve(publicKey) {\n try {\n ed25519.ExtendedPoint.fromHex(publicKey);\n return true;\n } catch (_unused) {\n return false;\n }\n}\n\nvar _sign = function sign(message, secretKey) {\n return ed25519.sign(message, secretKey.slice(0, 32));\n};\n\nvar verify = ed25519.verify;\n\nvar toBuffer = function toBuffer(arr) {\n if (Buffer$1.isBuffer(arr)) {\n return arr;\n } else if (arr instanceof Uint8Array) {\n return Buffer$1.from(arr.buffer, arr.byteOffset, arr.byteLength);\n } else {\n return Buffer$1.from(arr);\n }\n}; // Class wrapping a plain object\n\n\nvar Struct = /*#__PURE__*/function () {\n function Struct(properties) {\n _classCallCheck(this, Struct);\n\n Object.assign(this, properties);\n }\n\n _createClass(Struct, [{\n key: \"encode\",\n value: function encode() {\n return Buffer$1.from(serialize_1(SOLANA_SCHEMA, this));\n }\n }], [{\n key: \"decode\",\n value: function decode(data) {\n return deserialize_1(SOLANA_SCHEMA, this, data);\n }\n }, {\n key: \"decodeUnchecked\",\n value: function decodeUnchecked(data) {\n return deserializeUnchecked_1(SOLANA_SCHEMA, this, data);\n }\n }]);\n\n return Struct;\n}(); // Class representing a Rust-compatible enum, since enums are only strings or\n// numbers in pure JS\n\n\nvar Enum = /*#__PURE__*/function (_Struct) {\n _inherits(Enum, _Struct);\n\n var _super = _createSuper(Enum);\n\n function Enum(properties) {\n var _this;\n\n _classCallCheck(this, Enum);\n\n _this = _super.call(this, properties);\n _this[\"enum\"] = '';\n\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n\n Object.keys(properties).map(function (key) {\n _this[\"enum\"] = key;\n });\n return _this;\n }\n\n return _createClass(Enum);\n}(Struct);\n\nvar SOLANA_SCHEMA = new Map();\n\nvar _class;\n\nvar _Symbol$toStringTag;\n/**\n * Maximum length of derived pubkey seed\n */\n\n\nvar MAX_SEED_LENGTH = 32;\n/**\n * Size of public key in bytes\n */\n\nvar PUBLIC_KEY_LENGTH = 32;\n/**\n * Value to be converted into public key\n */\n\n/**\n * JSON object representation of PublicKey class\n */\n\nfunction isPublicKeyData(value) {\n return value._bn !== undefined;\n} // local counter used by PublicKey.unique()\n\n\nvar uniquePublicKeyCounter = 1;\n/**\n * A public key\n */\n\n_Symbol$toStringTag = Symbol.toStringTag;\n\nvar PublicKey = /*#__PURE__*/function (_Struct2, _Symbol$toStringTag2) {\n _inherits(PublicKey, _Struct2);\n\n var _super2 = _createSuper(PublicKey);\n /**\n * Create a new PublicKey object\n * @param value ed25519 public key as buffer or base-58 encoded string\n */\n\n\n function PublicKey(value) {\n var _this2;\n\n _classCallCheck(this, PublicKey);\n\n _this2 = _super2.call(this, {});\n /** @internal */\n\n _this2._bn = void 0;\n\n if (isPublicKeyData(value)) {\n _this2._bn = value._bn;\n } else {\n if (typeof value === 'string') {\n // assume base 58 encoding by default\n var decoded = bs58$5.decode(value);\n\n if (decoded.length != PUBLIC_KEY_LENGTH) {\n throw new Error(\"Invalid public key input\");\n }\n\n _this2._bn = new BN$1(decoded);\n } else {\n _this2._bn = new BN$1(value);\n }\n\n if (_this2._bn.byteLength() > PUBLIC_KEY_LENGTH) {\n throw new Error(\"Invalid public key input\");\n }\n }\n\n return _this2;\n }\n /**\n * Returns a unique PublicKey for tests and benchmarks using a counter\n */\n\n\n _createClass(PublicKey, [{\n key: \"equals\",\n value:\n /**\n * Default public key value. The base58-encoded string representation is all ones (as seen below)\n * The underlying BN number is 32 bytes that are all zeros\n */\n\n /**\n * Checks if two publicKeys are equal\n */\n function equals(publicKey) {\n return this._bn.eq(publicKey._bn);\n }\n /**\n * Return the base-58 representation of the public key\n */\n\n }, {\n key: \"toBase58\",\n value: function toBase58() {\n return bs58$5.encode(this.toBytes());\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.toBase58();\n }\n /**\n * Return the byte array representation of the public key in big endian\n */\n\n }, {\n key: \"toBytes\",\n value: function toBytes() {\n var buf = this.toBuffer();\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Return the Buffer representation of the public key in big endian\n */\n\n }, {\n key: \"toBuffer\",\n value: function toBuffer() {\n var b = this._bn.toArrayLike(Buffer$1);\n\n if (b.length === PUBLIC_KEY_LENGTH) {\n return b;\n }\n\n var zeroPad = Buffer$1.alloc(32);\n b.copy(zeroPad, 32 - b.length);\n return zeroPad;\n }\n }, {\n key: _Symbol$toStringTag2,\n get: function get() {\n return \"PublicKey(\".concat(this.toString(), \")\");\n }\n /**\n * Return the base-58 representation of the public key\n */\n\n }, {\n key: \"toString\",\n value: function toString() {\n return this.toBase58();\n }\n /**\n * Derive a public key from another key, a seed, and a program ID.\n * The program ID will also serve as the owner of the public key, giving\n * it permission to write data to the account.\n */\n\n /* eslint-disable require-await */\n\n }], [{\n key: \"unique\",\n value: function unique() {\n var key = new PublicKey(uniquePublicKeyCounter);\n uniquePublicKeyCounter += 1;\n return new PublicKey(key.toBuffer());\n }\n }, {\n key: \"createWithSeed\",\n value: function () {\n var _createWithSeed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fromPublicKey, seed, programId) {\n var buffer, publicKeyBytes;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n buffer = Buffer$1.concat([fromPublicKey.toBuffer(), Buffer$1.from(seed), programId.toBuffer()]);\n publicKeyBytes = sha256(buffer);\n return _context.abrupt(\"return\", new PublicKey(publicKeyBytes));\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function createWithSeed(_x, _x2, _x3) {\n return _createWithSeed.apply(this, arguments);\n }\n\n return createWithSeed;\n }()\n /**\n * Derive a program address from seeds and a program ID.\n */\n\n /* eslint-disable require-await */\n\n }, {\n key: \"createProgramAddressSync\",\n value: function createProgramAddressSync(seeds, programId) {\n var buffer = Buffer$1.alloc(0);\n seeds.forEach(function (seed) {\n if (seed.length > MAX_SEED_LENGTH) {\n throw new TypeError(\"Max seed length exceeded\");\n }\n\n buffer = Buffer$1.concat([buffer, toBuffer(seed)]);\n });\n buffer = Buffer$1.concat([buffer, programId.toBuffer(), Buffer$1.from('ProgramDerivedAddress')]);\n var publicKeyBytes = sha256(buffer);\n\n if (_isOnCurve(publicKeyBytes)) {\n throw new Error(\"Invalid seeds, address must fall off the curve\");\n }\n\n return new PublicKey(publicKeyBytes);\n }\n /**\n * Async version of createProgramAddressSync\n * For backwards compatibility\n *\n * @deprecated Use {@link createProgramAddressSync} instead\n */\n\n /* eslint-disable require-await */\n\n }, {\n key: \"createProgramAddress\",\n value: function () {\n var _createProgramAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(seeds, programId) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", this.createProgramAddressSync(seeds, programId));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function createProgramAddress(_x4, _x5) {\n return _createProgramAddress.apply(this, arguments);\n }\n\n return createProgramAddress;\n }()\n /**\n * Find a valid program address\n *\n * Valid program addresses must fall off the ed25519 curve. This function\n * iterates a nonce until it finds one that when combined with the seeds\n * results in a valid program address.\n */\n\n }, {\n key: \"findProgramAddressSync\",\n value: function findProgramAddressSync(seeds, programId) {\n var nonce = 255;\n var address;\n\n while (nonce != 0) {\n try {\n var seedsWithNonce = seeds.concat(Buffer$1.from([nonce]));\n address = this.createProgramAddressSync(seedsWithNonce, programId);\n } catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n\n nonce--;\n continue;\n }\n\n return [address, nonce];\n }\n\n throw new Error(\"Unable to find a viable program address nonce\");\n }\n /**\n * Async version of findProgramAddressSync\n * For backwards compatibility\n *\n * @deprecated Use {@link findProgramAddressSync} instead\n */\n\n }, {\n key: \"findProgramAddress\",\n value: function () {\n var _findProgramAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(seeds, programId) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", this.findProgramAddressSync(seeds, programId));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function findProgramAddress(_x6, _x7) {\n return _findProgramAddress.apply(this, arguments);\n }\n\n return findProgramAddress;\n }()\n /**\n * Check that a pubkey is on the ed25519 curve.\n */\n\n }, {\n key: \"isOnCurve\",\n value: function isOnCurve(pubkeyData) {\n var pubkey = new PublicKey(pubkeyData);\n return _isOnCurve(pubkey.toBytes());\n }\n }]);\n\n return PublicKey;\n}(Struct, _Symbol$toStringTag);\n\n_class = PublicKey;\nPublicKey[\"default\"] = new _class('11111111111111111111111111111111');\nSOLANA_SCHEMA.set(PublicKey, {\n kind: 'struct',\n fields: [['_bn', 'u256']]\n});\n/**\n * An account key pair (public and secret keys).\n *\n * @deprecated since v1.10.0, please use {@link Keypair} instead.\n */\n\nvar Account = /*#__PURE__*/function () {\n /**\n * Create a new Account object\n *\n * If the secretKey parameter is not provided a new key pair is randomly\n * created for the account\n *\n * @param secretKey Secret key for the account\n */\n function Account(secretKey) {\n _classCallCheck(this, Account);\n /** @internal */\n\n\n this._publicKey = void 0;\n /** @internal */\n\n this._secretKey = void 0;\n\n if (secretKey) {\n var secretKeyBuffer = toBuffer(secretKey);\n\n if (secretKey.length !== 64) {\n throw new Error('bad secret key size');\n }\n\n this._publicKey = secretKeyBuffer.slice(32, 64);\n this._secretKey = secretKeyBuffer.slice(0, 32);\n } else {\n this._secretKey = toBuffer(generatePrivateKey());\n this._publicKey = toBuffer(getPublicKey(this._secretKey));\n }\n }\n /**\n * The public key for this account\n */\n\n\n _createClass(Account, [{\n key: \"publicKey\",\n get: function get() {\n return new PublicKey(this._publicKey);\n }\n /**\n * The **unencrypted** secret key for this account. The first 32 bytes\n * is the private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n\n }, {\n key: \"secretKey\",\n get: function get() {\n return Buffer$1.concat([this._secretKey, this._publicKey], 64);\n }\n }]);\n\n return Account;\n}();\n\nvar BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey('BPFLoader1111111111111111111111111111111111');\n/**\n * Maximum over-the-wire size of a Transaction\n *\n * 1280 is IPv6 minimum MTU\n * 40 bytes is the size of the IPv6 header\n * 8 bytes is the size of the fragment header\n */\n\nvar PACKET_DATA_SIZE = 1280 - 40 - 8;\nvar VERSION_PREFIX_MASK = 0x7f;\nvar SIGNATURE_LENGTH_IN_BYTES = 64;\n\nvar TransactionExpiredBlockheightExceededError = /*#__PURE__*/function (_Error) {\n _inherits(TransactionExpiredBlockheightExceededError, _Error);\n\n var _super3 = _createSuper(TransactionExpiredBlockheightExceededError);\n\n function TransactionExpiredBlockheightExceededError(signature) {\n var _this3;\n\n _classCallCheck(this, TransactionExpiredBlockheightExceededError);\n\n _this3 = _super3.call(this, \"Signature \".concat(signature, \" has expired: block height exceeded.\"));\n _this3.signature = void 0;\n _this3.signature = signature;\n return _this3;\n }\n\n return _createClass(TransactionExpiredBlockheightExceededError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nObject.defineProperty(TransactionExpiredBlockheightExceededError.prototype, 'name', {\n value: 'TransactionExpiredBlockheightExceededError'\n});\n\nvar TransactionExpiredTimeoutError = /*#__PURE__*/function (_Error2) {\n _inherits(TransactionExpiredTimeoutError, _Error2);\n\n var _super4 = _createSuper(TransactionExpiredTimeoutError);\n\n function TransactionExpiredTimeoutError(signature, timeoutSeconds) {\n var _this4;\n\n _classCallCheck(this, TransactionExpiredTimeoutError);\n\n _this4 = _super4.call(this, \"Transaction was not confirmed in \".concat(timeoutSeconds.toFixed(2), \" seconds. It is \") + 'unknown if it succeeded or failed. Check signature ' + \"\".concat(signature, \" using the Solana Explorer or CLI tools.\"));\n _this4.signature = void 0;\n _this4.signature = signature;\n return _this4;\n }\n\n return _createClass(TransactionExpiredTimeoutError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nObject.defineProperty(TransactionExpiredTimeoutError.prototype, 'name', {\n value: 'TransactionExpiredTimeoutError'\n});\n\nvar TransactionExpiredNonceInvalidError = /*#__PURE__*/function (_Error3) {\n _inherits(TransactionExpiredNonceInvalidError, _Error3);\n\n var _super5 = _createSuper(TransactionExpiredNonceInvalidError);\n\n function TransactionExpiredNonceInvalidError(signature) {\n var _this5;\n\n _classCallCheck(this, TransactionExpiredNonceInvalidError);\n\n _this5 = _super5.call(this, \"Signature \".concat(signature, \" has expired: the nonce is no longer valid.\"));\n _this5.signature = void 0;\n _this5.signature = signature;\n return _this5;\n }\n\n return _createClass(TransactionExpiredNonceInvalidError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nObject.defineProperty(TransactionExpiredNonceInvalidError.prototype, 'name', {\n value: 'TransactionExpiredNonceInvalidError'\n});\n\nvar MessageAccountKeys = /*#__PURE__*/function () {\n function MessageAccountKeys(staticAccountKeys, accountKeysFromLookups) {\n _classCallCheck(this, MessageAccountKeys);\n\n this.staticAccountKeys = void 0;\n this.accountKeysFromLookups = void 0;\n this.staticAccountKeys = staticAccountKeys;\n this.accountKeysFromLookups = accountKeysFromLookups;\n }\n\n _createClass(MessageAccountKeys, [{\n key: \"keySegments\",\n value: function keySegments() {\n var keySegments = [this.staticAccountKeys];\n\n if (this.accountKeysFromLookups) {\n keySegments.push(this.accountKeysFromLookups.writable);\n keySegments.push(this.accountKeysFromLookups.readonly);\n }\n\n return keySegments;\n }\n }, {\n key: \"get\",\n value: function get(index) {\n var _iterator = _createForOfIteratorHelper(this.keySegments()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var keySegment = _step.value;\n\n if (index < keySegment.length) {\n return keySegment[index];\n } else {\n index -= keySegment.length;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return;\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.keySegments().flat().length;\n }\n }, {\n key: \"compileInstructions\",\n value: function compileInstructions(instructions) {\n // Bail early if any account indexes would overflow a u8\n var U8_MAX = 255;\n\n if (this.length > U8_MAX + 1) {\n throw new Error('Account index overflow encountered during compilation');\n }\n\n var keyIndexMap = new Map();\n this.keySegments().flat().forEach(function (key, index) {\n keyIndexMap.set(key.toBase58(), index);\n });\n\n var findKeyIndex = function findKeyIndex(key) {\n var keyIndex = keyIndexMap.get(key.toBase58());\n if (keyIndex === undefined) throw new Error('Encountered an unknown instruction account key during compilation');\n return keyIndex;\n };\n\n return instructions.map(function (instruction) {\n return {\n programIdIndex: findKeyIndex(instruction.programId),\n accountKeyIndexes: instruction.keys.map(function (meta) {\n return findKeyIndex(meta.pubkey);\n }),\n data: instruction.data\n };\n });\n }\n }]);\n\n return MessageAccountKeys;\n}();\n/**\n * Layout for a public key\n */\n\n\nvar publicKey = function publicKey() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'publicKey';\n return blob$1(32, property);\n};\n/**\n * Layout for a signature\n */\n\n\nvar signature = function signature() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'signature';\n return blob$1(64, property);\n};\n/**\n * Layout for a Rust String type\n */\n\n\nvar rustString = function rustString() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'string';\n var rsl = struct([u32('length'), u32('lengthPadding'), blob$1(offset$1(u32(), -8), 'chars')], property);\n\n var _decode = rsl.decode.bind(rsl);\n\n var _encode = rsl.encode.bind(rsl);\n\n var rslShim = rsl;\n\n rslShim.decode = function (b, offset) {\n var data = _decode(b, offset);\n\n return data['chars'].toString();\n };\n\n rslShim.encode = function (str, b, offset) {\n var data = {\n chars: Buffer$1.from(str, 'utf8')\n };\n return _encode(data, b, offset);\n };\n\n rslShim.alloc = function (str) {\n return u32().span + u32().span + Buffer$1.from(str, 'utf8').length;\n };\n\n return rslShim;\n};\n/**\n * Layout for an Authorized object\n */\n\n\nvar authorized = function authorized() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'authorized';\n return struct([publicKey('staker'), publicKey('withdrawer')], property);\n};\n/**\n * Layout for a Lockup object\n */\n\n\nvar lockup = function lockup() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'lockup';\n return struct([ns64('unixTimestamp'), ns64('epoch'), publicKey('custodian')], property);\n};\n/**\n * Layout for a VoteInit object\n */\n\n\nvar voteInit = function voteInit() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'voteInit';\n return struct([publicKey('nodePubkey'), publicKey('authorizedVoter'), publicKey('authorizedWithdrawer'), u8('commission')], property);\n};\n/**\n * Layout for a VoteAuthorizeWithSeedArgs object\n */\n\n\nvar voteAuthorizeWithSeedArgs = function voteAuthorizeWithSeedArgs() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'voteAuthorizeWithSeedArgs';\n return struct([u32('voteAuthorizationType'), publicKey('currentAuthorityDerivedKeyOwnerPubkey'), rustString('currentAuthorityDerivedKeySeed'), publicKey('newAuthorized')], property);\n};\n\nfunction getAlloc(type, fields) {\n var getItemAlloc = function getItemAlloc(item) {\n if (item.span >= 0) {\n return item.span;\n } else if (typeof item.alloc === 'function') {\n return item.alloc(fields[item.property]);\n } else if ('count' in item && 'elementLayout' in item) {\n var field = fields[item.property];\n\n if (Array.isArray(field)) {\n return field.length * getItemAlloc(item.elementLayout);\n }\n } else if ('fields' in item) {\n // This is a `Structure` whose size needs to be recursively measured.\n return getAlloc({\n layout: item\n }, fields[item.property]);\n } // Couldn't determine allocated size of layout\n\n\n return 0;\n };\n\n var alloc = 0;\n type.layout.fields.forEach(function (item) {\n alloc += getItemAlloc(item);\n });\n return alloc;\n}\n\nfunction decodeLength(bytes) {\n var len = 0;\n var size = 0;\n\n for (;;) {\n var elem = bytes.shift();\n len |= (elem & 0x7f) << size * 7;\n size += 1;\n\n if ((elem & 0x80) === 0) {\n break;\n }\n }\n\n return len;\n}\n\nfunction encodeLength(bytes, len) {\n var rem_len = len;\n\n for (;;) {\n var elem = rem_len & 0x7f;\n rem_len >>= 7;\n\n if (rem_len == 0) {\n bytes.push(elem);\n break;\n } else {\n elem |= 0x80;\n bytes.push(elem);\n }\n }\n}\n\nfunction assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n}\n\nvar CompiledKeys = /*#__PURE__*/function () {\n function CompiledKeys(payer, keyMetaMap) {\n _classCallCheck(this, CompiledKeys);\n\n this.payer = void 0;\n this.keyMetaMap = void 0;\n this.payer = payer;\n this.keyMetaMap = keyMetaMap;\n }\n\n _createClass(CompiledKeys, [{\n key: \"getMessageComponents\",\n value: function getMessageComponents() {\n var mapEntries = _toConsumableArray(this.keyMetaMap.entries());\n\n assert(mapEntries.length <= 256, 'Max static account keys length exceeded');\n var writableSigners = mapEntries.filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n meta = _ref2[1];\n\n return meta.isSigner && meta.isWritable;\n });\n var readonlySigners = mapEntries.filter(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n meta = _ref4[1];\n\n return meta.isSigner && !meta.isWritable;\n });\n var writableNonSigners = mapEntries.filter(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n meta = _ref6[1];\n\n return !meta.isSigner && meta.isWritable;\n });\n var readonlyNonSigners = mapEntries.filter(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n meta = _ref8[1];\n\n return !meta.isSigner && !meta.isWritable;\n });\n var header = {\n numRequiredSignatures: writableSigners.length + readonlySigners.length,\n numReadonlySignedAccounts: readonlySigners.length,\n numReadonlyUnsignedAccounts: readonlyNonSigners.length\n }; // sanity checks\n\n {\n assert(writableSigners.length > 0, 'Expected at least one writable signer key');\n\n var _writableSigners$2 = _slicedToArray(writableSigners[0], 1),\n payerAddress = _writableSigners$2[0];\n\n assert(payerAddress === this.payer.toBase58(), 'Expected first writable signer key to be the fee payer');\n }\n var staticAccountKeys = [].concat(_toConsumableArray(writableSigners.map(function (_ref9) {\n var _ref10 = _slicedToArray(_ref9, 1),\n address = _ref10[0];\n\n return new PublicKey(address);\n })), _toConsumableArray(readonlySigners.map(function (_ref11) {\n var _ref12 = _slicedToArray(_ref11, 1),\n address = _ref12[0];\n\n return new PublicKey(address);\n })), _toConsumableArray(writableNonSigners.map(function (_ref13) {\n var _ref14 = _slicedToArray(_ref13, 1),\n address = _ref14[0];\n\n return new PublicKey(address);\n })), _toConsumableArray(readonlyNonSigners.map(function (_ref15) {\n var _ref16 = _slicedToArray(_ref15, 1),\n address = _ref16[0];\n\n return new PublicKey(address);\n })));\n return [header, staticAccountKeys];\n }\n }, {\n key: \"extractTableLookup\",\n value: function extractTableLookup(lookupTable) {\n var _this$drainKeysFoundI = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, function (keyMeta) {\n return !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable;\n }),\n _this$drainKeysFoundI2 = _slicedToArray(_this$drainKeysFoundI, 2),\n writableIndexes = _this$drainKeysFoundI2[0],\n drainedWritableKeys = _this$drainKeysFoundI2[1];\n\n var _this$drainKeysFoundI3 = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, function (keyMeta) {\n return !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable;\n }),\n _this$drainKeysFoundI4 = _slicedToArray(_this$drainKeysFoundI3, 2),\n readonlyIndexes = _this$drainKeysFoundI4[0],\n drainedReadonlyKeys = _this$drainKeysFoundI4[1]; // Don't extract lookup if no keys were found\n\n\n if (writableIndexes.length === 0 && readonlyIndexes.length === 0) {\n return;\n }\n\n return [{\n accountKey: lookupTable.key,\n writableIndexes: writableIndexes,\n readonlyIndexes: readonlyIndexes\n }, {\n writable: drainedWritableKeys,\n readonly: drainedReadonlyKeys\n }];\n }\n /** @internal */\n\n }, {\n key: \"drainKeysFoundInLookupTable\",\n value: function drainKeysFoundInLookupTable(lookupTableEntries, keyMetaFilter) {\n var _this6 = this;\n\n var lookupTableIndexes = new Array();\n var drainedKeys = new Array();\n\n var _iterator2 = _createForOfIteratorHelper(this.keyMetaMap.entries()),\n _step2;\n\n try {\n var _loop = function _loop() {\n var _step2$value = _slicedToArray(_step2.value, 2),\n address = _step2$value[0],\n keyMeta = _step2$value[1];\n\n if (keyMetaFilter(keyMeta)) {\n var key = new PublicKey(address);\n var lookupTableIndex = lookupTableEntries.findIndex(function (entry) {\n return entry.equals(key);\n });\n\n if (lookupTableIndex >= 0) {\n assert(lookupTableIndex < 256, 'Max lookup table index exceeded');\n lookupTableIndexes.push(lookupTableIndex);\n drainedKeys.push(key);\n\n _this6.keyMetaMap[\"delete\"](address);\n }\n }\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return [lookupTableIndexes, drainedKeys];\n }\n }], [{\n key: \"compile\",\n value: function compile(instructions, payer) {\n var keyMetaMap = new Map();\n\n var getOrInsertDefault = function getOrInsertDefault(pubkey) {\n var address = pubkey.toBase58();\n var keyMeta = keyMetaMap.get(address);\n\n if (keyMeta === undefined) {\n keyMeta = {\n isSigner: false,\n isWritable: false,\n isInvoked: false\n };\n keyMetaMap.set(address, keyMeta);\n }\n\n return keyMeta;\n };\n\n var payerKeyMeta = getOrInsertDefault(payer);\n payerKeyMeta.isSigner = true;\n payerKeyMeta.isWritable = true;\n\n var _iterator3 = _createForOfIteratorHelper(instructions),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var ix = _step3.value;\n getOrInsertDefault(ix.programId).isInvoked = true;\n\n var _iterator4 = _createForOfIteratorHelper(ix.keys),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var accountMeta = _step4.value;\n var keyMeta = getOrInsertDefault(accountMeta.pubkey);\n keyMeta.isSigner || (keyMeta.isSigner = accountMeta.isSigner);\n keyMeta.isWritable || (keyMeta.isWritable = accountMeta.isWritable);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return new CompiledKeys(payer, keyMetaMap);\n }\n }]);\n\n return CompiledKeys;\n}();\n/**\n * An instruction to execute by a program\n *\n * @property {number} programIdIndex\n * @property {number[]} accounts\n * @property {string} data\n */\n\n/**\n * Message constructor arguments\n */\n\n/**\n * List of instructions to be processed atomically\n */\n\n\nvar Message = /*#__PURE__*/function () {\n function Message(args) {\n var _this7 = this;\n\n _classCallCheck(this, Message);\n\n this.header = void 0;\n this.accountKeys = void 0;\n this.recentBlockhash = void 0;\n this.instructions = void 0;\n this.indexToProgramIds = new Map();\n this.header = args.header;\n this.accountKeys = args.accountKeys.map(function (account) {\n return new PublicKey(account);\n });\n this.recentBlockhash = args.recentBlockhash;\n this.instructions = args.instructions;\n this.instructions.forEach(function (ix) {\n return _this7.indexToProgramIds.set(ix.programIdIndex, _this7.accountKeys[ix.programIdIndex]);\n });\n }\n\n _createClass(Message, [{\n key: \"version\",\n get: function get() {\n return 'legacy';\n }\n }, {\n key: \"staticAccountKeys\",\n get: function get() {\n return this.accountKeys;\n }\n }, {\n key: \"compiledInstructions\",\n get: function get() {\n return this.instructions.map(function (ix) {\n return {\n programIdIndex: ix.programIdIndex,\n accountKeyIndexes: ix.accounts,\n data: bs58$5.decode(ix.data)\n };\n });\n }\n }, {\n key: \"addressTableLookups\",\n get: function get() {\n return [];\n }\n }, {\n key: \"getAccountKeys\",\n value: function getAccountKeys() {\n return new MessageAccountKeys(this.staticAccountKeys);\n }\n }, {\n key: \"isAccountSigner\",\n value: function isAccountSigner(index) {\n return index < this.header.numRequiredSignatures;\n }\n }, {\n key: \"isAccountWritable\",\n value: function isAccountWritable(index) {\n var numSignedAccounts = this.header.numRequiredSignatures;\n\n if (index >= this.header.numRequiredSignatures) {\n var unsignedAccountIndex = index - numSignedAccounts;\n var numUnsignedAccounts = this.accountKeys.length - numSignedAccounts;\n var numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n return unsignedAccountIndex < numWritableUnsignedAccounts;\n } else {\n var numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts;\n return index < numWritableSignedAccounts;\n }\n }\n }, {\n key: \"isProgramId\",\n value: function isProgramId(index) {\n return this.indexToProgramIds.has(index);\n }\n }, {\n key: \"programIds\",\n value: function programIds() {\n return _toConsumableArray(this.indexToProgramIds.values());\n }\n }, {\n key: \"nonProgramIds\",\n value: function nonProgramIds() {\n var _this8 = this;\n\n return this.accountKeys.filter(function (_, index) {\n return !_this8.isProgramId(index);\n });\n }\n }, {\n key: \"serialize\",\n value: function serialize() {\n var numKeys = this.accountKeys.length;\n var keyCount = [];\n encodeLength(keyCount, numKeys);\n var instructions = this.instructions.map(function (instruction) {\n var accounts = instruction.accounts,\n programIdIndex = instruction.programIdIndex;\n var data = Array.from(bs58$5.decode(instruction.data));\n var keyIndicesCount = [];\n encodeLength(keyIndicesCount, accounts.length);\n var dataCount = [];\n encodeLength(dataCount, data.length);\n return {\n programIdIndex: programIdIndex,\n keyIndicesCount: Buffer$1.from(keyIndicesCount),\n keyIndices: accounts,\n dataLength: Buffer$1.from(dataCount),\n data: data\n };\n });\n var instructionCount = [];\n encodeLength(instructionCount, instructions.length);\n var instructionBuffer = Buffer$1.alloc(PACKET_DATA_SIZE);\n Buffer$1.from(instructionCount).copy(instructionBuffer);\n var instructionBufferLength = instructionCount.length;\n instructions.forEach(function (instruction) {\n var instructionLayout = struct([u8('programIdIndex'), blob$1(instruction.keyIndicesCount.length, 'keyIndicesCount'), seq$1(u8('keyIndex'), instruction.keyIndices.length, 'keyIndices'), blob$1(instruction.dataLength.length, 'dataLength'), seq$1(u8('userdatum'), instruction.data.length, 'data')]);\n var length = instructionLayout.encode(instruction, instructionBuffer, instructionBufferLength);\n instructionBufferLength += length;\n });\n instructionBuffer = instructionBuffer.slice(0, instructionBufferLength);\n var signDataLayout = struct([blob$1(1, 'numRequiredSignatures'), blob$1(1, 'numReadonlySignedAccounts'), blob$1(1, 'numReadonlyUnsignedAccounts'), blob$1(keyCount.length, 'keyCount'), seq$1(publicKey('key'), numKeys, 'keys'), publicKey('recentBlockhash')]);\n var transaction = {\n numRequiredSignatures: Buffer$1.from([this.header.numRequiredSignatures]),\n numReadonlySignedAccounts: Buffer$1.from([this.header.numReadonlySignedAccounts]),\n numReadonlyUnsignedAccounts: Buffer$1.from([this.header.numReadonlyUnsignedAccounts]),\n keyCount: Buffer$1.from(keyCount),\n keys: this.accountKeys.map(function (key) {\n return toBuffer(key.toBytes());\n }),\n recentBlockhash: bs58$5.decode(this.recentBlockhash)\n };\n var signData = Buffer$1.alloc(2048);\n var length = signDataLayout.encode(transaction, signData);\n instructionBuffer.copy(signData, length);\n return signData.slice(0, length + instructionBuffer.length);\n }\n /**\n * Decode a compiled message into a Message object.\n */\n\n }], [{\n key: \"compile\",\n value: function compile(args) {\n var compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n\n var _compiledKeys$getMess = compiledKeys.getMessageComponents(),\n _compiledKeys$getMess2 = _slicedToArray(_compiledKeys$getMess, 2),\n header = _compiledKeys$getMess2[0],\n staticAccountKeys = _compiledKeys$getMess2[1];\n\n var accountKeys = new MessageAccountKeys(staticAccountKeys);\n var instructions = accountKeys.compileInstructions(args.instructions).map(function (ix) {\n return {\n programIdIndex: ix.programIdIndex,\n accounts: ix.accountKeyIndexes,\n data: bs58$5.encode(ix.data)\n };\n });\n return new Message({\n header: header,\n accountKeys: staticAccountKeys,\n recentBlockhash: args.recentBlockhash,\n instructions: instructions\n });\n }\n }, {\n key: \"from\",\n value: function from(buffer) {\n // Slice up wire data\n var byteArray = _toConsumableArray(buffer);\n\n var numRequiredSignatures = byteArray.shift();\n\n if (numRequiredSignatures !== (numRequiredSignatures & VERSION_PREFIX_MASK)) {\n throw new Error('Versioned messages must be deserialized with VersionedMessage.deserialize()');\n }\n\n var numReadonlySignedAccounts = byteArray.shift();\n var numReadonlyUnsignedAccounts = byteArray.shift();\n var accountCount = decodeLength(byteArray);\n var accountKeys = [];\n\n for (var i = 0; i < accountCount; i++) {\n var account = byteArray.slice(0, PUBLIC_KEY_LENGTH);\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n accountKeys.push(new PublicKey(Buffer$1.from(account)));\n }\n\n var recentBlockhash = byteArray.slice(0, PUBLIC_KEY_LENGTH);\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n var instructionCount = decodeLength(byteArray);\n var instructions = [];\n\n for (var _i2 = 0; _i2 < instructionCount; _i2++) {\n var programIdIndex = byteArray.shift();\n\n var _accountCount = decodeLength(byteArray);\n\n var accounts = byteArray.slice(0, _accountCount);\n byteArray = byteArray.slice(_accountCount);\n var dataLength = decodeLength(byteArray);\n var dataSlice = byteArray.slice(0, dataLength);\n var data = bs58$5.encode(Buffer$1.from(dataSlice));\n byteArray = byteArray.slice(dataLength);\n instructions.push({\n programIdIndex: programIdIndex,\n accounts: accounts,\n data: data\n });\n }\n\n var messageArgs = {\n header: {\n numRequiredSignatures: numRequiredSignatures,\n numReadonlySignedAccounts: numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts: numReadonlyUnsignedAccounts\n },\n recentBlockhash: bs58$5.encode(Buffer$1.from(recentBlockhash)),\n accountKeys: accountKeys,\n instructions: instructions\n };\n return new Message(messageArgs);\n }\n }]);\n\n return Message;\n}();\n/**\n * Message constructor arguments\n */\n\n\nvar MessageV0 = /*#__PURE__*/function () {\n function MessageV0(args) {\n _classCallCheck(this, MessageV0);\n\n this.header = void 0;\n this.staticAccountKeys = void 0;\n this.recentBlockhash = void 0;\n this.compiledInstructions = void 0;\n this.addressTableLookups = void 0;\n this.header = args.header;\n this.staticAccountKeys = args.staticAccountKeys;\n this.recentBlockhash = args.recentBlockhash;\n this.compiledInstructions = args.compiledInstructions;\n this.addressTableLookups = args.addressTableLookups;\n }\n\n _createClass(MessageV0, [{\n key: \"version\",\n get: function get() {\n return 0;\n }\n }, {\n key: \"numAccountKeysFromLookups\",\n get: function get() {\n var count = 0;\n\n var _iterator5 = _createForOfIteratorHelper(this.addressTableLookups),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var lookup = _step5.value;\n count += lookup.readonlyIndexes.length + lookup.writableIndexes.length;\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return count;\n }\n }, {\n key: \"getAccountKeys\",\n value: function getAccountKeys(args) {\n var accountKeysFromLookups;\n\n if (args && 'accountKeysFromLookups' in args && args.accountKeysFromLookups) {\n if (this.numAccountKeysFromLookups != args.accountKeysFromLookups.writable.length + args.accountKeysFromLookups.readonly.length) {\n throw new Error('Failed to get account keys because of a mismatch in the number of account keys from lookups');\n }\n\n accountKeysFromLookups = args.accountKeysFromLookups;\n } else if (args && 'addressLookupTableAccounts' in args && args.addressLookupTableAccounts) {\n accountKeysFromLookups = this.resolveAddressTableLookups(args.addressLookupTableAccounts);\n } else if (this.addressTableLookups.length > 0) {\n throw new Error('Failed to get account keys because address table lookups were not resolved');\n }\n\n return new MessageAccountKeys(this.staticAccountKeys, accountKeysFromLookups);\n }\n }, {\n key: \"isAccountSigner\",\n value: function isAccountSigner(index) {\n return index < this.header.numRequiredSignatures;\n }\n }, {\n key: \"isAccountWritable\",\n value: function isAccountWritable(index) {\n var numSignedAccounts = this.header.numRequiredSignatures;\n var numStaticAccountKeys = this.staticAccountKeys.length;\n\n if (index >= numStaticAccountKeys) {\n var lookupAccountKeysIndex = index - numStaticAccountKeys;\n var numWritableLookupAccountKeys = this.addressTableLookups.reduce(function (count, lookup) {\n return count + lookup.writableIndexes.length;\n }, 0);\n return lookupAccountKeysIndex < numWritableLookupAccountKeys;\n } else if (index >= this.header.numRequiredSignatures) {\n var unsignedAccountIndex = index - numSignedAccounts;\n var numUnsignedAccounts = numStaticAccountKeys - numSignedAccounts;\n var numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n return unsignedAccountIndex < numWritableUnsignedAccounts;\n } else {\n var numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts;\n return index < numWritableSignedAccounts;\n }\n }\n }, {\n key: \"resolveAddressTableLookups\",\n value: function resolveAddressTableLookups(addressLookupTableAccounts) {\n var accountKeysFromLookups = {\n writable: [],\n readonly: []\n };\n\n var _iterator6 = _createForOfIteratorHelper(this.addressTableLookups),\n _step6;\n\n try {\n var _loop2 = function _loop2() {\n var tableLookup = _step6.value;\n var tableAccount = addressLookupTableAccounts.find(function (account) {\n return account.key.equals(tableLookup.accountKey);\n });\n\n if (!tableAccount) {\n throw new Error(\"Failed to find address lookup table account for table key \".concat(tableLookup.accountKey.toBase58()));\n }\n\n var _iterator7 = _createForOfIteratorHelper(tableLookup.writableIndexes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var index = _step7.value;\n\n if (index < tableAccount.state.addresses.length) {\n accountKeysFromLookups.writable.push(tableAccount.state.addresses[index]);\n } else {\n throw new Error(\"Failed to find address for index \".concat(index, \" in address lookup table \").concat(tableLookup.accountKey.toBase58()));\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n var _iterator8 = _createForOfIteratorHelper(tableLookup.readonlyIndexes),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var _index = _step8.value;\n\n if (_index < tableAccount.state.addresses.length) {\n accountKeysFromLookups.readonly.push(tableAccount.state.addresses[_index]);\n } else {\n throw new Error(\"Failed to find address for index \".concat(_index, \" in address lookup table \").concat(tableLookup.accountKey.toBase58()));\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n };\n\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n _loop2();\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return accountKeysFromLookups;\n }\n }, {\n key: \"serialize\",\n value: function serialize() {\n var encodedStaticAccountKeysLength = Array();\n encodeLength(encodedStaticAccountKeysLength, this.staticAccountKeys.length);\n var serializedInstructions = this.serializeInstructions();\n var encodedInstructionsLength = Array();\n encodeLength(encodedInstructionsLength, this.compiledInstructions.length);\n var serializedAddressTableLookups = this.serializeAddressTableLookups();\n var encodedAddressTableLookupsLength = Array();\n encodeLength(encodedAddressTableLookupsLength, this.addressTableLookups.length);\n var messageLayout = struct([u8('prefix'), struct([u8('numRequiredSignatures'), u8('numReadonlySignedAccounts'), u8('numReadonlyUnsignedAccounts')], 'header'), blob$1(encodedStaticAccountKeysLength.length, 'staticAccountKeysLength'), seq$1(publicKey(), this.staticAccountKeys.length, 'staticAccountKeys'), publicKey('recentBlockhash'), blob$1(encodedInstructionsLength.length, 'instructionsLength'), blob$1(serializedInstructions.length, 'serializedInstructions'), blob$1(encodedAddressTableLookupsLength.length, 'addressTableLookupsLength'), blob$1(serializedAddressTableLookups.length, 'serializedAddressTableLookups')]);\n var serializedMessage = new Uint8Array(PACKET_DATA_SIZE);\n var MESSAGE_VERSION_0_PREFIX = 1 << 7;\n var serializedMessageLength = messageLayout.encode({\n prefix: MESSAGE_VERSION_0_PREFIX,\n header: this.header,\n staticAccountKeysLength: new Uint8Array(encodedStaticAccountKeysLength),\n staticAccountKeys: this.staticAccountKeys.map(function (key) {\n return key.toBytes();\n }),\n recentBlockhash: bs58$5.decode(this.recentBlockhash),\n instructionsLength: new Uint8Array(encodedInstructionsLength),\n serializedInstructions: serializedInstructions,\n addressTableLookupsLength: new Uint8Array(encodedAddressTableLookupsLength),\n serializedAddressTableLookups: serializedAddressTableLookups\n }, serializedMessage);\n return serializedMessage.slice(0, serializedMessageLength);\n }\n }, {\n key: \"serializeInstructions\",\n value: function serializeInstructions() {\n var serializedLength = 0;\n var serializedInstructions = new Uint8Array(PACKET_DATA_SIZE);\n\n var _iterator9 = _createForOfIteratorHelper(this.compiledInstructions),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var instruction = _step9.value;\n var encodedAccountKeyIndexesLength = Array();\n encodeLength(encodedAccountKeyIndexesLength, instruction.accountKeyIndexes.length);\n var encodedDataLength = Array();\n encodeLength(encodedDataLength, instruction.data.length);\n var instructionLayout = struct([u8('programIdIndex'), blob$1(encodedAccountKeyIndexesLength.length, 'encodedAccountKeyIndexesLength'), seq$1(u8(), instruction.accountKeyIndexes.length, 'accountKeyIndexes'), blob$1(encodedDataLength.length, 'encodedDataLength'), blob$1(instruction.data.length, 'data')]);\n serializedLength += instructionLayout.encode({\n programIdIndex: instruction.programIdIndex,\n encodedAccountKeyIndexesLength: new Uint8Array(encodedAccountKeyIndexesLength),\n accountKeyIndexes: instruction.accountKeyIndexes,\n encodedDataLength: new Uint8Array(encodedDataLength),\n data: instruction.data\n }, serializedInstructions, serializedLength);\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return serializedInstructions.slice(0, serializedLength);\n }\n }, {\n key: \"serializeAddressTableLookups\",\n value: function serializeAddressTableLookups() {\n var serializedLength = 0;\n var serializedAddressTableLookups = new Uint8Array(PACKET_DATA_SIZE);\n\n var _iterator10 = _createForOfIteratorHelper(this.addressTableLookups),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var lookup = _step10.value;\n var encodedWritableIndexesLength = Array();\n encodeLength(encodedWritableIndexesLength, lookup.writableIndexes.length);\n var encodedReadonlyIndexesLength = Array();\n encodeLength(encodedReadonlyIndexesLength, lookup.readonlyIndexes.length);\n var addressTableLookupLayout = struct([publicKey('accountKey'), blob$1(encodedWritableIndexesLength.length, 'encodedWritableIndexesLength'), seq$1(u8(), lookup.writableIndexes.length, 'writableIndexes'), blob$1(encodedReadonlyIndexesLength.length, 'encodedReadonlyIndexesLength'), seq$1(u8(), lookup.readonlyIndexes.length, 'readonlyIndexes')]);\n serializedLength += addressTableLookupLayout.encode({\n accountKey: lookup.accountKey.toBytes(),\n encodedWritableIndexesLength: new Uint8Array(encodedWritableIndexesLength),\n writableIndexes: lookup.writableIndexes,\n encodedReadonlyIndexesLength: new Uint8Array(encodedReadonlyIndexesLength),\n readonlyIndexes: lookup.readonlyIndexes\n }, serializedAddressTableLookups, serializedLength);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n return serializedAddressTableLookups.slice(0, serializedLength);\n }\n }], [{\n key: \"compile\",\n value: function compile(args) {\n var compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n var addressTableLookups = new Array();\n var accountKeysFromLookups = {\n writable: new Array(),\n readonly: new Array()\n };\n var lookupTableAccounts = args.addressLookupTableAccounts || [];\n\n var _iterator11 = _createForOfIteratorHelper(lookupTableAccounts),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var lookupTable = _step11.value;\n var extractResult = compiledKeys.extractTableLookup(lookupTable);\n\n if (extractResult !== undefined) {\n var _accountKeysFromLooku, _accountKeysFromLooku2;\n\n var _extractResult2 = _slicedToArray(extractResult, 2),\n addressTableLookup = _extractResult2[0],\n _extractResult$2 = _extractResult2[1],\n writable = _extractResult$2.writable,\n readonly = _extractResult$2.readonly;\n\n addressTableLookups.push(addressTableLookup);\n\n (_accountKeysFromLooku = accountKeysFromLookups.writable).push.apply(_accountKeysFromLooku, _toConsumableArray(writable));\n\n (_accountKeysFromLooku2 = accountKeysFromLookups.readonly).push.apply(_accountKeysFromLooku2, _toConsumableArray(readonly));\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n var _compiledKeys$getMess3 = compiledKeys.getMessageComponents(),\n _compiledKeys$getMess4 = _slicedToArray(_compiledKeys$getMess3, 2),\n header = _compiledKeys$getMess4[0],\n staticAccountKeys = _compiledKeys$getMess4[1];\n\n var accountKeys = new MessageAccountKeys(staticAccountKeys, accountKeysFromLookups);\n var compiledInstructions = accountKeys.compileInstructions(args.instructions);\n return new MessageV0({\n header: header,\n staticAccountKeys: staticAccountKeys,\n recentBlockhash: args.recentBlockhash,\n compiledInstructions: compiledInstructions,\n addressTableLookups: addressTableLookups\n });\n }\n }, {\n key: \"deserialize\",\n value: function deserialize(serializedMessage) {\n var byteArray = _toConsumableArray(serializedMessage);\n\n var prefix = byteArray.shift();\n var maskedPrefix = prefix & VERSION_PREFIX_MASK;\n assert(prefix !== maskedPrefix, \"Expected versioned message but received legacy message\");\n var version = maskedPrefix;\n assert(version === 0, \"Expected versioned message with version 0 but found version \".concat(version));\n var header = {\n numRequiredSignatures: byteArray.shift(),\n numReadonlySignedAccounts: byteArray.shift(),\n numReadonlyUnsignedAccounts: byteArray.shift()\n };\n var staticAccountKeys = [];\n var staticAccountKeysLength = decodeLength(byteArray);\n\n for (var i = 0; i < staticAccountKeysLength; i++) {\n staticAccountKeys.push(new PublicKey(byteArray.splice(0, PUBLIC_KEY_LENGTH)));\n }\n\n var recentBlockhash = bs58$5.encode(byteArray.splice(0, PUBLIC_KEY_LENGTH));\n var instructionCount = decodeLength(byteArray);\n var compiledInstructions = [];\n\n for (var _i4 = 0; _i4 < instructionCount; _i4++) {\n var programIdIndex = byteArray.shift();\n var accountKeyIndexesLength = decodeLength(byteArray);\n var accountKeyIndexes = byteArray.splice(0, accountKeyIndexesLength);\n var dataLength = decodeLength(byteArray);\n var data = new Uint8Array(byteArray.splice(0, dataLength));\n compiledInstructions.push({\n programIdIndex: programIdIndex,\n accountKeyIndexes: accountKeyIndexes,\n data: data\n });\n }\n\n var addressTableLookupsCount = decodeLength(byteArray);\n var addressTableLookups = [];\n\n for (var _i6 = 0; _i6 < addressTableLookupsCount; _i6++) {\n var accountKey = new PublicKey(byteArray.splice(0, PUBLIC_KEY_LENGTH));\n var writableIndexesLength = decodeLength(byteArray);\n var writableIndexes = byteArray.splice(0, writableIndexesLength);\n var readonlyIndexesLength = decodeLength(byteArray);\n var readonlyIndexes = byteArray.splice(0, readonlyIndexesLength);\n addressTableLookups.push({\n accountKey: accountKey,\n writableIndexes: writableIndexes,\n readonlyIndexes: readonlyIndexes\n });\n }\n\n return new MessageV0({\n header: header,\n staticAccountKeys: staticAccountKeys,\n recentBlockhash: recentBlockhash,\n compiledInstructions: compiledInstructions,\n addressTableLookups: addressTableLookups\n });\n }\n }]);\n\n return MessageV0;\n}(); // eslint-disable-next-line no-redeclare\n\n\nvar VersionedMessage = {\n deserializeMessageVersion: function deserializeMessageVersion(serializedMessage) {\n var prefix = serializedMessage[0];\n var maskedPrefix = prefix & VERSION_PREFIX_MASK; // if the highest bit of the prefix is not set, the message is not versioned\n\n if (maskedPrefix === prefix) {\n return 'legacy';\n } // the lower 7 bits of the prefix indicate the message version\n\n\n return maskedPrefix;\n },\n deserialize: function deserialize(serializedMessage) {\n var version = VersionedMessage.deserializeMessageVersion(serializedMessage);\n\n if (version === 'legacy') {\n return Message.from(serializedMessage);\n }\n\n if (version === 0) {\n return MessageV0.deserialize(serializedMessage);\n } else {\n throw new Error(\"Transaction message version \".concat(version, \" deserialization is not supported\"));\n }\n }\n};\n/**\n * Transaction signature as base-58 encoded string\n */\n\nvar TransactionStatus = /*#__PURE__*/function (TransactionStatus) {\n TransactionStatus[TransactionStatus[\"BLOCKHEIGHT_EXCEEDED\"] = 0] = \"BLOCKHEIGHT_EXCEEDED\";\n TransactionStatus[TransactionStatus[\"PROCESSED\"] = 1] = \"PROCESSED\";\n TransactionStatus[TransactionStatus[\"TIMED_OUT\"] = 2] = \"TIMED_OUT\";\n TransactionStatus[TransactionStatus[\"NONCE_INVALID\"] = 3] = \"NONCE_INVALID\";\n return TransactionStatus;\n}({});\n/**\n * Default (empty) signature\n */\n\n\nvar DEFAULT_SIGNATURE = Buffer$1.alloc(SIGNATURE_LENGTH_IN_BYTES).fill(0);\n/**\n * Account metadata used to define instructions\n */\n\n/**\n * List of TransactionInstruction object fields that may be initialized at construction\n */\n\n/**\n * Configuration object for Transaction.serialize()\n */\n\n/**\n * @internal\n */\n\n/**\n * Transaction Instruction class\n */\n\nvar TransactionInstruction = /*#__PURE__*/function () {\n function TransactionInstruction(opts) {\n _classCallCheck(this, TransactionInstruction);\n /**\n * Public keys to include in this transaction\n * Boolean represents whether this pubkey needs to sign the transaction\n */\n\n\n this.keys = void 0;\n /**\n * Program Id to execute\n */\n\n this.programId = void 0;\n /**\n * Program input\n */\n\n this.data = Buffer$1.alloc(0);\n this.programId = opts.programId;\n this.keys = opts.keys;\n\n if (opts.data) {\n this.data = opts.data;\n }\n }\n /**\n * @internal\n */\n\n\n _createClass(TransactionInstruction, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n keys: this.keys.map(function (_ref17) {\n var pubkey = _ref17.pubkey,\n isSigner = _ref17.isSigner,\n isWritable = _ref17.isWritable;\n return {\n pubkey: pubkey.toJSON(),\n isSigner: isSigner,\n isWritable: isWritable\n };\n }),\n programId: this.programId.toJSON(),\n data: _toConsumableArray(this.data)\n };\n }\n }]);\n\n return TransactionInstruction;\n}();\n/**\n * Pair of signature and corresponding public key\n */\n\n/**\n * List of Transaction object fields that may be initialized at construction\n */\n// For backward compatibility; an unfortunate consequence of being\n// forced to over-export types by the documentation generator.\n// See https://github.com/solana-labs/solana/pull/25820\n\n/**\n * Blockhash-based transactions have a lifetime that are defined by\n * the blockhash they include. Any transaction whose blockhash is\n * too old will be rejected.\n */\n\n/**\n * Use these options to construct a durable nonce transaction.\n */\n\n/**\n * Nonce information to be used to build an offline Transaction.\n */\n\n/**\n * @internal\n */\n\n/**\n * Transaction class\n */\n\n\nvar Transaction = /*#__PURE__*/function () {\n /**\n * The transaction fee payer\n */\n // Construct a transaction with a blockhash and lastValidBlockHeight\n // Construct a transaction using a durable nonce\n\n /**\n * @deprecated `TransactionCtorFields` has been deprecated and will be removed in a future version.\n * Please supply a `TransactionBlockhashCtor` instead.\n */\n\n /**\n * Construct an empty Transaction\n */\n function Transaction(opts) {\n _classCallCheck(this, Transaction);\n /**\n * Signatures for the transaction. Typically created by invoking the\n * `sign()` method\n */\n\n\n this.signatures = [];\n this.feePayer = void 0;\n /**\n * The instructions to atomically execute\n */\n\n this.instructions = [];\n /**\n * A recent transaction id. Must be populated by the caller\n */\n\n this.recentBlockhash = void 0;\n /**\n * the last block chain can advance to before tx is declared expired\n * */\n\n this.lastValidBlockHeight = void 0;\n /**\n * Optional Nonce information. If populated, transaction will use a durable\n * Nonce hash instead of a recentBlockhash. Must be populated by the caller\n */\n\n this.nonceInfo = void 0;\n /**\n * If this is a nonce transaction this represents the minimum slot from which\n * to evaluate if the nonce has advanced when attempting to confirm the\n * transaction. This protects against a case where the transaction confirmation\n * logic loads the nonce account from an old slot and assumes the mismatch in\n * nonce value implies that the nonce has been advanced.\n */\n\n this.minNonceContextSlot = void 0;\n /**\n * @internal\n */\n\n this._message = void 0;\n /**\n * @internal\n */\n\n this._json = void 0;\n\n if (!opts) {\n return;\n }\n\n if (opts.feePayer) {\n this.feePayer = opts.feePayer;\n }\n\n if (opts.signatures) {\n this.signatures = opts.signatures;\n }\n\n if (Object.prototype.hasOwnProperty.call(opts, 'nonceInfo')) {\n var minContextSlot = opts.minContextSlot,\n nonceInfo = opts.nonceInfo;\n this.minNonceContextSlot = minContextSlot;\n this.nonceInfo = nonceInfo;\n } else if (Object.prototype.hasOwnProperty.call(opts, 'lastValidBlockHeight')) {\n var blockhash = opts.blockhash,\n lastValidBlockHeight = opts.lastValidBlockHeight;\n this.recentBlockhash = blockhash;\n this.lastValidBlockHeight = lastValidBlockHeight;\n } else {\n var recentBlockhash = opts.recentBlockhash,\n _nonceInfo = opts.nonceInfo;\n\n if (_nonceInfo) {\n this.nonceInfo = _nonceInfo;\n }\n\n this.recentBlockhash = recentBlockhash;\n }\n }\n /**\n * @internal\n */\n\n\n _createClass(Transaction, [{\n key: \"signature\",\n get:\n /**\n * The first (payer) Transaction signature\n *\n * @returns {Buffer | null} Buffer of payer's signature\n */\n function get() {\n if (this.signatures.length > 0) {\n return this.signatures[0].signature;\n }\n\n return null;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n recentBlockhash: this.recentBlockhash || null,\n feePayer: this.feePayer ? this.feePayer.toJSON() : null,\n nonceInfo: this.nonceInfo ? {\n nonce: this.nonceInfo.nonce,\n nonceInstruction: this.nonceInfo.nonceInstruction.toJSON()\n } : null,\n instructions: this.instructions.map(function (instruction) {\n return instruction.toJSON();\n }),\n signers: this.signatures.map(function (_ref18) {\n var publicKey = _ref18.publicKey;\n return publicKey.toJSON();\n })\n };\n }\n /**\n * Add one or more instructions to this Transaction\n *\n * @param {Array< Transaction | TransactionInstruction | TransactionInstructionCtorFields >} items - Instructions to add to the Transaction\n */\n\n }, {\n key: \"add\",\n value: function add() {\n var _this9 = this;\n\n for (var _len = arguments.length, items = new Array(_len), _key = 0; _key < _len; _key++) {\n items[_key] = arguments[_key];\n }\n\n if (items.length === 0) {\n throw new Error('No instructions');\n }\n\n items.forEach(function (item) {\n if ('instructions' in item) {\n _this9.instructions = _this9.instructions.concat(item.instructions);\n } else if ('data' in item && 'programId' in item && 'keys' in item) {\n _this9.instructions.push(item);\n } else {\n _this9.instructions.push(new TransactionInstruction(item));\n }\n });\n return this;\n }\n /**\n * Compile transaction data\n */\n\n }, {\n key: \"compileMessage\",\n value: function compileMessage() {\n if (this._message && JSON.stringify(this.toJSON()) === JSON.stringify(this._json)) {\n return this._message;\n }\n\n var recentBlockhash;\n var instructions;\n\n if (this.nonceInfo) {\n recentBlockhash = this.nonceInfo.nonce;\n\n if (this.instructions[0] != this.nonceInfo.nonceInstruction) {\n instructions = [this.nonceInfo.nonceInstruction].concat(_toConsumableArray(this.instructions));\n } else {\n instructions = this.instructions;\n }\n } else {\n recentBlockhash = this.recentBlockhash;\n instructions = this.instructions;\n }\n\n if (!recentBlockhash) {\n throw new Error('Transaction recentBlockhash required');\n }\n\n if (instructions.length < 1) {\n console.warn('No instructions provided');\n }\n\n var feePayer;\n\n if (this.feePayer) {\n feePayer = this.feePayer;\n } else if (this.signatures.length > 0 && this.signatures[0].publicKey) {\n // Use implicit fee payer\n feePayer = this.signatures[0].publicKey;\n } else {\n throw new Error('Transaction fee payer required');\n }\n\n for (var i = 0; i < instructions.length; i++) {\n if (instructions[i].programId === undefined) {\n throw new Error(\"Transaction instruction index \".concat(i, \" has undefined program id\"));\n }\n }\n\n var programIds = [];\n var accountMetas = [];\n instructions.forEach(function (instruction) {\n instruction.keys.forEach(function (accountMeta) {\n accountMetas.push(_objectSpread2({}, accountMeta));\n });\n var programId = instruction.programId.toString();\n\n if (!programIds.includes(programId)) {\n programIds.push(programId);\n }\n }); // Append programID account metas\n\n programIds.forEach(function (programId) {\n accountMetas.push({\n pubkey: new PublicKey(programId),\n isSigner: false,\n isWritable: false\n });\n }); // Cull duplicate account metas\n\n var uniqueMetas = [];\n accountMetas.forEach(function (accountMeta) {\n var pubkeyString = accountMeta.pubkey.toString();\n var uniqueIndex = uniqueMetas.findIndex(function (x) {\n return x.pubkey.toString() === pubkeyString;\n });\n\n if (uniqueIndex > -1) {\n uniqueMetas[uniqueIndex].isWritable = uniqueMetas[uniqueIndex].isWritable || accountMeta.isWritable;\n uniqueMetas[uniqueIndex].isSigner = uniqueMetas[uniqueIndex].isSigner || accountMeta.isSigner;\n } else {\n uniqueMetas.push(accountMeta);\n }\n }); // Sort. Prioritizing first by signer, then by writable\n\n uniqueMetas.sort(function (x, y) {\n if (x.isSigner !== y.isSigner) {\n // Signers always come before non-signers\n return x.isSigner ? -1 : 1;\n }\n\n if (x.isWritable !== y.isWritable) {\n // Writable accounts always come before read-only accounts\n return x.isWritable ? -1 : 1;\n } // Otherwise, sort by pubkey, stringwise.\n\n\n var options = {\n localeMatcher: 'best fit',\n usage: 'sort',\n sensitivity: 'variant',\n ignorePunctuation: false,\n numeric: false,\n caseFirst: 'lower'\n };\n return x.pubkey.toBase58().localeCompare(y.pubkey.toBase58(), 'en', options);\n }); // Move fee payer to the front\n\n var feePayerIndex = uniqueMetas.findIndex(function (x) {\n return x.pubkey.equals(feePayer);\n });\n\n if (feePayerIndex > -1) {\n var _uniqueMetas$splice3 = uniqueMetas.splice(feePayerIndex, 1),\n _uniqueMetas$splice4 = _slicedToArray(_uniqueMetas$splice3, 1),\n payerMeta = _uniqueMetas$splice4[0];\n\n payerMeta.isSigner = true;\n payerMeta.isWritable = true;\n uniqueMetas.unshift(payerMeta);\n } else {\n uniqueMetas.unshift({\n pubkey: feePayer,\n isSigner: true,\n isWritable: true\n });\n } // Disallow unknown signers\n\n\n var _iterator12 = _createForOfIteratorHelper(this.signatures),\n _step12;\n\n try {\n var _loop3 = function _loop3() {\n var signature = _step12.value;\n var uniqueIndex = uniqueMetas.findIndex(function (x) {\n return x.pubkey.equals(signature.publicKey);\n });\n\n if (uniqueIndex > -1) {\n if (!uniqueMetas[uniqueIndex].isSigner) {\n uniqueMetas[uniqueIndex].isSigner = true;\n console.warn('Transaction references a signature that is unnecessary, ' + 'only the fee payer and instruction signer accounts should sign a transaction. ' + 'This behavior is deprecated and will throw an error in the next major version release.');\n }\n } else {\n throw new Error(\"unknown signer: \".concat(signature.publicKey.toString()));\n }\n };\n\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n _loop3();\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n var numRequiredSignatures = 0;\n var numReadonlySignedAccounts = 0;\n var numReadonlyUnsignedAccounts = 0; // Split out signing from non-signing keys and count header values\n\n var signedKeys = [];\n var unsignedKeys = [];\n uniqueMetas.forEach(function (_ref19) {\n var pubkey = _ref19.pubkey,\n isSigner = _ref19.isSigner,\n isWritable = _ref19.isWritable;\n\n if (isSigner) {\n signedKeys.push(pubkey.toString());\n numRequiredSignatures += 1;\n\n if (!isWritable) {\n numReadonlySignedAccounts += 1;\n }\n } else {\n unsignedKeys.push(pubkey.toString());\n\n if (!isWritable) {\n numReadonlyUnsignedAccounts += 1;\n }\n }\n });\n var accountKeys = signedKeys.concat(unsignedKeys);\n var compiledInstructions = instructions.map(function (instruction) {\n var data = instruction.data,\n programId = instruction.programId;\n return {\n programIdIndex: accountKeys.indexOf(programId.toString()),\n accounts: instruction.keys.map(function (meta) {\n return accountKeys.indexOf(meta.pubkey.toString());\n }),\n data: bs58$5.encode(data)\n };\n });\n compiledInstructions.forEach(function (instruction) {\n assert(instruction.programIdIndex >= 0);\n instruction.accounts.forEach(function (keyIndex) {\n return assert(keyIndex >= 0);\n });\n });\n return new Message({\n header: {\n numRequiredSignatures: numRequiredSignatures,\n numReadonlySignedAccounts: numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts: numReadonlyUnsignedAccounts\n },\n accountKeys: accountKeys,\n recentBlockhash: recentBlockhash,\n instructions: compiledInstructions\n });\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_compile\",\n value: function _compile() {\n var message = this.compileMessage();\n var signedKeys = message.accountKeys.slice(0, message.header.numRequiredSignatures);\n\n if (this.signatures.length === signedKeys.length) {\n var valid = this.signatures.every(function (pair, index) {\n return signedKeys[index].equals(pair.publicKey);\n });\n if (valid) return message;\n }\n\n this.signatures = signedKeys.map(function (publicKey) {\n return {\n signature: null,\n publicKey: publicKey\n };\n });\n return message;\n }\n /**\n * Get a buffer of the Transaction data that need to be covered by signatures\n */\n\n }, {\n key: \"serializeMessage\",\n value: function serializeMessage() {\n return this._compile().serialize();\n }\n /**\n * Get the estimated fee associated with a transaction\n *\n * @param {Connection} connection Connection to RPC Endpoint.\n *\n * @returns {Promise} The estimated fee for the transaction\n */\n\n }, {\n key: \"getEstimatedFee\",\n value: function () {\n var _getEstimatedFee = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(connection) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return connection.getFeeForMessage(this.compileMessage());\n\n case 2:\n return _context4.abrupt(\"return\", _context4.sent.value);\n\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getEstimatedFee(_x8) {\n return _getEstimatedFee.apply(this, arguments);\n }\n\n return getEstimatedFee;\n }()\n /**\n * Specify the public keys which will be used to sign the Transaction.\n * The first signer will be used as the transaction fee payer account.\n *\n * Signatures can be added with either `partialSign` or `addSignature`\n *\n * @deprecated Deprecated since v0.84.0. Only the fee payer needs to be\n * specified and it can be set in the Transaction constructor or with the\n * `feePayer` property.\n */\n\n }, {\n key: \"setSigners\",\n value: function setSigners() {\n for (var _len2 = arguments.length, signers = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n signers[_key2] = arguments[_key2];\n }\n\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n var seen = new Set();\n this.signatures = signers.filter(function (publicKey) {\n var key = publicKey.toString();\n\n if (seen.has(key)) {\n return false;\n } else {\n seen.add(key);\n return true;\n }\n }).map(function (publicKey) {\n return {\n signature: null,\n publicKey: publicKey\n };\n });\n }\n /**\n * Sign the Transaction with the specified signers. Multiple signatures may\n * be applied to a Transaction. The first signature is considered \"primary\"\n * and is used identify and confirm transactions.\n *\n * If the Transaction `feePayer` is not set, the first signer will be used\n * as the transaction fee payer account.\n *\n * Transaction fields should not be modified after the first call to `sign`,\n * as doing so may invalidate the signature and cause the Transaction to be\n * rejected.\n *\n * The Transaction must be assigned a valid `recentBlockhash` before invoking this method\n *\n * @param {Array} signers Array of signers that will sign the transaction\n */\n\n }, {\n key: \"sign\",\n value: function sign() {\n for (var _len3 = arguments.length, signers = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n signers[_key3] = arguments[_key3];\n }\n\n if (signers.length === 0) {\n throw new Error('No signers');\n } // Dedupe signers\n\n\n var seen = new Set();\n var uniqueSigners = [];\n\n for (var _i7 = 0, _signers = signers; _i7 < _signers.length; _i7++) {\n var signer = _signers[_i7];\n var key = signer.publicKey.toString();\n\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n\n this.signatures = uniqueSigners.map(function (signer) {\n return {\n signature: null,\n publicKey: signer.publicKey\n };\n });\n\n var message = this._compile();\n\n this._partialSign.apply(this, [message].concat(uniqueSigners));\n }\n /**\n * Partially sign a transaction with the specified accounts. All accounts must\n * correspond to either the fee payer or a signer account in the transaction\n * instructions.\n *\n * All the caveats from the `sign` method apply to `partialSign`\n *\n * @param {Array} signers Array of signers that will sign the transaction\n */\n\n }, {\n key: \"partialSign\",\n value: function partialSign() {\n for (var _len4 = arguments.length, signers = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n signers[_key4] = arguments[_key4];\n }\n\n if (signers.length === 0) {\n throw new Error('No signers');\n } // Dedupe signers\n\n\n var seen = new Set();\n var uniqueSigners = [];\n\n for (var _i8 = 0, _signers2 = signers; _i8 < _signers2.length; _i8++) {\n var signer = _signers2[_i8];\n var key = signer.publicKey.toString();\n\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n\n var message = this._compile();\n\n this._partialSign.apply(this, [message].concat(uniqueSigners));\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_partialSign\",\n value: function _partialSign(message) {\n var _this10 = this;\n\n var signData = message.serialize();\n\n for (var _len5 = arguments.length, signers = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n signers[_key5 - 1] = arguments[_key5];\n }\n\n signers.forEach(function (signer) {\n var signature = _sign(signData, signer.secretKey);\n\n _this10._addSignature(signer.publicKey, toBuffer(signature));\n });\n }\n /**\n * Add an externally created signature to a transaction. The public key\n * must correspond to either the fee payer or a signer account in the transaction\n * instructions.\n *\n * @param {PublicKey} pubkey Public key that will be added to the transaction.\n * @param {Buffer} signature An externally created signature to add to the transaction.\n */\n\n }, {\n key: \"addSignature\",\n value: function addSignature(pubkey, signature) {\n this._compile(); // Ensure signatures array is populated\n\n\n this._addSignature(pubkey, signature);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_addSignature\",\n value: function _addSignature(pubkey, signature) {\n assert(signature.length === 64);\n var index = this.signatures.findIndex(function (sigpair) {\n return pubkey.equals(sigpair.publicKey);\n });\n\n if (index < 0) {\n throw new Error(\"unknown signer: \".concat(pubkey.toString()));\n }\n\n this.signatures[index].signature = Buffer$1.from(signature);\n }\n /**\n * Verify signatures of a Transaction\n * Optional parameter specifies if we're expecting a fully signed Transaction or a partially signed one.\n * If no boolean is provided, we expect a fully signed Transaction by default.\n *\n * @param {boolean} [requireAllSignatures=true] Require a fully signed Transaction\n */\n\n }, {\n key: \"verifySignatures\",\n value: function verifySignatures(requireAllSignatures) {\n return this._verifySignatures(this.serializeMessage(), requireAllSignatures === undefined ? true : requireAllSignatures);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_verifySignatures\",\n value: function _verifySignatures(signData, requireAllSignatures) {\n var _iterator13 = _createForOfIteratorHelper(this.signatures),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var _step13$value2 = _step13.value,\n _signature = _step13$value2.signature,\n _publicKey = _step13$value2.publicKey;\n\n if (_signature === null) {\n if (requireAllSignatures) {\n return false;\n }\n } else {\n if (!verify(_signature, signData, _publicKey.toBytes())) {\n return false;\n }\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n return true;\n }\n /**\n * Serialize the Transaction in the wire format.\n *\n * @param {Buffer} [config] Config of transaction.\n *\n * @returns {Buffer} Signature of transaction in wire format.\n */\n\n }, {\n key: \"serialize\",\n value: function serialize(config) {\n var _Object$assign = Object.assign({\n requireAllSignatures: true,\n verifySignatures: true\n }, config),\n requireAllSignatures = _Object$assign.requireAllSignatures,\n verifySignatures = _Object$assign.verifySignatures;\n\n var signData = this.serializeMessage();\n\n if (verifySignatures && !this._verifySignatures(signData, requireAllSignatures)) {\n throw new Error('Signature verification failed');\n }\n\n return this._serialize(signData);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_serialize\",\n value: function _serialize(signData) {\n var signatures = this.signatures;\n var signatureCount = [];\n encodeLength(signatureCount, signatures.length);\n var transactionLength = signatureCount.length + signatures.length * 64 + signData.length;\n var wireTransaction = Buffer$1.alloc(transactionLength);\n assert(signatures.length < 256);\n Buffer$1.from(signatureCount).copy(wireTransaction, 0);\n signatures.forEach(function (_ref20, index) {\n var signature = _ref20.signature;\n\n if (signature !== null) {\n assert(signature.length === 64, \"signature has invalid length\");\n Buffer$1.from(signature).copy(wireTransaction, signatureCount.length + index * 64);\n }\n });\n signData.copy(wireTransaction, signatureCount.length + signatures.length * 64);\n assert(wireTransaction.length <= PACKET_DATA_SIZE, \"Transaction too large: \".concat(wireTransaction.length, \" > \").concat(PACKET_DATA_SIZE));\n return wireTransaction;\n }\n /**\n * Deprecated method\n * @internal\n */\n\n }, {\n key: \"keys\",\n get: function get() {\n assert(this.instructions.length === 1);\n return this.instructions[0].keys.map(function (keyObj) {\n return keyObj.pubkey;\n });\n }\n /**\n * Deprecated method\n * @internal\n */\n\n }, {\n key: \"programId\",\n get: function get() {\n assert(this.instructions.length === 1);\n return this.instructions[0].programId;\n }\n /**\n * Deprecated method\n * @internal\n */\n\n }, {\n key: \"data\",\n get: function get() {\n assert(this.instructions.length === 1);\n return this.instructions[0].data;\n }\n /**\n * Parse a wire transaction into a Transaction object.\n *\n * @param {Buffer | Uint8Array | Array} buffer Signature of wire Transaction\n *\n * @returns {Transaction} Transaction associated with the signature\n */\n\n }], [{\n key: \"from\",\n value: function from(buffer) {\n // Slice up wire data\n var byteArray = _toConsumableArray(buffer);\n\n var signatureCount = decodeLength(byteArray);\n var signatures = [];\n\n for (var i = 0; i < signatureCount; i++) {\n var _signature2 = byteArray.slice(0, SIGNATURE_LENGTH_IN_BYTES);\n\n byteArray = byteArray.slice(SIGNATURE_LENGTH_IN_BYTES);\n signatures.push(bs58$5.encode(Buffer$1.from(_signature2)));\n }\n\n return Transaction.populate(Message.from(byteArray), signatures);\n }\n /**\n * Populate Transaction object from message and signatures\n *\n * @param {Message} message Message of transaction\n * @param {Array} signatures List of signatures to assign to the transaction\n *\n * @returns {Transaction} The populated Transaction\n */\n\n }, {\n key: \"populate\",\n value: function populate(message) {\n var signatures = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var transaction = new Transaction();\n transaction.recentBlockhash = message.recentBlockhash;\n\n if (message.header.numRequiredSignatures > 0) {\n transaction.feePayer = message.accountKeys[0];\n }\n\n signatures.forEach(function (signature, index) {\n var sigPubkeyPair = {\n signature: signature == bs58$5.encode(DEFAULT_SIGNATURE) ? null : bs58$5.decode(signature),\n publicKey: message.accountKeys[index]\n };\n transaction.signatures.push(sigPubkeyPair);\n });\n message.instructions.forEach(function (instruction) {\n var keys = instruction.accounts.map(function (account) {\n var pubkey = message.accountKeys[account];\n return {\n pubkey: pubkey,\n isSigner: transaction.signatures.some(function (keyObj) {\n return keyObj.publicKey.toString() === pubkey.toString();\n }) || message.isAccountSigner(account),\n isWritable: message.isAccountWritable(account)\n };\n });\n transaction.instructions.push(new TransactionInstruction({\n keys: keys,\n programId: message.accountKeys[instruction.programIdIndex],\n data: bs58$5.decode(instruction.data)\n }));\n });\n transaction._message = message;\n transaction._json = transaction.toJSON();\n return transaction;\n }\n }]);\n\n return Transaction;\n}();\n\nvar TransactionMessage = /*#__PURE__*/function () {\n function TransactionMessage(args) {\n _classCallCheck(this, TransactionMessage);\n\n this.payerKey = void 0;\n this.instructions = void 0;\n this.recentBlockhash = void 0;\n this.payerKey = args.payerKey;\n this.instructions = args.instructions;\n this.recentBlockhash = args.recentBlockhash;\n }\n\n _createClass(TransactionMessage, [{\n key: \"compileToLegacyMessage\",\n value: function compileToLegacyMessage() {\n return Message.compile({\n payerKey: this.payerKey,\n recentBlockhash: this.recentBlockhash,\n instructions: this.instructions\n });\n }\n }, {\n key: \"compileToV0Message\",\n value: function compileToV0Message(addressLookupTableAccounts) {\n return MessageV0.compile({\n payerKey: this.payerKey,\n recentBlockhash: this.recentBlockhash,\n instructions: this.instructions,\n addressLookupTableAccounts: addressLookupTableAccounts\n });\n }\n }], [{\n key: \"decompile\",\n value: function decompile(message, args) {\n var header = message.header,\n compiledInstructions = message.compiledInstructions,\n recentBlockhash = message.recentBlockhash;\n var numRequiredSignatures = header.numRequiredSignatures,\n numReadonlySignedAccounts = header.numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts = header.numReadonlyUnsignedAccounts;\n var numWritableSignedAccounts = numRequiredSignatures - numReadonlySignedAccounts;\n assert(numWritableSignedAccounts > 0, 'Message header is invalid');\n var numWritableUnsignedAccounts = message.staticAccountKeys.length - numRequiredSignatures - numReadonlyUnsignedAccounts;\n assert(numWritableUnsignedAccounts >= 0, 'Message header is invalid');\n var accountKeys = message.getAccountKeys(args);\n var payerKey = accountKeys.get(0);\n\n if (payerKey === undefined) {\n throw new Error('Failed to decompile message because no account keys were found');\n }\n\n var instructions = [];\n\n var _iterator14 = _createForOfIteratorHelper(compiledInstructions),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var compiledIx = _step14.value;\n var keys = [];\n\n var _iterator15 = _createForOfIteratorHelper(compiledIx.accountKeyIndexes),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var keyIndex = _step15.value;\n var pubkey = accountKeys.get(keyIndex);\n\n if (pubkey === undefined) {\n throw new Error(\"Failed to find key for account key index \".concat(keyIndex));\n }\n\n var isSigner = keyIndex < numRequiredSignatures;\n var isWritable = void 0;\n\n if (isSigner) {\n isWritable = keyIndex < numWritableSignedAccounts;\n } else if (keyIndex < accountKeys.staticAccountKeys.length) {\n isWritable = keyIndex - numRequiredSignatures < numWritableUnsignedAccounts;\n } else {\n isWritable = keyIndex - accountKeys.staticAccountKeys.length < // accountKeysFromLookups cannot be undefined because we already found a pubkey for this index above\n accountKeys.accountKeysFromLookups.writable.length;\n }\n\n keys.push({\n pubkey: pubkey,\n isSigner: keyIndex < header.numRequiredSignatures,\n isWritable: isWritable\n });\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n var programId = accountKeys.get(compiledIx.programIdIndex);\n\n if (programId === undefined) {\n throw new Error(\"Failed to find program id for program id index \".concat(compiledIx.programIdIndex));\n }\n\n instructions.push(new TransactionInstruction({\n programId: programId,\n data: toBuffer(compiledIx.data),\n keys: keys\n }));\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n return new TransactionMessage({\n payerKey: payerKey,\n instructions: instructions,\n recentBlockhash: recentBlockhash\n });\n }\n }]);\n\n return TransactionMessage;\n}();\n/**\n * Versioned transaction class\n */\n\n\nvar VersionedTransaction = /*#__PURE__*/function () {\n function VersionedTransaction(message, signatures) {\n _classCallCheck(this, VersionedTransaction);\n\n this.signatures = void 0;\n this.message = void 0;\n\n if (signatures !== undefined) {\n assert(signatures.length === message.header.numRequiredSignatures, 'Expected signatures length to be equal to the number of required signatures');\n this.signatures = signatures;\n } else {\n var defaultSignatures = [];\n\n for (var i = 0; i < message.header.numRequiredSignatures; i++) {\n defaultSignatures.push(new Uint8Array(SIGNATURE_LENGTH_IN_BYTES));\n }\n\n this.signatures = defaultSignatures;\n }\n\n this.message = message;\n }\n\n _createClass(VersionedTransaction, [{\n key: \"version\",\n get: function get() {\n return this.message.version;\n }\n }, {\n key: \"serialize\",\n value: function serialize() {\n var serializedMessage = this.message.serialize();\n var encodedSignaturesLength = Array();\n encodeLength(encodedSignaturesLength, this.signatures.length);\n var transactionLayout = struct([blob$1(encodedSignaturesLength.length, 'encodedSignaturesLength'), seq$1(signature(), this.signatures.length, 'signatures'), blob$1(serializedMessage.length, 'serializedMessage')]);\n var serializedTransaction = new Uint8Array(2048);\n var serializedTransactionLength = transactionLayout.encode({\n encodedSignaturesLength: new Uint8Array(encodedSignaturesLength),\n signatures: this.signatures,\n serializedMessage: serializedMessage\n }, serializedTransaction);\n return serializedTransaction.slice(0, serializedTransactionLength);\n }\n }, {\n key: \"sign\",\n value: function sign(signers) {\n var _this11 = this;\n\n var messageData = this.message.serialize();\n var signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures);\n\n var _iterator16 = _createForOfIteratorHelper(signers),\n _step16;\n\n try {\n var _loop4 = function _loop4() {\n var signer = _step16.value;\n var signerIndex = signerPubkeys.findIndex(function (pubkey) {\n return pubkey.equals(signer.publicKey);\n });\n assert(signerIndex >= 0, \"Cannot sign with non signer key \".concat(signer.publicKey.toBase58()));\n _this11.signatures[signerIndex] = _sign(messageData, signer.secretKey);\n };\n\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n _loop4();\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n }\n }, {\n key: \"addSignature\",\n value: function addSignature(publicKey, signature) {\n assert(signature.byteLength === 64, 'Signature must be 64 bytes long');\n var signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures);\n var signerIndex = signerPubkeys.findIndex(function (pubkey) {\n return pubkey.equals(publicKey);\n });\n assert(signerIndex >= 0, \"Can not add signature; `\".concat(publicKey.toBase58(), \"` is not required to sign this transaction\"));\n this.signatures[signerIndex] = signature;\n }\n }], [{\n key: \"deserialize\",\n value: function deserialize(serializedTransaction) {\n var byteArray = _toConsumableArray(serializedTransaction);\n\n var signatures = [];\n var signaturesLength = decodeLength(byteArray);\n\n for (var i = 0; i < signaturesLength; i++) {\n signatures.push(new Uint8Array(byteArray.splice(0, SIGNATURE_LENGTH_IN_BYTES)));\n }\n\n var message = VersionedMessage.deserialize(new Uint8Array(byteArray));\n return new VersionedTransaction(message, signatures);\n }\n }]);\n\n return VersionedTransaction;\n}(); // TODO: These constants should be removed in favor of reading them out of a\n// Syscall account\n\n/**\n * @internal\n */\n\n\nvar NUM_TICKS_PER_SECOND = 160;\n/**\n * @internal\n */\n\nvar DEFAULT_TICKS_PER_SLOT = 64;\n/**\n * @internal\n */\n\nvar NUM_SLOTS_PER_SECOND = NUM_TICKS_PER_SECOND / DEFAULT_TICKS_PER_SLOT;\n/**\n * @internal\n */\n\nvar MS_PER_SLOT = 1000 / NUM_SLOTS_PER_SECOND;\nvar SYSVAR_CLOCK_PUBKEY = new PublicKey('SysvarC1ock11111111111111111111111111111111');\nvar SYSVAR_EPOCH_SCHEDULE_PUBKEY = new PublicKey('SysvarEpochSchedu1e111111111111111111111111');\nvar SYSVAR_INSTRUCTIONS_PUBKEY = new PublicKey('Sysvar1nstructions1111111111111111111111111');\nvar SYSVAR_RECENT_BLOCKHASHES_PUBKEY = new PublicKey('SysvarRecentB1ockHashes11111111111111111111');\nvar SYSVAR_RENT_PUBKEY = new PublicKey('SysvarRent111111111111111111111111111111111');\nvar SYSVAR_REWARDS_PUBKEY = new PublicKey('SysvarRewards111111111111111111111111111111');\nvar SYSVAR_SLOT_HASHES_PUBKEY = new PublicKey('SysvarS1otHashes111111111111111111111111111');\nvar SYSVAR_SLOT_HISTORY_PUBKEY = new PublicKey('SysvarS1otHistory11111111111111111111111111');\nvar SYSVAR_STAKE_HISTORY_PUBKEY = new PublicKey('SysvarStakeHistory1111111111111111111111111');\n/**\n * Sign, send and confirm a transaction.\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Transaction} transaction\n * @param {Array} signers\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\n\nfunction sendAndConfirmTransaction(_x9, _x10, _x11, _x12) {\n return _sendAndConfirmTransaction.apply(this, arguments);\n} // zzz\n\n\nfunction _sendAndConfirmTransaction() {\n _sendAndConfirmTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee109(connection, transaction, signers, options) {\n var sendOptions, signature, status, nonceInstruction, nonceAccountPubkey;\n return _regeneratorRuntime().wrap(function _callee109$(_context109) {\n while (1) {\n switch (_context109.prev = _context109.next) {\n case 0:\n sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n maxRetries: options.maxRetries,\n minContextSlot: options.minContextSlot\n };\n _context109.next = 3;\n return connection.sendTransaction(transaction, signers, sendOptions);\n\n case 3:\n signature = _context109.sent;\n\n if (!(transaction.recentBlockhash != null && transaction.lastValidBlockHeight != null)) {\n _context109.next = 10;\n break;\n }\n\n _context109.next = 7;\n return connection.confirmTransaction({\n abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal,\n signature: signature,\n blockhash: transaction.recentBlockhash,\n lastValidBlockHeight: transaction.lastValidBlockHeight\n }, options && options.commitment);\n\n case 7:\n status = _context109.sent.value;\n _context109.next = 22;\n break;\n\n case 10:\n if (!(transaction.minNonceContextSlot != null && transaction.nonceInfo != null)) {\n _context109.next = 18;\n break;\n }\n\n nonceInstruction = transaction.nonceInfo.nonceInstruction;\n nonceAccountPubkey = nonceInstruction.keys[0].pubkey;\n _context109.next = 15;\n return connection.confirmTransaction({\n abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal,\n minContextSlot: transaction.minNonceContextSlot,\n nonceAccountPubkey: nonceAccountPubkey,\n nonceValue: transaction.nonceInfo.nonce,\n signature: signature\n }, options && options.commitment);\n\n case 15:\n status = _context109.sent.value;\n _context109.next = 22;\n break;\n\n case 18:\n if ((options === null || options === void 0 ? void 0 : options.abortSignal) != null) {\n console.warn('sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was ' + 'supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` ' + 'or a combination of `nonceInfo` and `minNonceContextSlot` are abortable.');\n }\n\n _context109.next = 21;\n return connection.confirmTransaction(signature, options && options.commitment);\n\n case 21:\n status = _context109.sent.value;\n\n case 22:\n if (!status.err) {\n _context109.next = 24;\n break;\n }\n\n throw new Error(\"Transaction \".concat(signature, \" failed (\").concat(JSON.stringify(status), \")\"));\n\n case 24:\n return _context109.abrupt(\"return\", signature);\n\n case 25:\n case \"end\":\n return _context109.stop();\n }\n }\n }, _callee109);\n }));\n return _sendAndConfirmTransaction.apply(this, arguments);\n}\n\nfunction sleep(ms) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, ms);\n });\n}\n/**\n * @internal\n */\n\n/**\n * Populate a buffer of instruction data using an InstructionType\n * @internal\n */\n\n\nfunction encodeData(type, fields) {\n var allocLength = type.layout.span >= 0 ? type.layout.span : getAlloc(type, fields);\n var data = Buffer$1.alloc(allocLength);\n var layoutFields = Object.assign({\n instruction: type.index\n }, fields);\n type.layout.encode(layoutFields, data);\n return data;\n}\n/**\n * Decode instruction data buffer using an InstructionType\n * @internal\n */\n\n\nfunction decodeData$1(type, buffer) {\n var data;\n\n try {\n data = type.layout.decode(buffer);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n\n if (data.instruction !== type.index) {\n throw new Error(\"invalid instruction; instruction index mismatch \".concat(data.instruction, \" != \").concat(type.index));\n }\n\n return data;\n}\n/**\n * https://github.com/solana-labs/solana/blob/90bedd7e067b5b8f3ddbb45da00a4e9cabb22c62/sdk/src/fee_calculator.rs#L7-L11\n *\n * @internal\n */\n\n\nvar FeeCalculatorLayout = nu64$1('lamportsPerSignature');\n/**\n * Calculator for transaction fees.\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * See https://github.com/solana-labs/solana/blob/0ea2843ec9cdc517572b8e62c959f41b55cf4453/sdk/src/nonce_state.rs#L29-L32\n *\n * @internal\n */\n\nvar NonceAccountLayout = struct([u32('version'), u32('state'), publicKey('authorizedPubkey'), publicKey('nonce'), struct([FeeCalculatorLayout], 'feeCalculator')]);\nvar NONCE_ACCOUNT_LENGTH = NonceAccountLayout.span;\n/**\n * A durable nonce is a 32 byte value encoded as a base58 string.\n */\n\n/**\n * NonceAccount class\n */\n\nvar NonceAccount = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function NonceAccount(args) {\n _classCallCheck(this, NonceAccount);\n\n this.authorizedPubkey = void 0;\n this.nonce = void 0;\n this.feeCalculator = void 0;\n this.authorizedPubkey = args.authorizedPubkey;\n this.nonce = args.nonce;\n this.feeCalculator = args.feeCalculator;\n }\n /**\n * Deserialize NonceAccount from the account data.\n *\n * @param buffer account data\n * @return NonceAccount\n */\n\n\n _createClass(NonceAccount, null, [{\n key: \"fromAccountData\",\n value: function fromAccountData(buffer) {\n var nonceAccount = NonceAccountLayout.decode(toBuffer(buffer), 0);\n return new NonceAccount({\n authorizedPubkey: new PublicKey(nonceAccount.authorizedPubkey),\n nonce: new PublicKey(nonceAccount.nonce).toString(),\n feeCalculator: nonceAccount.feeCalculator\n });\n }\n }]);\n\n return NonceAccount;\n}();\n\nvar encodeDecode = function encodeDecode(layout) {\n var decode = layout.decode.bind(layout);\n var encode = layout.encode.bind(layout);\n return {\n decode: decode,\n encode: encode\n };\n};\n\nvar bigInt = function bigInt(length) {\n return function (property) {\n var layout = blob$1(length, property);\n\n var _encodeDecode = encodeDecode(layout),\n encode = _encodeDecode.encode,\n decode = _encodeDecode.decode;\n\n var bigIntLayout = layout;\n\n bigIntLayout.decode = function (buffer, offset) {\n var src = decode(buffer, offset);\n return toBigIntLE_1(Buffer$1.from(src));\n };\n\n bigIntLayout.encode = function (bigInt, buffer, offset) {\n var src = toBufferLE_1(bigInt, length);\n return encode(src, buffer, offset);\n };\n\n return bigIntLayout;\n };\n};\n\nvar u64 = bigInt(8);\n/**\n * Create account system transaction params\n */\n\n/**\n * Transfer system transaction params\n */\n\n/**\n * Assign system transaction params\n */\n\n/**\n * Create account with seed system transaction params\n */\n\n/**\n * Create nonce account system transaction params\n */\n\n/**\n * Create nonce account with seed system transaction params\n */\n\n/**\n * Initialize nonce account system instruction params\n */\n\n/**\n * Advance nonce account system instruction params\n */\n\n/**\n * Withdraw nonce account system transaction params\n */\n\n/**\n * Authorize nonce account system transaction params\n */\n\n/**\n * Allocate account system transaction params\n */\n\n/**\n * Allocate account with seed system transaction params\n */\n\n/**\n * Assign account with seed system transaction params\n */\n\n/**\n * Transfer with seed system transaction params\n */\n\n/** Decoded transfer system transaction instruction */\n\n/** Decoded transferWithSeed system transaction instruction */\n\n/**\n * System Instruction class\n */\n\nvar SystemInstruction = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function SystemInstruction() {\n _classCallCheck(this, SystemInstruction);\n }\n /**\n * Decode a system instruction and retrieve the instruction type.\n */\n\n\n _createClass(SystemInstruction, null, [{\n key: \"decodeInstructionType\",\n value: function decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n var instructionTypeLayout = u32('instruction');\n var typeIndex = instructionTypeLayout.decode(instruction.data);\n var type;\n\n for (var _i9 = 0, _Object$entries = Object.entries(SYSTEM_INSTRUCTION_LAYOUTS); _i9 < _Object$entries.length; _i9++) {\n var _Object$entries$_i2 = _slicedToArray(_Object$entries[_i9], 2),\n ixType = _Object$entries$_i2[0],\n layout = _Object$entries$_i2[1];\n\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a SystemInstruction');\n }\n\n return type;\n }\n /**\n * Decode a create account system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeCreateAccount\",\n value: function decodeCreateAccount(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n var _decodeData$ = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Create, instruction.data),\n lamports = _decodeData$.lamports,\n space = _decodeData$.space,\n programId = _decodeData$.programId;\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n lamports: lamports,\n space: space,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode a transfer system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeTransfer\",\n value: function decodeTransfer(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n var _decodeData$2 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Transfer, instruction.data),\n lamports = _decodeData$2.lamports;\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n lamports: lamports\n };\n }\n /**\n * Decode a transfer with seed system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeTransferWithSeed\",\n value: function decodeTransferWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$3 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed, instruction.data),\n lamports = _decodeData$3.lamports,\n seed = _decodeData$3.seed,\n programId = _decodeData$3.programId;\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n basePubkey: instruction.keys[1].pubkey,\n toPubkey: instruction.keys[2].pubkey,\n lamports: lamports,\n seed: seed,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode an allocate system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAllocate\",\n value: function decodeAllocate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n var _decodeData$4 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Allocate, instruction.data),\n space = _decodeData$4.space;\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n space: space\n };\n }\n /**\n * Decode an allocate with seed system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAllocateWithSeed\",\n value: function decodeAllocateWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n var _decodeData$5 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed, instruction.data),\n base = _decodeData$5.base,\n seed = _decodeData$5.seed,\n space = _decodeData$5.space,\n programId = _decodeData$5.programId;\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed: seed,\n space: space,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode an assign system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAssign\",\n value: function decodeAssign(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n var _decodeData$6 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Assign, instruction.data),\n programId = _decodeData$6.programId;\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode an assign with seed system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAssignWithSeed\",\n value: function decodeAssignWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n var _decodeData$7 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed, instruction.data),\n base = _decodeData$7.base,\n seed = _decodeData$7.seed,\n programId = _decodeData$7.programId;\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed: seed,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode a create account with seed system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeCreateWithSeed\",\n value: function decodeCreateWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n var _decodeData$8 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed, instruction.data),\n base = _decodeData$8.base,\n seed = _decodeData$8.seed,\n lamports = _decodeData$8.lamports,\n space = _decodeData$8.space,\n programId = _decodeData$8.programId;\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n basePubkey: new PublicKey(base),\n seed: seed,\n lamports: lamports,\n space: space,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode a nonce initialize system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeNonceInitialize\",\n value: function decodeNonceInitialize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$9 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount, instruction.data),\n authorized = _decodeData$9.authorized;\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: new PublicKey(authorized)\n };\n }\n /**\n * Decode a nonce advance system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeNonceAdvance\",\n value: function decodeNonceAdvance(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey\n };\n }\n /**\n * Decode a nonce withdraw system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeNonceWithdraw\",\n value: function decodeNonceWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n\n var _decodeData$10 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount, instruction.data),\n lamports = _decodeData$10.lamports;\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports: lamports\n };\n }\n /**\n * Decode a nonce authorize system instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeNonceAuthorize\",\n value: function decodeNonceAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n var _decodeData$11 = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount, instruction.data),\n authorized = _decodeData$11.authorized;\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[1].pubkey,\n newAuthorizedPubkey: new PublicKey(authorized)\n };\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkProgramId\",\n value: function checkProgramId(programId) {\n if (!programId.equals(SystemProgram.programId)) {\n throw new Error('invalid instruction; programId is not SystemProgram');\n }\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkKeyLength\",\n value: function checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(\"invalid instruction; found \".concat(keys.length, \" keys, expected at least \").concat(expectedLength));\n }\n }\n }]);\n\n return SystemInstruction;\n}();\n/**\n * An enumeration of valid SystemInstructionType's\n */\n\n/**\n * An enumeration of valid system InstructionType's\n * @internal\n */\n\n\nvar SYSTEM_INSTRUCTION_LAYOUTS = Object.freeze({\n Create: {\n index: 0,\n layout: struct([u32('instruction'), ns64('lamports'), ns64('space'), publicKey('programId')])\n },\n Assign: {\n index: 1,\n layout: struct([u32('instruction'), publicKey('programId')])\n },\n Transfer: {\n index: 2,\n layout: struct([u32('instruction'), u64('lamports')])\n },\n CreateWithSeed: {\n index: 3,\n layout: struct([u32('instruction'), publicKey('base'), rustString('seed'), ns64('lamports'), ns64('space'), publicKey('programId')])\n },\n AdvanceNonceAccount: {\n index: 4,\n layout: struct([u32('instruction')])\n },\n WithdrawNonceAccount: {\n index: 5,\n layout: struct([u32('instruction'), ns64('lamports')])\n },\n InitializeNonceAccount: {\n index: 6,\n layout: struct([u32('instruction'), publicKey('authorized')])\n },\n AuthorizeNonceAccount: {\n index: 7,\n layout: struct([u32('instruction'), publicKey('authorized')])\n },\n Allocate: {\n index: 8,\n layout: struct([u32('instruction'), ns64('space')])\n },\n AllocateWithSeed: {\n index: 9,\n layout: struct([u32('instruction'), publicKey('base'), rustString('seed'), ns64('space'), publicKey('programId')])\n },\n AssignWithSeed: {\n index: 10,\n layout: struct([u32('instruction'), publicKey('base'), rustString('seed'), publicKey('programId')])\n },\n TransferWithSeed: {\n index: 11,\n layout: struct([u32('instruction'), u64('lamports'), rustString('seed'), publicKey('programId')])\n },\n UpgradeNonceAccount: {\n index: 12,\n layout: struct([u32('instruction')])\n }\n});\n/**\n * Factory class for transactions to interact with the System program\n */\n\nvar SystemProgram = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function SystemProgram() {\n _classCallCheck(this, SystemProgram);\n }\n /**\n * Public key that identifies the System program\n */\n\n /**\n * Generate a transaction instruction that creates a new account\n */\n\n\n _createClass(SystemProgram, null, [{\n key: \"createAccount\",\n value: function createAccount(params) {\n var type = SYSTEM_INSTRUCTION_LAYOUTS.Create;\n var data = encodeData(type, {\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.newAccountPubkey,\n isSigner: true,\n isWritable: true\n }],\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction instruction that transfers lamports from one account to another\n */\n\n }, {\n key: \"transfer\",\n value: function transfer(params) {\n var data;\n var keys;\n\n if ('basePubkey' in params) {\n var _type = SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed;\n data = encodeData(_type, {\n lamports: BigInt(params.lamports),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.fromPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }];\n } else {\n var _type2 = SYSTEM_INSTRUCTION_LAYOUTS.Transfer;\n data = encodeData(_type2, {\n lamports: BigInt(params.lamports)\n });\n keys = [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }];\n }\n\n return new TransactionInstruction({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction instruction that assigns an account to a program\n */\n\n }, {\n key: \"assign\",\n value: function assign(params) {\n var data;\n var keys;\n\n if ('basePubkey' in params) {\n var _type3 = SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed;\n data = encodeData(_type3, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }];\n } else {\n var _type4 = SYSTEM_INSTRUCTION_LAYOUTS.Assign;\n data = encodeData(_type4, {\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: true,\n isWritable: true\n }];\n }\n\n return new TransactionInstruction({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction instruction that creates a new account at\n * an address generated with `from`, a seed, and programId\n */\n\n }, {\n key: \"createAccountWithSeed\",\n value: function createAccountWithSeed(params) {\n var type = SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed;\n var data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n var keys = [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.newAccountPubkey,\n isSigner: false,\n isWritable: true\n }];\n\n if (params.basePubkey != params.fromPubkey) {\n keys.push({\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n });\n }\n\n return new TransactionInstruction({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction that creates a new Nonce account\n */\n\n }, {\n key: \"createNonceAccount\",\n value: function createNonceAccount(params) {\n var transaction = new Transaction();\n\n if ('basePubkey' in params && 'seed' in params) {\n transaction.add(SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId\n }));\n } else {\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId\n }));\n }\n\n var initParams = {\n noncePubkey: params.noncePubkey,\n authorizedPubkey: params.authorizedPubkey\n };\n transaction.add(this.nonceInitialize(initParams));\n return transaction;\n }\n /**\n * Generate an instruction to initialize a Nonce account\n */\n\n }, {\n key: \"nonceInitialize\",\n value: function nonceInitialize(params) {\n var type = SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount;\n var data = encodeData(type, {\n authorized: toBuffer(params.authorizedPubkey.toBuffer())\n });\n var instructionData = {\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate an instruction to advance the nonce in a Nonce account\n */\n\n }, {\n key: \"nonceAdvance\",\n value: function nonceAdvance(params) {\n var type = SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount;\n var data = encodeData(type);\n var instructionData = {\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate a transaction instruction that withdraws lamports from a Nonce account\n */\n\n }, {\n key: \"nonceWithdraw\",\n value: function nonceWithdraw(params) {\n var type = SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount;\n var data = encodeData(type, {\n lamports: params.lamports\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction instruction that authorizes a new PublicKey as the authority\n * on a Nonce account.\n */\n\n }, {\n key: \"nonceAuthorize\",\n value: function nonceAuthorize(params) {\n var type = SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount;\n var data = encodeData(type, {\n authorized: toBuffer(params.newAuthorizedPubkey.toBuffer())\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction instruction that allocates space in an account without funding\n */\n\n }, {\n key: \"allocate\",\n value: function allocate(params) {\n var data;\n var keys;\n\n if ('basePubkey' in params) {\n var _type5 = SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed;\n data = encodeData(_type5, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }];\n } else {\n var _type6 = SYSTEM_INSTRUCTION_LAYOUTS.Allocate;\n data = encodeData(_type6, {\n space: params.space\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: true,\n isWritable: true\n }];\n }\n\n return new TransactionInstruction({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n }]);\n\n return SystemProgram;\n}();\n\nSystemProgram.programId = new PublicKey('11111111111111111111111111111111'); // Keep program chunks under PACKET_DATA_SIZE, leaving enough room for the\n// rest of the Transaction fields\n//\n// TODO: replace 300 with a proper constant for the size of the other\n// Transaction fields\n\nvar CHUNK_SIZE = PACKET_DATA_SIZE - 300;\n/**\n * Program loader interface\n */\n\nvar Loader = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function Loader() {\n _classCallCheck(this, Loader);\n }\n /**\n * Amount of program data placed in each load Transaction\n */\n\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n\n\n _createClass(Loader, null, [{\n key: \"getMinNumSignatures\",\n value: function getMinNumSignatures(dataLength) {\n return 2 * ( // Every transaction requires two signatures (payer + program)\n Math.ceil(dataLength / Loader.chunkSize) + 1 + // Add one for Create transaction\n 1) // Add one for Finalize transaction\n ;\n }\n /**\n * Loads a generic program\n *\n * @param connection The connection to use\n * @param payer System account that pays to load the program\n * @param program Account to load the program into\n * @param programId Public key that identifies the loader\n * @param data Program octets\n * @return true if program was loaded successfully, false if program was already loaded\n */\n\n }, {\n key: \"load\",\n value: function () {\n var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(connection, payer, program, programId, data) {\n var balanceNeeded, programInfo, transaction, dataLayout, chunkSize, offset, array, transactions, bytes, _data, _transaction, REQUESTS_PER_SECOND, _dataLayout, _data2, _transaction2, deployCommitment, finalizeSignature, _yield$connection$con2, context, value, currentSlot;\n\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return connection.getMinimumBalanceForRentExemption(data.length);\n\n case 2:\n balanceNeeded = _context5.sent;\n _context5.next = 5;\n return connection.getAccountInfo(program.publicKey, 'confirmed');\n\n case 5:\n programInfo = _context5.sent;\n transaction = null;\n\n if (!(programInfo !== null)) {\n _context5.next = 16;\n break;\n }\n\n if (!programInfo.executable) {\n _context5.next = 11;\n break;\n }\n\n console.error('Program load failed, account is already executable');\n return _context5.abrupt(\"return\", false);\n\n case 11:\n if (programInfo.data.length !== data.length) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.allocate({\n accountPubkey: program.publicKey,\n space: data.length\n }));\n }\n\n if (!programInfo.owner.equals(programId)) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.assign({\n accountPubkey: program.publicKey,\n programId: programId\n }));\n }\n\n if (programInfo.lamports < balanceNeeded) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.transfer({\n fromPubkey: payer.publicKey,\n toPubkey: program.publicKey,\n lamports: balanceNeeded - programInfo.lamports\n }));\n }\n\n _context5.next = 17;\n break;\n\n case 16:\n transaction = new Transaction().add(SystemProgram.createAccount({\n fromPubkey: payer.publicKey,\n newAccountPubkey: program.publicKey,\n lamports: balanceNeeded > 0 ? balanceNeeded : 1,\n space: data.length,\n programId: programId\n }));\n\n case 17:\n if (!(transaction !== null)) {\n _context5.next = 20;\n break;\n }\n\n _context5.next = 20;\n return sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed'\n });\n\n case 20:\n dataLayout = struct([u32('instruction'), u32('offset'), u32('bytesLength'), u32('bytesLengthPadding'), seq$1(u8('byte'), offset$1(u32(), -8), 'bytes')]);\n chunkSize = Loader.chunkSize;\n offset = 0;\n array = data;\n transactions = [];\n\n case 25:\n if (!(array.length > 0)) {\n _context5.next = 39;\n break;\n }\n\n bytes = array.slice(0, chunkSize);\n _data = Buffer$1.alloc(chunkSize + 16);\n dataLayout.encode({\n instruction: 0,\n // Load instruction\n offset: offset,\n bytes: bytes,\n bytesLength: 0,\n bytesLengthPadding: 0\n }, _data);\n _transaction = new Transaction().add({\n keys: [{\n pubkey: program.publicKey,\n isSigner: true,\n isWritable: true\n }],\n programId: programId,\n data: _data\n });\n transactions.push(sendAndConfirmTransaction(connection, _transaction, [payer, program], {\n commitment: 'confirmed'\n })); // Delay between sends in an attempt to reduce rate limit errors\n\n if (!connection._rpcEndpoint.includes('solana.com')) {\n _context5.next = 35;\n break;\n }\n\n REQUESTS_PER_SECOND = 4;\n _context5.next = 35;\n return sleep(1000 / REQUESTS_PER_SECOND);\n\n case 35:\n offset += chunkSize;\n array = array.slice(chunkSize);\n _context5.next = 25;\n break;\n\n case 39:\n _context5.next = 41;\n return Promise.all(transactions);\n\n case 41:\n _dataLayout = struct([u32('instruction')]);\n _data2 = Buffer$1.alloc(_dataLayout.span);\n\n _dataLayout.encode({\n instruction: 1 // Finalize instruction\n\n }, _data2);\n\n _transaction2 = new Transaction().add({\n keys: [{\n pubkey: program.publicKey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: programId,\n data: _data2\n });\n deployCommitment = 'processed';\n _context5.next = 48;\n return connection.sendTransaction(_transaction2, [payer, program], {\n preflightCommitment: deployCommitment\n });\n\n case 48:\n finalizeSignature = _context5.sent;\n _context5.next = 51;\n return connection.confirmTransaction({\n signature: finalizeSignature,\n lastValidBlockHeight: _transaction2.lastValidBlockHeight,\n blockhash: _transaction2.recentBlockhash\n }, deployCommitment);\n\n case 51:\n _yield$connection$con2 = _context5.sent;\n context = _yield$connection$con2.context;\n value = _yield$connection$con2.value;\n\n if (!value.err) {\n _context5.next = 56;\n break;\n }\n\n throw new Error(\"Transaction \".concat(finalizeSignature, \" failed (\").concat(JSON.stringify(value), \")\"));\n\n case 56:\n _context5.prev = 57;\n _context5.next = 60;\n return connection.getSlot({\n commitment: deployCommitment\n });\n\n case 60:\n currentSlot = _context5.sent;\n\n if (!(currentSlot > context.slot)) {\n _context5.next = 63;\n break;\n }\n\n return _context5.abrupt(\"break\", 71);\n\n case 63:\n _context5.next = 67;\n break;\n\n case 65:\n _context5.prev = 65;\n _context5.t0 = _context5[\"catch\"](57);\n\n case 67:\n _context5.next = 69;\n return new Promise(function (resolve) {\n return setTimeout(resolve, Math.round(MS_PER_SLOT / 2));\n });\n\n case 69:\n _context5.next = 56;\n break;\n\n case 71:\n return _context5.abrupt(\"return\", true);\n\n case 72:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, null, [[57, 65]]);\n }));\n\n function load(_x13, _x14, _x15, _x16, _x17) {\n return _load.apply(this, arguments);\n }\n\n return load;\n }()\n }]);\n\n return Loader;\n}();\n\nLoader.chunkSize = CHUNK_SIZE;\nvar BPF_LOADER_PROGRAM_ID = new PublicKey('BPFLoader2111111111111111111111111111111111');\n/**\n * Factory class for transactions to interact with a program loader\n */\n\nvar BpfLoader = /*#__PURE__*/function () {\n function BpfLoader() {\n _classCallCheck(this, BpfLoader);\n }\n\n _createClass(BpfLoader, null, [{\n key: \"getMinNumSignatures\",\n value:\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n function getMinNumSignatures(dataLength) {\n return Loader.getMinNumSignatures(dataLength);\n }\n /**\n * Load a SBF program\n *\n * @param connection The connection to use\n * @param payer Account that will pay program loading fees\n * @param program Account to load the program into\n * @param elf The entire ELF containing the SBF program\n * @param loaderProgramId The program id of the BPF loader to use\n * @return true if program was loaded successfully, false if program was already loaded\n */\n\n }, {\n key: \"load\",\n value: function load(connection, payer, program, elf, loaderProgramId) {\n return Loader.load(connection, payer, program, loaderProgramId, elf);\n }\n }]);\n\n return BpfLoader;\n}();\n\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar objToString = Object.prototype.toString;\n\nvar objKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var name in obj) {\n keys.push(name);\n }\n\n return keys;\n};\n\nfunction stringify(val, isArrayProp) {\n var i, max, str, keys, key, propVal, toStr;\n\n if (val === true) {\n return \"true\";\n }\n\n if (val === false) {\n return \"false\";\n }\n\n switch (_typeof$1(val)) {\n case \"object\":\n if (val === null) {\n return null;\n } else if (val.toJSON && typeof val.toJSON === \"function\") {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n\n if (toStr === \"[object Array]\") {\n str = '[';\n max = val.length - 1;\n\n for (i = 0; i < max; i++) {\n str += stringify(val[i], true) + ',';\n }\n\n if (max > -1) {\n str += stringify(val[i], true);\n }\n\n return str + ']';\n } else if (toStr === \"[object Object]\") {\n // only object is left\n keys = objKeys(val).sort();\n max = keys.length;\n str = \"\";\n i = 0;\n\n while (i < max) {\n key = keys[i];\n propVal = stringify(val[key], false);\n\n if (propVal !== undefined) {\n if (str) {\n str += ',';\n }\n\n str += JSON.stringify(key) + ':' + propVal;\n }\n\n i++;\n }\n\n return '{' + str + '}';\n } else {\n return JSON.stringify(val);\n }\n }\n\n case \"function\":\n case \"undefined\":\n return isArrayProp ? null : undefined;\n\n case \"string\":\n return JSON.stringify(val);\n\n default:\n return isFinite(val) ? val : null;\n }\n}\n\nvar fastStableStringify = function fastStableStringify(val) {\n var returnVal = stringify(val, false);\n\n if (returnVal !== undefined) {\n return '' + returnVal;\n }\n};\n\nvar fastStableStringify$1 = /*@__PURE__*/getDefaultExportFromCjs(fastStableStringify);\nvar MINIMUM_SLOT_PER_EPOCH = 32; // Returns the number of trailing zeros in the binary representation of self.\n\nfunction trailingZeros(n) {\n var trailingZeros = 0;\n\n while (n > 1) {\n n /= 2;\n trailingZeros++;\n }\n\n return trailingZeros;\n} // Returns the smallest power of two greater than or equal to n\n\n\nfunction nextPowerOfTwo(n) {\n if (n === 0) return 1;\n n--;\n n |= n >> 1;\n n |= n >> 2;\n n |= n >> 4;\n n |= n >> 8;\n n |= n >> 16;\n n |= n >> 32;\n return n + 1;\n}\n/**\n * Epoch schedule\n * (see https://docs.solana.com/terminology#epoch)\n * Can be retrieved with the {@link Connection.getEpochSchedule} method\n */\n\n\nvar EpochSchedule = /*#__PURE__*/function () {\n function EpochSchedule(slotsPerEpoch, leaderScheduleSlotOffset, warmup, firstNormalEpoch, firstNormalSlot) {\n _classCallCheck(this, EpochSchedule);\n /** The maximum number of slots in each epoch */\n\n\n this.slotsPerEpoch = void 0;\n /** The number of slots before beginning of an epoch to calculate a leader schedule for that epoch */\n\n this.leaderScheduleSlotOffset = void 0;\n /** Indicates whether epochs start short and grow */\n\n this.warmup = void 0;\n /** The first epoch with `slotsPerEpoch` slots */\n\n this.firstNormalEpoch = void 0;\n /** The first slot of `firstNormalEpoch` */\n\n this.firstNormalSlot = void 0;\n this.slotsPerEpoch = slotsPerEpoch;\n this.leaderScheduleSlotOffset = leaderScheduleSlotOffset;\n this.warmup = warmup;\n this.firstNormalEpoch = firstNormalEpoch;\n this.firstNormalSlot = firstNormalSlot;\n }\n\n _createClass(EpochSchedule, [{\n key: \"getEpoch\",\n value: function getEpoch(slot) {\n return this.getEpochAndSlotIndex(slot)[0];\n }\n }, {\n key: \"getEpochAndSlotIndex\",\n value: function getEpochAndSlotIndex(slot) {\n if (slot < this.firstNormalSlot) {\n var epoch = trailingZeros(nextPowerOfTwo(slot + MINIMUM_SLOT_PER_EPOCH + 1)) - trailingZeros(MINIMUM_SLOT_PER_EPOCH) - 1;\n var epochLen = this.getSlotsInEpoch(epoch);\n var slotIndex = slot - (epochLen - MINIMUM_SLOT_PER_EPOCH);\n return [epoch, slotIndex];\n } else {\n var normalSlotIndex = slot - this.firstNormalSlot;\n var normalEpochIndex = Math.floor(normalSlotIndex / this.slotsPerEpoch);\n\n var _epoch = this.firstNormalEpoch + normalEpochIndex;\n\n var _slotIndex = normalSlotIndex % this.slotsPerEpoch;\n\n return [_epoch, _slotIndex];\n }\n }\n }, {\n key: \"getFirstSlotInEpoch\",\n value: function getFirstSlotInEpoch(epoch) {\n if (epoch <= this.firstNormalEpoch) {\n return (Math.pow(2, epoch) - 1) * MINIMUM_SLOT_PER_EPOCH;\n } else {\n return (epoch - this.firstNormalEpoch) * this.slotsPerEpoch + this.firstNormalSlot;\n }\n }\n }, {\n key: \"getLastSlotInEpoch\",\n value: function getLastSlotInEpoch(epoch) {\n return this.getFirstSlotInEpoch(epoch) + this.getSlotsInEpoch(epoch) - 1;\n }\n }, {\n key: \"getSlotsInEpoch\",\n value: function getSlotsInEpoch(epoch) {\n if (epoch < this.firstNormalEpoch) {\n return Math.pow(2, epoch + trailingZeros(MINIMUM_SLOT_PER_EPOCH));\n } else {\n return this.slotsPerEpoch;\n }\n }\n }]);\n\n return EpochSchedule;\n}();\n\nvar SendTransactionError = /*#__PURE__*/function (_Error4) {\n _inherits(SendTransactionError, _Error4);\n\n var _super6 = _createSuper(SendTransactionError);\n\n function SendTransactionError(message, logs) {\n var _this12;\n\n _classCallCheck(this, SendTransactionError);\n\n _this12 = _super6.call(this, message);\n _this12.logs = void 0;\n _this12.logs = logs;\n return _this12;\n }\n\n return _createClass(SendTransactionError);\n}( /*#__PURE__*/_wrapNativeSuper(Error)); // Keep in sync with client/src/rpc_custom_errors.rs\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\n\n\nvar SolanaJSONRPCErrorCode = {\n JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001,\n JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003,\n JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004,\n JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005,\n JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006,\n JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007,\n JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008,\n JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009,\n JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010,\n JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011,\n JSON_RPC_SCAN_ERROR: -32012,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013,\n JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014,\n JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015,\n JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016\n};\n\nvar SolanaJSONRPCError = /*#__PURE__*/function (_Error5) {\n _inherits(SolanaJSONRPCError, _Error5);\n\n var _super7 = _createSuper(SolanaJSONRPCError);\n\n function SolanaJSONRPCError(_ref21, customMessage) {\n var _this13;\n\n var code = _ref21.code,\n message = _ref21.message,\n data = _ref21.data;\n\n _classCallCheck(this, SolanaJSONRPCError);\n\n _this13 = _super7.call(this, customMessage != null ? \"\".concat(customMessage, \": \").concat(message) : message);\n _this13.code = void 0;\n _this13.data = void 0;\n _this13.code = code;\n _this13.data = data;\n _this13.name = 'SolanaJSONRPCError';\n return _this13;\n }\n\n return _createClass(SolanaJSONRPCError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar fetchImpl = globalThis.fetch;\n\nvar RpcWebSocketClient = /*#__PURE__*/function (_RpcWebSocketCommonCl) {\n _inherits(RpcWebSocketClient, _RpcWebSocketCommonCl);\n\n var _super8 = _createSuper(RpcWebSocketClient);\n\n function RpcWebSocketClient(address, options, generate_request_id) {\n var _this14;\n\n _classCallCheck(this, RpcWebSocketClient);\n\n var webSocketFactory = function webSocketFactory(url) {\n var rpc = createRpc(url, _objectSpread2({\n autoconnect: true,\n max_reconnects: 5,\n reconnect: true,\n reconnect_interval: 1000\n }, options));\n\n if ('socket' in rpc) {\n _this14.underlyingSocket = rpc.socket;\n } else {\n _this14.underlyingSocket = rpc;\n }\n\n return rpc;\n };\n\n _this14 = _super8.call(this, webSocketFactory, address, options, generate_request_id);\n _this14.underlyingSocket = void 0;\n return _this14;\n }\n\n _createClass(RpcWebSocketClient, [{\n key: \"call\",\n value: function call() {\n var _this$underlyingSocke;\n\n var readyState = (_this$underlyingSocke = this.underlyingSocket) === null || _this$underlyingSocke === void 0 ? void 0 : _this$underlyingSocke.readyState;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n if (readyState === 1\n /* WebSocket.OPEN */\n ) {\n var _get2;\n\n return (_get2 = _get(_getPrototypeOf(RpcWebSocketClient.prototype), \"call\", this)).call.apply(_get2, [this].concat(args));\n }\n\n return Promise.reject(new Error('Tried to call a JSON-RPC method `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));\n }\n }, {\n key: \"notify\",\n value: function notify() {\n var _this$underlyingSocke2;\n\n var readyState = (_this$underlyingSocke2 = this.underlyingSocket) === null || _this$underlyingSocke2 === void 0 ? void 0 : _this$underlyingSocke2.readyState;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n if (readyState === 1\n /* WebSocket.OPEN */\n ) {\n var _get3;\n\n return (_get3 = _get(_getPrototypeOf(RpcWebSocketClient.prototype), \"notify\", this)).call.apply(_get3, [this].concat(args));\n }\n\n return Promise.reject(new Error('Tried to send a JSON-RPC notification `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));\n }\n }]);\n\n return RpcWebSocketClient;\n}(RpcWebSocketCommonClient);\n/**\n * @internal\n */\n\n/**\n * Decode account data buffer using an AccountType\n * @internal\n */\n\n\nfunction decodeData(type, data) {\n var decoded;\n\n try {\n decoded = type.layout.decode(data);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n\n if (decoded.typeIndex !== type.index) {\n throw new Error(\"invalid account data; account type mismatch \".concat(decoded.typeIndex, \" != \").concat(type.index));\n }\n\n return decoded;\n} /// The serialized size of lookup table metadata\n\n\nvar LOOKUP_TABLE_META_SIZE = 56;\n\nvar AddressLookupTableAccount = /*#__PURE__*/function () {\n function AddressLookupTableAccount(args) {\n _classCallCheck(this, AddressLookupTableAccount);\n\n this.key = void 0;\n this.state = void 0;\n this.key = args.key;\n this.state = args.state;\n }\n\n _createClass(AddressLookupTableAccount, [{\n key: \"isActive\",\n value: function isActive() {\n var U64_MAX = BigInt('0xffffffffffffffff');\n return this.state.deactivationSlot === U64_MAX;\n }\n }], [{\n key: \"deserialize\",\n value: function deserialize(accountData) {\n var meta = decodeData(LookupTableMetaLayout, accountData);\n var serializedAddressesLen = accountData.length - LOOKUP_TABLE_META_SIZE;\n assert(serializedAddressesLen >= 0, 'lookup table is invalid');\n assert(serializedAddressesLen % 32 === 0, 'lookup table is invalid');\n var numSerializedAddresses = serializedAddressesLen / 32;\n\n var _BufferLayout$struct$ = struct([seq$1(publicKey(), numSerializedAddresses, 'addresses')]).decode(accountData.slice(LOOKUP_TABLE_META_SIZE)),\n addresses = _BufferLayout$struct$.addresses;\n\n return {\n deactivationSlot: meta.deactivationSlot,\n lastExtendedSlot: meta.lastExtendedSlot,\n lastExtendedSlotStartIndex: meta.lastExtendedStartIndex,\n authority: meta.authority.length !== 0 ? new PublicKey(meta.authority[0]) : undefined,\n addresses: addresses.map(function (address) {\n return new PublicKey(address);\n })\n };\n }\n }]);\n\n return AddressLookupTableAccount;\n}();\n\nvar LookupTableMetaLayout = {\n index: 1,\n layout: struct([u32('typeIndex'), u64('deactivationSlot'), nu64$1('lastExtendedSlot'), u8('lastExtendedStartIndex'), u8(), // option\n seq$1(publicKey(), offset$1(u8(), -1), 'authority')])\n};\nvar URL_RE = /^[^:]+:\\/\\/([^:[]+|\\[[^\\]]+\\])(:\\d+)?(.*)/i;\n\nfunction makeWebsocketUrl(endpoint) {\n var matches = endpoint.match(URL_RE);\n\n if (matches == null) {\n throw TypeError(\"Failed to validate endpoint URL `\".concat(endpoint, \"`\"));\n }\n\n var _matches = _slicedToArray(matches, 4);\n\n _matches[0];\n var // eslint-disable-line @typescript-eslint/no-unused-vars\n hostish = _matches[1],\n portWithColon = _matches[2],\n rest = _matches[3];\n var protocol = endpoint.startsWith('https:') ? 'wss:' : 'ws:';\n var startPort = portWithColon == null ? null : parseInt(portWithColon.slice(1), 10);\n var websocketPort = // Only shift the port by +1 as a convention for ws(s) only if given endpoint\n // is explicitly specifying the endpoint port (HTTP-based RPC), assuming\n // we're directly trying to connect to solana-validator's ws listening port.\n // When the endpoint omits the port, we're connecting to the protocol\n // default ports: http(80) or https(443) and it's assumed we're behind a reverse\n // proxy which manages WebSocket upgrade and backend port redirection.\n startPort == null ? '' : \":\".concat(startPort + 1);\n return \"\".concat(protocol, \"//\").concat(hostish).concat(websocketPort).concat(rest);\n}\n\nvar PublicKeyFromString = coerce(instance(PublicKey), string(), function (value) {\n return new PublicKey(value);\n});\nvar RawAccountDataResult = tuple([string(), literal('base64')]);\nvar BufferFromRawAccountData = coerce(instance(Buffer$1), RawAccountDataResult, function (value) {\n return Buffer$1.from(value[0], 'base64');\n});\n/**\n * Attempt to use a recent blockhash for up to 30 seconds\n * @internal\n */\n\nvar BLOCKHASH_CACHE_TIMEOUT_MS = 30 * 1000;\n/**\n * HACK.\n * Copied from rpc-websockets/dist/lib/client.\n * Otherwise, `yarn build` fails with:\n * https://gist.github.com/steveluscher/c057eca81d479ef705cdb53162f9971d\n */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/**\n * @internal\n * Every subscription contains the args used to open the subscription with\n * the server, and a list of callers interested in notifications.\n */\n\n/**\n * @internal\n * A subscription may be in various states of connectedness. Only when it is\n * fully connected will it have a server subscription id associated with it.\n * This id can be returned to the server to unsubscribe the client entirely.\n */\n\n/**\n * A type that encapsulates a subscription's RPC method\n * names and notification (callback) signature.\n */\n\n/**\n * @internal\n * Utility type that keeps tagged unions intact while omitting properties.\n */\n\n/**\n * @internal\n * This type represents a single subscribable 'topic.' It's made up of:\n *\n * - The args used to open the subscription with the server,\n * - The state of the subscription, in terms of its connectedness, and\n * - The set of callbacks to call when the server publishes notifications\n *\n * This record gets indexed by `SubscriptionConfigHash` and is used to\n * set up subscriptions, fan out notifications, and track subscription state.\n */\n\n/**\n * @internal\n */\n\n/**\n * Extra contextual information for RPC responses\n */\n\n/**\n * Options for sending transactions\n */\n\n/**\n * Options for confirming transactions\n */\n\n/**\n * Options for getConfirmedSignaturesForAddress2\n */\n\n/**\n * Options for getSignaturesForAddress\n */\n\n/**\n * RPC Response with extra contextual information\n */\n\n/**\n * A strategy for confirming transactions that uses the last valid\n * block height for a given blockhash to check for transaction expiration.\n */\n\n/**\n * A strategy for confirming durable nonce transactions.\n */\n\n/**\n * Properties shared by all transaction confirmation strategies\n */\n\n/**\n * This type represents all transaction confirmation strategies\n */\n\n/* @internal */\n\nfunction assertEndpointUrl(putativeUrl) {\n if (/^https?:/.test(putativeUrl) === false) {\n throw new TypeError('Endpoint URL must start with `http:` or `https:`.');\n }\n\n return putativeUrl;\n}\n/** @internal */\n\n\nfunction extractCommitmentFromConfig(commitmentOrConfig) {\n var commitment;\n var config;\n\n if (typeof commitmentOrConfig === 'string') {\n commitment = commitmentOrConfig;\n } else if (commitmentOrConfig) {\n var specifiedCommitment = commitmentOrConfig.commitment,\n specifiedConfig = _objectWithoutProperties(commitmentOrConfig, _excluded);\n\n commitment = specifiedCommitment;\n config = specifiedConfig;\n }\n\n return {\n commitment: commitment,\n config: config\n };\n}\n/**\n * @internal\n */\n\n\nfunction createRpcResult(result) {\n return union([type({\n jsonrpc: literal('2.0'),\n id: string(),\n result: result\n }), type({\n jsonrpc: literal('2.0'),\n id: string(),\n error: type({\n code: unknown(),\n message: string(),\n data: optional(any())\n })\n })]);\n}\n\nvar UnknownRpcResult = createRpcResult(unknown());\n/**\n * @internal\n */\n\nfunction jsonRpcResult(schema) {\n return coerce(createRpcResult(schema), UnknownRpcResult, function (value) {\n if ('error' in value) {\n return value;\n } else {\n return _objectSpread2(_objectSpread2({}, value), {}, {\n result: _create(value.result, schema)\n });\n }\n });\n}\n/**\n * @internal\n */\n\n\nfunction jsonRpcResultAndContext(value) {\n return jsonRpcResult(type({\n context: type({\n slot: number()\n }),\n value: value\n }));\n}\n/**\n * @internal\n */\n\n\nfunction notificationResultAndContext(value) {\n return type({\n context: type({\n slot: number()\n }),\n value: value\n });\n}\n/**\n * @internal\n */\n\n\nfunction versionedMessageFromResponse(version, response) {\n if (version === 0) {\n return new MessageV0({\n header: response.header,\n staticAccountKeys: response.accountKeys.map(function (accountKey) {\n return new PublicKey(accountKey);\n }),\n recentBlockhash: response.recentBlockhash,\n compiledInstructions: response.instructions.map(function (ix) {\n return {\n programIdIndex: ix.programIdIndex,\n accountKeyIndexes: ix.accounts,\n data: bs58$5.decode(ix.data)\n };\n }),\n addressTableLookups: response.addressTableLookups\n });\n } else {\n return new Message(response);\n }\n}\n/**\n * The level of commitment desired when querying state\n *
\n *   'processed': Query the most recent block which has reached 1 confirmation by the connected node\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\n// Deprecated as of v1.5.5\n\n/**\n * A subset of Commitment levels, which are at least optimistically confirmed\n *
\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\n\n/**\n * Filter for largest accounts query\n *
\n *   'circulating':    Return the largest accounts that are part of the circulating supply\n *   'nonCirculating': Return the largest accounts that are not part of the circulating supply\n * 
\n */\n\n/**\n * Configuration object for changing `getAccountInfo` query behavior\n */\n\n/**\n * Configuration object for changing `getBalance` query behavior\n */\n\n/**\n * Configuration object for changing `getBlock` query behavior\n */\n\n/**\n * Configuration object for changing `getBlock` query behavior\n */\n\n/**\n * Configuration object for changing `getStakeMinimumDelegation` query behavior\n */\n\n/**\n * Configuration object for changing `getBlockHeight` query behavior\n */\n\n/**\n * Configuration object for changing `getEpochInfo` query behavior\n */\n\n/**\n * Configuration object for changing `getInflationReward` query behavior\n */\n\n/**\n * Configuration object for changing `getLatestBlockhash` query behavior\n */\n\n/**\n * Configuration object for changing `isBlockhashValid` query behavior\n */\n\n/**\n * Configuration object for changing `getSlot` query behavior\n */\n\n/**\n * Configuration object for changing `getSlotLeader` query behavior\n */\n\n/**\n * Configuration object for changing `getTransaction` query behavior\n */\n\n/**\n * Configuration object for changing `getTransaction` query behavior\n */\n\n/**\n * Configuration object for changing `getLargestAccounts` query behavior\n */\n\n/**\n * Configuration object for changing `getSupply` request behavior\n */\n\n/**\n * Configuration object for changing query behavior\n */\n\n/**\n * Information describing a cluster node\n */\n\n/**\n * Information describing a vote account\n */\n\n/**\n * A collection of cluster vote accounts\n */\n\n/**\n * Network Inflation\n * (see https://docs.solana.com/implemented-proposals/ed_overview)\n */\n\n\nvar GetInflationGovernorResult = type({\n foundation: number(),\n foundationTerm: number(),\n initial: number(),\n taper: number(),\n terminal: number()\n});\n/**\n * The inflation reward for an epoch\n */\n\n/**\n * Expected JSON RPC response for the \"getInflationReward\" message\n */\n\nvar GetInflationRewardResult = jsonRpcResult(array(nullable(type({\n epoch: number(),\n effectiveSlot: number(),\n amount: number(),\n postBalance: number(),\n commission: optional(nullable(number()))\n}))));\n/**\n * Configuration object for changing `getRecentPrioritizationFees` query behavior\n */\n\n/**\n * Expected JSON RPC response for the \"getRecentPrioritizationFees\" message\n */\n\nvar GetRecentPrioritizationFeesResult = array(type({\n slot: number(),\n prioritizationFee: number()\n}));\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\n\nvar GetInflationRateResult = type({\n total: number(),\n validator: number(),\n foundation: number(),\n epoch: number()\n});\n/**\n * Information about the current epoch\n */\n\nvar GetEpochInfoResult = type({\n epoch: number(),\n slotIndex: number(),\n slotsInEpoch: number(),\n absoluteSlot: number(),\n blockHeight: optional(number()),\n transactionCount: optional(number())\n});\nvar GetEpochScheduleResult = type({\n slotsPerEpoch: number(),\n leaderScheduleSlotOffset: number(),\n warmup: _boolean(),\n firstNormalEpoch: number(),\n firstNormalSlot: number()\n});\n/**\n * Leader schedule\n * (see https://docs.solana.com/terminology#leader-schedule)\n */\n\nvar GetLeaderScheduleResult = record(string(), array(number()));\n/**\n * Transaction error or null\n */\n\nvar TransactionErrorResult = nullable(union([type({}), string()]));\n/**\n * Signature status for a transaction\n */\n\nvar SignatureStatusResult = type({\n err: TransactionErrorResult\n});\n/**\n * Transaction signature received notification\n */\n\nvar SignatureReceivedResult = literal('receivedSignature');\n/**\n * Version info for a node\n */\n\nvar VersionResult = type({\n 'solana-core': string(),\n 'feature-set': optional(number())\n});\nvar SimulatedTransactionResponseStruct = jsonRpcResultAndContext(type({\n err: nullable(union([type({}), string()])),\n logs: nullable(array(string())),\n accounts: optional(nullable(array(nullable(type({\n executable: _boolean(),\n owner: string(),\n lamports: number(),\n data: array(string()),\n rentEpoch: optional(number())\n }))))),\n unitsConsumed: optional(number()),\n returnData: optional(nullable(type({\n programId: string(),\n data: tuple([string(), literal('base64')])\n })))\n}));\n/**\n * Metadata for a parsed confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link ParsedTransactionMeta} instead.\n */\n\n/**\n * Collection of addresses loaded by a transaction using address table lookups\n */\n\n/**\n * Metadata for a parsed transaction on the ledger\n */\n\n/**\n * Metadata for a confirmed transaction on the ledger\n */\n\n/**\n * A processed transaction from the RPC API\n */\n\n/**\n * A processed transaction from the RPC API\n */\n\n/**\n * A processed transaction message from the RPC API\n */\n\n/**\n * A confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * A partially decoded transaction instruction\n */\n\n/**\n * A parsed transaction message account\n */\n\n/**\n * A parsed transaction instruction\n */\n\n/**\n * A parsed address table lookup\n */\n\n/**\n * A parsed transaction message\n */\n\n/**\n * A parsed transaction\n */\n\n/**\n * A parsed and confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link ParsedTransactionWithMeta} instead.\n */\n\n/**\n * A parsed transaction on the ledger with meta\n */\n\n/**\n * A processed block fetched from the RPC API\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `accounts`\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `none`\n */\n\n/**\n * A block with parsed transactions\n */\n\n/**\n * A block with parsed transactions where the `transactionDetails` mode is `accounts`\n */\n\n/**\n * A block with parsed transactions where the `transactionDetails` mode is `none`\n */\n\n/**\n * A processed block fetched from the RPC API\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `accounts`\n */\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `none`\n */\n\n/**\n * A confirmed block on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * A Block on the ledger with signatures only\n */\n\n/**\n * recent block production information\n */\n\n/**\n * Expected JSON RPC response for the \"getBlockProduction\" message\n */\n\nvar BlockProductionResponseStruct = jsonRpcResultAndContext(type({\n byIdentity: record(string(), array(number())),\n range: type({\n firstSlot: number(),\n lastSlot: number()\n })\n}));\n/**\n * A performance sample\n */\n\nfunction createRpcClient(url, httpHeaders, customFetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent) {\n var fetch = customFetch ? customFetch : fetchImpl;\n var agent;\n {\n if (httpAgent != null) {\n console.warn('You have supplied an `httpAgent` when creating a `Connection` in a browser environment.' + 'It has been ignored; `httpAgent` is only used in Node environments.');\n }\n }\n var fetchWithMiddleware;\n\n if (fetchMiddleware) {\n fetchWithMiddleware = /*#__PURE__*/function () {\n var _ref22 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(info, init) {\n var modifiedFetchArgs;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return new Promise(function (resolve, reject) {\n try {\n fetchMiddleware(info, init, function (modifiedInfo, modifiedInit) {\n return resolve([modifiedInfo, modifiedInit]);\n });\n } catch (error) {\n reject(error);\n }\n });\n\n case 2:\n modifiedFetchArgs = _context6.sent;\n _context6.next = 5;\n return fetch.apply(void 0, _toConsumableArray(modifiedFetchArgs));\n\n case 5:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 6:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function fetchWithMiddleware(_x18, _x19) {\n return _ref22.apply(this, arguments);\n };\n }();\n }\n\n var clientBrowser = new RpcClient( /*#__PURE__*/function () {\n var _ref23 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(request, callback) {\n var options, too_many_requests_retries, res, waitTime, text;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n options = {\n method: 'POST',\n body: request,\n agent: agent,\n headers: Object.assign({\n 'Content-Type': 'application/json'\n }, httpHeaders || {}, COMMON_HTTP_HEADERS)\n };\n _context7.prev = 1;\n too_many_requests_retries = 5;\n waitTime = 500;\n\n case 4:\n if (!fetchWithMiddleware) {\n _context7.next = 10;\n break;\n }\n\n _context7.next = 7;\n return fetchWithMiddleware(url, options);\n\n case 7:\n res = _context7.sent;\n _context7.next = 13;\n break;\n\n case 10:\n _context7.next = 12;\n return fetch(url, options);\n\n case 12:\n res = _context7.sent;\n\n case 13:\n if (!(res.status !== 429\n /* Too many requests */\n )) {\n _context7.next = 15;\n break;\n }\n\n return _context7.abrupt(\"break\", 26);\n\n case 15:\n if (!(disableRetryOnRateLimit === true)) {\n _context7.next = 17;\n break;\n }\n\n return _context7.abrupt(\"break\", 26);\n\n case 17:\n too_many_requests_retries -= 1;\n\n if (!(too_many_requests_retries === 0)) {\n _context7.next = 20;\n break;\n }\n\n return _context7.abrupt(\"break\", 26);\n\n case 20:\n console.log(\"Server responded with \".concat(res.status, \" \").concat(res.statusText, \". Retrying after \").concat(waitTime, \"ms delay...\"));\n _context7.next = 23;\n return sleep(waitTime);\n\n case 23:\n waitTime *= 2;\n\n case 24:\n _context7.next = 4;\n break;\n\n case 26:\n _context7.next = 28;\n return res.text();\n\n case 28:\n text = _context7.sent;\n\n if (res.ok) {\n callback(null, text);\n } else {\n callback(new Error(\"\".concat(res.status, \" \").concat(res.statusText, \": \").concat(text)));\n }\n\n _context7.next = 35;\n break;\n\n case 32:\n _context7.prev = 32;\n _context7.t0 = _context7[\"catch\"](1);\n if (_context7.t0 instanceof Error) callback(_context7.t0);\n\n case 35:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, null, [[1, 32]]);\n }));\n\n return function (_x20, _x21) {\n return _ref23.apply(this, arguments);\n };\n }(), {});\n return clientBrowser;\n}\n\nfunction createRpcRequest(client) {\n return function (method, args) {\n return new Promise(function (resolve, reject) {\n client.request(method, args, function (err, response) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nfunction createRpcBatchRequest(client) {\n return function (requests) {\n return new Promise(function (resolve, reject) {\n // Do nothing if requests is empty\n if (requests.length === 0) resolve([]);\n var batch = requests.map(function (params) {\n return client.request(params.methodName, params.args);\n });\n client.request(batch, function (err, response) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n/**\n * Expected JSON RPC response for the \"getInflationGovernor\" message\n */\n\n\nvar GetInflationGovernorRpcResult = jsonRpcResult(GetInflationGovernorResult);\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\n\nvar GetInflationRateRpcResult = jsonRpcResult(GetInflationRateResult);\n/**\n * Expected JSON RPC response for the \"getRecentPrioritizationFees\" message\n */\n\nvar GetRecentPrioritizationFeesRpcResult = jsonRpcResult(GetRecentPrioritizationFeesResult);\n/**\n * Expected JSON RPC response for the \"getEpochInfo\" message\n */\n\nvar GetEpochInfoRpcResult = jsonRpcResult(GetEpochInfoResult);\n/**\n * Expected JSON RPC response for the \"getEpochSchedule\" message\n */\n\nvar GetEpochScheduleRpcResult = jsonRpcResult(GetEpochScheduleResult);\n/**\n * Expected JSON RPC response for the \"getLeaderSchedule\" message\n */\n\nvar GetLeaderScheduleRpcResult = jsonRpcResult(GetLeaderScheduleResult);\n/**\n * Expected JSON RPC response for the \"minimumLedgerSlot\" and \"getFirstAvailableBlock\" messages\n */\n\nvar SlotRpcResult = jsonRpcResult(number());\n/**\n * Supply\n */\n\n/**\n * Expected JSON RPC response for the \"getSupply\" message\n */\n\nvar GetSupplyRpcResult = jsonRpcResultAndContext(type({\n total: number(),\n circulating: number(),\n nonCirculating: number(),\n nonCirculatingAccounts: array(PublicKeyFromString)\n}));\n/**\n * Token amount object which returns a token amount in different formats\n * for various client use cases.\n */\n\n/**\n * Expected JSON RPC structure for token amounts\n */\n\nvar TokenAmountResult = type({\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string())\n});\n/**\n * Token address and balance.\n */\n\n/**\n * Expected JSON RPC response for the \"getTokenLargestAccounts\" message\n */\n\nvar GetTokenLargestAccountsResult = jsonRpcResultAndContext(array(type({\n address: PublicKeyFromString,\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string())\n})));\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message\n */\n\nvar GetTokenAccountsByOwner = jsonRpcResultAndContext(array(type({\n pubkey: PublicKeyFromString,\n account: type({\n executable: _boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number()\n })\n})));\nvar ParsedAccountDataResult = type({\n program: string(),\n parsed: unknown(),\n space: number()\n});\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message with parsed data\n */\n\nvar GetParsedTokenAccountsByOwner = jsonRpcResultAndContext(array(type({\n pubkey: PublicKeyFromString,\n account: type({\n executable: _boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedAccountDataResult,\n rentEpoch: number()\n })\n})));\n/**\n * Pair of an account address and its balance\n */\n\n/**\n * Expected JSON RPC response for the \"getLargestAccounts\" message\n */\n\nvar GetLargestAccountsRpcResult = jsonRpcResultAndContext(array(type({\n lamports: number(),\n address: PublicKeyFromString\n})));\n/**\n * @internal\n */\n\nvar AccountInfoResult = type({\n executable: _boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number()\n});\n/**\n * @internal\n */\n\nvar KeyedAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult\n});\nvar ParsedOrRawAccountData = coerce(union([instance(Buffer$1), ParsedAccountDataResult]), union([RawAccountDataResult, ParsedAccountDataResult]), function (value) {\n if (Array.isArray(value)) {\n return _create(value, BufferFromRawAccountData);\n } else {\n return value;\n }\n});\n/**\n * @internal\n */\n\nvar ParsedAccountInfoResult = type({\n executable: _boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedOrRawAccountData,\n rentEpoch: number()\n});\nvar KeyedParsedAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: ParsedAccountInfoResult\n});\n/**\n * @internal\n */\n\nvar StakeActivationResult = type({\n state: union([literal('active'), literal('inactive'), literal('activating'), literal('deactivating')]),\n active: number(),\n inactive: number()\n});\n/**\n * Expected JSON RPC response for the \"getConfirmedSignaturesForAddress2\" message\n */\n\nvar GetConfirmedSignaturesForAddress2RpcResult = jsonRpcResult(array(type({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number()))\n})));\n/**\n * Expected JSON RPC response for the \"getSignaturesForAddress\" message\n */\n\nvar GetSignaturesForAddressRpcResult = jsonRpcResult(array(type({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number()))\n})));\n/***\n * Expected JSON RPC response for the \"accountNotification\" message\n */\n\nvar AccountNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(AccountInfoResult)\n});\n/**\n * @internal\n */\n\nvar ProgramAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult\n});\n/***\n * Expected JSON RPC response for the \"programNotification\" message\n */\n\nvar ProgramAccountNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(ProgramAccountInfoResult)\n});\n/**\n * @internal\n */\n\nvar SlotInfoResult = type({\n parent: number(),\n slot: number(),\n root: number()\n});\n/**\n * Expected JSON RPC response for the \"slotNotification\" message\n */\n\nvar SlotNotificationResult = type({\n subscription: number(),\n result: SlotInfoResult\n});\n/**\n * Slot updates which can be used for tracking the live progress of a cluster.\n * - `\"firstShredReceived\"`: connected node received the first shred of a block.\n * Indicates that a new block that is being produced.\n * - `\"completed\"`: connected node has received all shreds of a block. Indicates\n * a block was recently produced.\n * - `\"optimisticConfirmation\"`: block was optimistically confirmed by the\n * cluster. It is not guaranteed that an optimistic confirmation notification\n * will be sent for every finalized blocks.\n * - `\"root\"`: the connected node rooted this block.\n * - `\"createdBank\"`: the connected node has started validating this block.\n * - `\"frozen\"`: the connected node has validated this block.\n * - `\"dead\"`: the connected node failed to validate this block.\n */\n\n/**\n * @internal\n */\n\nvar SlotUpdateResult = union([type({\n type: union([literal('firstShredReceived'), literal('completed'), literal('optimisticConfirmation'), literal('root')]),\n slot: number(),\n timestamp: number()\n}), type({\n type: literal('createdBank'),\n parent: number(),\n slot: number(),\n timestamp: number()\n}), type({\n type: literal('frozen'),\n slot: number(),\n timestamp: number(),\n stats: type({\n numTransactionEntries: number(),\n numSuccessfulTransactions: number(),\n numFailedTransactions: number(),\n maxTransactionsPerEntry: number()\n })\n}), type({\n type: literal('dead'),\n slot: number(),\n timestamp: number(),\n err: string()\n})]);\n/**\n * Expected JSON RPC response for the \"slotsUpdatesNotification\" message\n */\n\nvar SlotUpdateNotificationResult = type({\n subscription: number(),\n result: SlotUpdateResult\n});\n/**\n * Expected JSON RPC response for the \"signatureNotification\" message\n */\n\nvar SignatureNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(union([SignatureStatusResult, SignatureReceivedResult]))\n});\n/**\n * Expected JSON RPC response for the \"rootNotification\" message\n */\n\nvar RootNotificationResult = type({\n subscription: number(),\n result: number()\n});\nvar ContactInfoResult = type({\n pubkey: string(),\n gossip: nullable(string()),\n tpu: nullable(string()),\n rpc: nullable(string()),\n version: nullable(string())\n});\nvar VoteAccountInfoResult = type({\n votePubkey: string(),\n nodePubkey: string(),\n activatedStake: number(),\n epochVoteAccount: _boolean(),\n epochCredits: array(tuple([number(), number(), number()])),\n commission: number(),\n lastVote: number(),\n rootSlot: nullable(number())\n});\n/**\n * Expected JSON RPC response for the \"getVoteAccounts\" message\n */\n\nvar GetVoteAccounts = jsonRpcResult(type({\n current: array(VoteAccountInfoResult),\n delinquent: array(VoteAccountInfoResult)\n}));\nvar ConfirmationStatus = union([literal('processed'), literal('confirmed'), literal('finalized')]);\nvar SignatureStatusResponse = type({\n slot: number(),\n confirmations: nullable(number()),\n err: TransactionErrorResult,\n confirmationStatus: optional(ConfirmationStatus)\n});\n/**\n * Expected JSON RPC response for the \"getSignatureStatuses\" message\n */\n\nvar GetSignatureStatusesRpcResult = jsonRpcResultAndContext(array(nullable(SignatureStatusResponse)));\n/**\n * Expected JSON RPC response for the \"getMinimumBalanceForRentExemption\" message\n */\n\nvar GetMinimumBalanceForRentExemptionRpcResult = jsonRpcResult(number());\nvar AddressTableLookupStruct = type({\n accountKey: PublicKeyFromString,\n writableIndexes: array(number()),\n readonlyIndexes: array(number())\n});\nvar ConfirmedTransactionResult = type({\n signatures: array(string()),\n message: type({\n accountKeys: array(string()),\n header: type({\n numRequiredSignatures: number(),\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number()\n }),\n instructions: array(type({\n accounts: array(number()),\n data: string(),\n programIdIndex: number()\n })),\n recentBlockhash: string(),\n addressTableLookups: optional(array(AddressTableLookupStruct))\n })\n});\nvar AnnotatedAccountKey = type({\n pubkey: PublicKeyFromString,\n signer: _boolean(),\n writable: _boolean(),\n source: optional(union([literal('transaction'), literal('lookupTable')]))\n});\nvar ConfirmedTransactionAccountsModeResult = type({\n accountKeys: array(AnnotatedAccountKey),\n signatures: array(string())\n});\nvar ParsedInstructionResult = type({\n parsed: unknown(),\n program: string(),\n programId: PublicKeyFromString\n});\nvar RawInstructionResult = type({\n accounts: array(PublicKeyFromString),\n data: string(),\n programId: PublicKeyFromString\n});\nvar InstructionResult = union([RawInstructionResult, ParsedInstructionResult]);\nvar UnknownInstructionResult = union([type({\n parsed: unknown(),\n program: string(),\n programId: string()\n}), type({\n accounts: array(string()),\n data: string(),\n programId: string()\n})]);\nvar ParsedOrRawInstruction = coerce(InstructionResult, UnknownInstructionResult, function (value) {\n if ('accounts' in value) {\n return _create(value, RawInstructionResult);\n } else {\n return _create(value, ParsedInstructionResult);\n }\n});\n/**\n * @internal\n */\n\nvar ParsedConfirmedTransactionResult = type({\n signatures: array(string()),\n message: type({\n accountKeys: array(AnnotatedAccountKey),\n instructions: array(ParsedOrRawInstruction),\n recentBlockhash: string(),\n addressTableLookups: optional(nullable(array(AddressTableLookupStruct)))\n })\n});\nvar TokenBalanceResult = type({\n accountIndex: number(),\n mint: string(),\n owner: optional(string()),\n uiTokenAmount: TokenAmountResult\n});\nvar LoadedAddressesResult = type({\n writable: array(PublicKeyFromString),\n readonly: array(PublicKeyFromString)\n});\n/**\n * @internal\n */\n\nvar ConfirmedTransactionMetaResult = type({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(nullable(array(type({\n index: number(),\n instructions: array(type({\n accounts: array(number()),\n data: string(),\n programIdIndex: number()\n }))\n })))),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n loadedAddresses: optional(LoadedAddressesResult),\n computeUnitsConsumed: optional(number())\n});\n/**\n * @internal\n */\n\nvar ParsedConfirmedTransactionMetaResult = type({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(nullable(array(type({\n index: number(),\n instructions: array(ParsedOrRawInstruction)\n })))),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n loadedAddresses: optional(LoadedAddressesResult),\n computeUnitsConsumed: optional(number())\n});\nvar TransactionVersionStruct = union([literal(0), literal('legacy')]);\n/** @internal */\n\nvar RewardsResult = type({\n pubkey: string(),\n lamports: number(),\n postBalance: nullable(number()),\n rewardType: nullable(string()),\n commission: optional(nullable(number()))\n});\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\n\nvar GetBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\n\nvar GetNoneModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\n\nvar GetAccountsModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionAccountsModeResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message\n */\n\nvar GetParsedBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\n\nvar GetParsedAccountsModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionAccountsModeResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\n\nvar GetParsedNoneModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getConfirmedBlock\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetBlockRpcResult} instead.\n */\n\nvar GetConfirmedBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\n\nvar GetBlockSignaturesRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n signatures: array(string()),\n blockTime: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getTransaction\" message\n */\n\nvar GetTransactionRpcResult = jsonRpcResult(nullable(type({\n slot: number(),\n meta: nullable(ConfirmedTransactionMetaResult),\n blockTime: optional(nullable(number())),\n transaction: ConfirmedTransactionResult,\n version: optional(TransactionVersionStruct)\n})));\n/**\n * Expected parsed JSON RPC response for the \"getTransaction\" message\n */\n\nvar GetParsedTransactionRpcResult = jsonRpcResult(nullable(type({\n slot: number(),\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n blockTime: optional(nullable(number())),\n version: optional(TransactionVersionStruct)\n})));\n/**\n * Expected JSON RPC response for the \"getRecentBlockhash\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetLatestBlockhashRpcResult} instead.\n */\n\nvar GetRecentBlockhashAndContextRpcResult = jsonRpcResultAndContext(type({\n blockhash: string(),\n feeCalculator: type({\n lamportsPerSignature: number()\n })\n}));\n/**\n * Expected JSON RPC response for the \"getLatestBlockhash\" message\n */\n\nvar GetLatestBlockhashRpcResult = jsonRpcResultAndContext(type({\n blockhash: string(),\n lastValidBlockHeight: number()\n}));\n/**\n * Expected JSON RPC response for the \"isBlockhashValid\" message\n */\n\nvar IsBlockhashValidRpcResult = jsonRpcResultAndContext(_boolean());\nvar PerfSampleResult = type({\n slot: number(),\n numTransactions: number(),\n numSlots: number(),\n samplePeriodSecs: number()\n});\n/*\n * Expected JSON RPC response for \"getRecentPerformanceSamples\" message\n */\n\nvar GetRecentPerformanceSamplesRpcResult = jsonRpcResult(array(PerfSampleResult));\n/**\n * Expected JSON RPC response for the \"getFeeCalculatorForBlockhash\" message\n */\n\nvar GetFeeCalculatorRpcResult = jsonRpcResultAndContext(nullable(type({\n feeCalculator: type({\n lamportsPerSignature: number()\n })\n})));\n/**\n * Expected JSON RPC response for the \"requestAirdrop\" message\n */\n\nvar RequestAirdropRpcResult = jsonRpcResult(string());\n/**\n * Expected JSON RPC response for the \"sendTransaction\" message\n */\n\nvar SendTransactionRpcResult = jsonRpcResult(string());\n/**\n * Information about the latest slot being processed by a node\n */\n\n/**\n * Parsed account data\n */\n\n/**\n * Stake Activation data\n */\n\n/**\n * Data slice argument for getProgramAccounts\n */\n\n/**\n * Memory comparison filter for getProgramAccounts\n */\n\n/**\n * Data size comparison filter for getProgramAccounts\n */\n\n/**\n * A filter object for getProgramAccounts\n */\n\n/**\n * Configuration object for getProgramAccounts requests\n */\n\n/**\n * Configuration object for getParsedProgramAccounts\n */\n\n/**\n * Configuration object for getMultipleAccounts\n */\n\n/**\n * Configuration object for `getStakeActivation`\n */\n\n/**\n * Configuration object for `getStakeActivation`\n */\n\n/**\n * Configuration object for `getStakeActivation`\n */\n\n/**\n * Configuration object for `getNonce`\n */\n\n/**\n * Configuration object for `getNonceAndContext`\n */\n\n/**\n * Information describing an account\n */\n\n/**\n * Account information identified by pubkey\n */\n\n/**\n * Callback function for account change notifications\n */\n\n/**\n * Callback function for program account change notifications\n */\n\n/**\n * Callback function for slot change notifications\n */\n\n/**\n * Callback function for slot update notifications\n */\n\n/**\n * Callback function for signature status notifications\n */\n\n/**\n * Signature status notification with transaction result\n */\n\n/**\n * Signature received notification\n */\n\n/**\n * Callback function for signature notifications\n */\n\n/**\n * Signature subscription options\n */\n\n/**\n * Callback function for root change notifications\n */\n\n/**\n * @internal\n */\n\nvar LogsResult = type({\n err: TransactionErrorResult,\n logs: array(string()),\n signature: string()\n});\n/**\n * Logs result.\n */\n\n/**\n * Expected JSON RPC response for the \"logsNotification\" message.\n */\n\nvar LogsNotificationResult = type({\n result: notificationResultAndContext(LogsResult),\n subscription: number()\n});\n/**\n * Filter for log subscriptions.\n */\n\n/**\n * Callback function for log notifications.\n */\n\n/**\n * Signature result\n */\n\n/**\n * Transaction error\n */\n\n/**\n * Transaction confirmation status\n *
\n *   'processed': Transaction landed in a block which has reached 1 confirmation by the connected node\n *   'confirmed': Transaction landed in a block which has reached 1 confirmation by the cluster\n *   'finalized': Transaction landed in a block which has been finalized by the cluster\n * 
\n */\n\n/**\n * Signature status\n */\n\n/**\n * A confirmed signature with its status\n */\n\n/**\n * An object defining headers to be passed to the RPC server\n */\n\n/**\n * The type of the JavaScript `fetch()` API\n */\n\n/**\n * A callback used to augment the outgoing HTTP request\n */\n\n/**\n * Configuration for instantiating a Connection\n */\n\n/** @internal */\n\nvar COMMON_HTTP_HEADERS = {\n 'solana-client': \"js/\".concat(\"0.0.0-development\")\n};\n/**\n * A connection to a fullnode JSON RPC endpoint\n */\n\nvar Connection = /*#__PURE__*/function () {\n /**\n * Establish a JSON RPC connection\n *\n * @param endpoint URL to the fullnode JSON RPC endpoint\n * @param commitmentOrConfig optional default commitment level or optional ConnectionConfig configuration object\n */\n function Connection(endpoint, _commitmentOrConfig) {\n var _this15 = this;\n\n _classCallCheck(this, Connection);\n /** @internal */\n\n\n this._commitment = void 0;\n /** @internal */\n\n this._confirmTransactionInitialTimeout = void 0;\n /** @internal */\n\n this._rpcEndpoint = void 0;\n /** @internal */\n\n this._rpcWsEndpoint = void 0;\n /** @internal */\n\n this._rpcClient = void 0;\n /** @internal */\n\n this._rpcRequest = void 0;\n /** @internal */\n\n this._rpcBatchRequest = void 0;\n /** @internal */\n\n this._rpcWebSocket = void 0;\n /** @internal */\n\n this._rpcWebSocketConnected = false;\n /** @internal */\n\n this._rpcWebSocketHeartbeat = null;\n /** @internal */\n\n this._rpcWebSocketIdleTimeout = null;\n /** @internal\n * A number that we increment every time an active connection closes.\n * Used to determine whether the same socket connection that was open\n * when an async operation started is the same one that's active when\n * its continuation fires.\n *\n */\n\n this._rpcWebSocketGeneration = 0;\n /** @internal */\n\n this._disableBlockhashCaching = false;\n /** @internal */\n\n this._pollingBlockhash = false;\n /** @internal */\n\n this._blockhashInfo = {\n latestBlockhash: null,\n lastFetch: 0,\n transactionSignatures: [],\n simulatedSignatures: []\n };\n /** @internal */\n\n this._nextClientSubscriptionId = 0;\n /** @internal */\n\n this._subscriptionDisposeFunctionsByClientSubscriptionId = {};\n /** @internal */\n\n this._subscriptionHashByClientSubscriptionId = {};\n /** @internal */\n\n this._subscriptionStateChangeCallbacksByHash = {};\n /** @internal */\n\n this._subscriptionCallbacksByServerSubscriptionId = {};\n /** @internal */\n\n this._subscriptionsByHash = {};\n /**\n * Special case.\n * After a signature is processed, RPCs automatically dispose of the\n * subscription on the server side. We need to track which of these\n * subscriptions have been disposed in such a way, so that we know\n * whether the client is dealing with a not-yet-processed signature\n * (in which case we must tear down the server subscription) or an\n * already-processed signature (in which case the client can simply\n * clear out the subscription locally without telling the server).\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n\n /** @internal */\n\n this._subscriptionsAutoDisposedByRpc = new Set();\n /*\n * Returns the current block height of the node\n */\n\n this.getBlockHeight = function () {\n var requestPromises = {};\n return /*#__PURE__*/function () {\n var _ref24 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(commitmentOrConfig) {\n var _requestPromises$requ;\n\n var _extractCommitmentFro, commitment, config, args, requestHash;\n\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _extractCommitmentFro = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro.commitment, config = _extractCommitmentFro.config;\n args = _this15._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n requestHash = fastStableStringify$1(args);\n requestPromises[requestHash] = (_requestPromises$requ = requestPromises[requestHash]) !== null && _requestPromises$requ !== void 0 ? _requestPromises$requ : _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n _context8.next = 3;\n return _this15._rpcRequest('getBlockHeight', args);\n\n case 3:\n unsafeRes = _context8.sent;\n res = _create(unsafeRes, jsonRpcResult(number()));\n\n if (!('error' in res)) {\n _context8.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get block height information');\n\n case 7:\n return _context8.abrupt(\"return\", res.result);\n\n case 8:\n _context8.prev = 8;\n delete requestPromises[requestHash];\n return _context8.finish(8);\n\n case 11:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, null, [[0,, 8, 11]]);\n }))();\n _context9.next = 6;\n return requestPromises[requestHash];\n\n case 6:\n return _context9.abrupt(\"return\", _context9.sent);\n\n case 7:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function (_x22) {\n return _ref24.apply(this, arguments);\n };\n }();\n }();\n\n var wsEndpoint;\n var httpHeaders;\n var fetch;\n var fetchMiddleware;\n var disableRetryOnRateLimit;\n var httpAgent;\n\n if (_commitmentOrConfig && typeof _commitmentOrConfig === 'string') {\n this._commitment = _commitmentOrConfig;\n } else if (_commitmentOrConfig) {\n this._commitment = _commitmentOrConfig.commitment;\n this._confirmTransactionInitialTimeout = _commitmentOrConfig.confirmTransactionInitialTimeout;\n wsEndpoint = _commitmentOrConfig.wsEndpoint;\n httpHeaders = _commitmentOrConfig.httpHeaders;\n fetch = _commitmentOrConfig.fetch;\n fetchMiddleware = _commitmentOrConfig.fetchMiddleware;\n disableRetryOnRateLimit = _commitmentOrConfig.disableRetryOnRateLimit;\n httpAgent = _commitmentOrConfig.httpAgent;\n }\n\n this._rpcEndpoint = assertEndpointUrl(endpoint);\n this._rpcWsEndpoint = wsEndpoint || makeWebsocketUrl(endpoint);\n this._rpcClient = createRpcClient(endpoint, httpHeaders, fetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent);\n this._rpcRequest = createRpcRequest(this._rpcClient);\n this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);\n this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {\n autoconnect: false,\n max_reconnects: Infinity\n });\n\n this._rpcWebSocket.on('open', this._wsOnOpen.bind(this));\n\n this._rpcWebSocket.on('error', this._wsOnError.bind(this));\n\n this._rpcWebSocket.on('close', this._wsOnClose.bind(this));\n\n this._rpcWebSocket.on('accountNotification', this._wsOnAccountNotification.bind(this));\n\n this._rpcWebSocket.on('programNotification', this._wsOnProgramAccountNotification.bind(this));\n\n this._rpcWebSocket.on('slotNotification', this._wsOnSlotNotification.bind(this));\n\n this._rpcWebSocket.on('slotsUpdatesNotification', this._wsOnSlotUpdatesNotification.bind(this));\n\n this._rpcWebSocket.on('signatureNotification', this._wsOnSignatureNotification.bind(this));\n\n this._rpcWebSocket.on('rootNotification', this._wsOnRootNotification.bind(this));\n\n this._rpcWebSocket.on('logsNotification', this._wsOnLogsNotification.bind(this));\n }\n /**\n * The default commitment used for requests\n */\n\n\n _createClass(Connection, [{\n key: \"commitment\",\n get: function get() {\n return this._commitment;\n }\n /**\n * The RPC endpoint\n */\n\n }, {\n key: \"rpcEndpoint\",\n get: function get() {\n return this._rpcEndpoint;\n }\n /**\n * Fetch the balance for the specified public key, return with context\n */\n\n }, {\n key: \"getBalanceAndContext\",\n value: function () {\n var _getBalanceAndContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(publicKey, commitmentOrConfig) {\n var _extractCommitmentFro2, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n /** @internal */\n _extractCommitmentFro2 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro2.commitment, config = _extractCommitmentFro2.config;\n args = this._buildArgs([publicKey.toBase58()], commitment, undefined\n /* encoding */\n , config);\n _context10.next = 4;\n return this._rpcRequest('getBalance', args);\n\n case 4:\n unsafeRes = _context10.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(number()));\n\n if (!('error' in res)) {\n _context10.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get balance for \".concat(publicKey.toBase58()));\n\n case 8:\n return _context10.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function getBalanceAndContext(_x23, _x24) {\n return _getBalanceAndContext.apply(this, arguments);\n }\n\n return getBalanceAndContext;\n }()\n /**\n * Fetch the balance for the specified public key\n */\n\n }, {\n key: \"getBalance\",\n value: function () {\n var _getBalance = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(publicKey, commitmentOrConfig) {\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return this.getBalanceAndContext(publicKey, commitmentOrConfig).then(function (x) {\n return x.value;\n })[\"catch\"](function (e) {\n throw new Error('failed to get balance of account ' + publicKey.toBase58() + ': ' + e);\n });\n\n case 2:\n return _context11.abrupt(\"return\", _context11.sent);\n\n case 3:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function getBalance(_x25, _x26) {\n return _getBalance.apply(this, arguments);\n }\n\n return getBalance;\n }()\n /**\n * Fetch the estimated production time of a block\n */\n\n }, {\n key: \"getBlockTime\",\n value: function () {\n var _getBlockTime = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(slot) {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return this._rpcRequest('getBlockTime', [slot]);\n\n case 2:\n unsafeRes = _context12.sent;\n res = _create(unsafeRes, jsonRpcResult(nullable(number())));\n\n if (!('error' in res)) {\n _context12.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get block time for slot \".concat(slot));\n\n case 6:\n return _context12.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function getBlockTime(_x27) {\n return _getBlockTime.apply(this, arguments);\n }\n\n return getBlockTime;\n }()\n /**\n * Fetch the lowest slot that the node has information about in its ledger.\n * This value may increase over time if the node is configured to purge older ledger data\n */\n\n }, {\n key: \"getMinimumLedgerSlot\",\n value: function () {\n var _getMinimumLedgerSlot = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return this._rpcRequest('minimumLedgerSlot', []);\n\n case 2:\n unsafeRes = _context13.sent;\n res = _create(unsafeRes, jsonRpcResult(number()));\n\n if (!('error' in res)) {\n _context13.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get minimum ledger slot');\n\n case 6:\n return _context13.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function getMinimumLedgerSlot() {\n return _getMinimumLedgerSlot.apply(this, arguments);\n }\n\n return getMinimumLedgerSlot;\n }()\n /**\n * Fetch the slot of the lowest confirmed block that has not been purged from the ledger\n */\n\n }, {\n key: \"getFirstAvailableBlock\",\n value: function () {\n var _getFirstAvailableBlock = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.next = 2;\n return this._rpcRequest('getFirstAvailableBlock', []);\n\n case 2:\n unsafeRes = _context14.sent;\n res = _create(unsafeRes, SlotRpcResult);\n\n if (!('error' in res)) {\n _context14.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get first available block');\n\n case 6:\n return _context14.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function getFirstAvailableBlock() {\n return _getFirstAvailableBlock.apply(this, arguments);\n }\n\n return getFirstAvailableBlock;\n }()\n /**\n * Fetch information about the current supply\n */\n\n }, {\n key: \"getSupply\",\n value: function () {\n var _getSupply = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15(config) {\n var configArg, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n configArg = {};\n\n if (typeof config === 'string') {\n configArg = {\n commitment: config\n };\n } else if (config) {\n configArg = _objectSpread2(_objectSpread2({}, config), {}, {\n commitment: config && config.commitment || this.commitment\n });\n } else {\n configArg = {\n commitment: this.commitment\n };\n }\n\n _context15.next = 4;\n return this._rpcRequest('getSupply', [configArg]);\n\n case 4:\n unsafeRes = _context15.sent;\n res = _create(unsafeRes, GetSupplyRpcResult);\n\n if (!('error' in res)) {\n _context15.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get supply');\n\n case 8:\n return _context15.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getSupply(_x28) {\n return _getSupply.apply(this, arguments);\n }\n\n return getSupply;\n }()\n /**\n * Fetch the current supply of a token mint\n */\n\n }, {\n key: \"getTokenSupply\",\n value: function () {\n var _getTokenSupply = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(tokenMintAddress, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n args = this._buildArgs([tokenMintAddress.toBase58()], commitment);\n _context16.next = 3;\n return this._rpcRequest('getTokenSupply', args);\n\n case 3:\n unsafeRes = _context16.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n\n if (!('error' in res)) {\n _context16.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get token supply');\n\n case 7:\n return _context16.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function getTokenSupply(_x29, _x30) {\n return _getTokenSupply.apply(this, arguments);\n }\n\n return getTokenSupply;\n }()\n /**\n * Fetch the current balance of a token account\n */\n\n }, {\n key: \"getTokenAccountBalance\",\n value: function () {\n var _getTokenAccountBalance = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17(tokenAddress, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n args = this._buildArgs([tokenAddress.toBase58()], commitment);\n _context17.next = 3;\n return this._rpcRequest('getTokenAccountBalance', args);\n\n case 3:\n unsafeRes = _context17.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n\n if (!('error' in res)) {\n _context17.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get token account balance');\n\n case 7:\n return _context17.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function getTokenAccountBalance(_x31, _x32) {\n return _getTokenAccountBalance.apply(this, arguments);\n }\n\n return getTokenAccountBalance;\n }()\n /**\n * Fetch all the token accounts owned by the specified account\n *\n * @return {Promise}\n */\n\n }, {\n key: \"getTokenAccountsByOwner\",\n value: function () {\n var _getTokenAccountsByOwner = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee18(ownerAddress, filter, commitmentOrConfig) {\n var _extractCommitmentFro3, commitment, config, _args, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n _extractCommitmentFro3 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro3.commitment, config = _extractCommitmentFro3.config;\n _args = [ownerAddress.toBase58()];\n\n if ('mint' in filter) {\n _args.push({\n mint: filter.mint.toBase58()\n });\n } else {\n _args.push({\n programId: filter.programId.toBase58()\n });\n }\n\n args = this._buildArgs(_args, commitment, 'base64', config);\n _context18.next = 6;\n return this._rpcRequest('getTokenAccountsByOwner', args);\n\n case 6:\n unsafeRes = _context18.sent;\n res = _create(unsafeRes, GetTokenAccountsByOwner);\n\n if (!('error' in res)) {\n _context18.next = 10;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get token accounts owned by account \".concat(ownerAddress.toBase58()));\n\n case 10:\n return _context18.abrupt(\"return\", res.result);\n\n case 11:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function getTokenAccountsByOwner(_x33, _x34, _x35) {\n return _getTokenAccountsByOwner.apply(this, arguments);\n }\n\n return getTokenAccountsByOwner;\n }()\n /**\n * Fetch parsed token accounts owned by the specified account\n *\n * @return {Promise}>>>}\n */\n\n }, {\n key: \"getParsedTokenAccountsByOwner\",\n value: function () {\n var _getParsedTokenAccountsByOwner = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19(ownerAddress, filter, commitment) {\n var _args, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _args = [ownerAddress.toBase58()];\n\n if ('mint' in filter) {\n _args.push({\n mint: filter.mint.toBase58()\n });\n } else {\n _args.push({\n programId: filter.programId.toBase58()\n });\n }\n\n args = this._buildArgs(_args, commitment, 'jsonParsed');\n _context19.next = 5;\n return this._rpcRequest('getTokenAccountsByOwner', args);\n\n case 5:\n unsafeRes = _context19.sent;\n res = _create(unsafeRes, GetParsedTokenAccountsByOwner);\n\n if (!('error' in res)) {\n _context19.next = 9;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get token accounts owned by account \".concat(ownerAddress.toBase58()));\n\n case 9:\n return _context19.abrupt(\"return\", res.result);\n\n case 10:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, this);\n }));\n\n function getParsedTokenAccountsByOwner(_x36, _x37, _x38) {\n return _getParsedTokenAccountsByOwner.apply(this, arguments);\n }\n\n return getParsedTokenAccountsByOwner;\n }()\n /**\n * Fetch the 20 largest accounts with their current balances\n */\n\n }, {\n key: \"getLargestAccounts\",\n value: function () {\n var _getLargestAccounts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20(config) {\n var arg, args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n arg = _objectSpread2(_objectSpread2({}, config), {}, {\n commitment: config && config.commitment || this.commitment\n });\n args = arg.filter || arg.commitment ? [arg] : [];\n _context20.next = 4;\n return this._rpcRequest('getLargestAccounts', args);\n\n case 4:\n unsafeRes = _context20.sent;\n res = _create(unsafeRes, GetLargestAccountsRpcResult);\n\n if (!('error' in res)) {\n _context20.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get largest accounts');\n\n case 8:\n return _context20.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, this);\n }));\n\n function getLargestAccounts(_x39) {\n return _getLargestAccounts.apply(this, arguments);\n }\n\n return getLargestAccounts;\n }()\n /**\n * Fetch the 20 largest token accounts with their current balances\n * for a given mint.\n */\n\n }, {\n key: \"getTokenLargestAccounts\",\n value: function () {\n var _getTokenLargestAccounts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee21(mintAddress, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n args = this._buildArgs([mintAddress.toBase58()], commitment);\n _context21.next = 3;\n return this._rpcRequest('getTokenLargestAccounts', args);\n\n case 3:\n unsafeRes = _context21.sent;\n res = _create(unsafeRes, GetTokenLargestAccountsResult);\n\n if (!('error' in res)) {\n _context21.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get token largest accounts');\n\n case 7:\n return _context21.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, this);\n }));\n\n function getTokenLargestAccounts(_x40, _x41) {\n return _getTokenLargestAccounts.apply(this, arguments);\n }\n\n return getTokenLargestAccounts;\n }()\n /**\n * Fetch all the account info for the specified public key, return with context\n */\n\n }, {\n key: \"getAccountInfoAndContext\",\n value: function () {\n var _getAccountInfoAndContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(publicKey, commitmentOrConfig) {\n var _extractCommitmentFro4, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n _extractCommitmentFro4 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro4.commitment, config = _extractCommitmentFro4.config;\n args = this._buildArgs([publicKey.toBase58()], commitment, 'base64', config);\n _context22.next = 4;\n return this._rpcRequest('getAccountInfo', args);\n\n case 4:\n unsafeRes = _context22.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(nullable(AccountInfoResult)));\n\n if (!('error' in res)) {\n _context22.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get info about account \".concat(publicKey.toBase58()));\n\n case 8:\n return _context22.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this);\n }));\n\n function getAccountInfoAndContext(_x42, _x43) {\n return _getAccountInfoAndContext.apply(this, arguments);\n }\n\n return getAccountInfoAndContext;\n }()\n /**\n * Fetch parsed account info for the specified public key\n */\n\n }, {\n key: \"getParsedAccountInfo\",\n value: function () {\n var _getParsedAccountInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee23(publicKey, commitmentOrConfig) {\n var _extractCommitmentFro5, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _extractCommitmentFro5 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro5.commitment, config = _extractCommitmentFro5.config;\n args = this._buildArgs([publicKey.toBase58()], commitment, 'jsonParsed', config);\n _context23.next = 4;\n return this._rpcRequest('getAccountInfo', args);\n\n case 4:\n unsafeRes = _context23.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(nullable(ParsedAccountInfoResult)));\n\n if (!('error' in res)) {\n _context23.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get info about account \".concat(publicKey.toBase58()));\n\n case 8:\n return _context23.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this);\n }));\n\n function getParsedAccountInfo(_x44, _x45) {\n return _getParsedAccountInfo.apply(this, arguments);\n }\n\n return getParsedAccountInfo;\n }()\n /**\n * Fetch all the account info for the specified public key\n */\n\n }, {\n key: \"getAccountInfo\",\n value: function () {\n var _getAccountInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee24(publicKey, commitmentOrConfig) {\n var res;\n return _regeneratorRuntime().wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n _context24.prev = 0;\n _context24.next = 3;\n return this.getAccountInfoAndContext(publicKey, commitmentOrConfig);\n\n case 3:\n res = _context24.sent;\n return _context24.abrupt(\"return\", res.value);\n\n case 7:\n _context24.prev = 7;\n _context24.t0 = _context24[\"catch\"](0);\n throw new Error('failed to get info about account ' + publicKey.toBase58() + ': ' + _context24.t0);\n\n case 10:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, this, [[0, 7]]);\n }));\n\n function getAccountInfo(_x46, _x47) {\n return _getAccountInfo.apply(this, arguments);\n }\n\n return getAccountInfo;\n }()\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n */\n\n }, {\n key: \"getMultipleParsedAccounts\",\n value: function () {\n var _getMultipleParsedAccounts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee25(publicKeys, rawConfig) {\n var _extractCommitmentFro6, commitment, config, keys, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n _extractCommitmentFro6 = extractCommitmentFromConfig(rawConfig), commitment = _extractCommitmentFro6.commitment, config = _extractCommitmentFro6.config;\n keys = publicKeys.map(function (key) {\n return key.toBase58();\n });\n args = this._buildArgs([keys], commitment, 'jsonParsed', config);\n _context25.next = 5;\n return this._rpcRequest('getMultipleAccounts', args);\n\n case 5:\n unsafeRes = _context25.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(array(nullable(ParsedAccountInfoResult))));\n\n if (!('error' in res)) {\n _context25.next = 9;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get info for accounts \".concat(keys));\n\n case 9:\n return _context25.abrupt(\"return\", res.result);\n\n case 10:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25, this);\n }));\n\n function getMultipleParsedAccounts(_x48, _x49) {\n return _getMultipleParsedAccounts.apply(this, arguments);\n }\n\n return getMultipleParsedAccounts;\n }()\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n */\n\n }, {\n key: \"getMultipleAccountsInfoAndContext\",\n value: function () {\n var _getMultipleAccountsInfoAndContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee26(publicKeys, commitmentOrConfig) {\n var _extractCommitmentFro7, commitment, config, keys, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n _extractCommitmentFro7 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro7.commitment, config = _extractCommitmentFro7.config;\n keys = publicKeys.map(function (key) {\n return key.toBase58();\n });\n args = this._buildArgs([keys], commitment, 'base64', config);\n _context26.next = 5;\n return this._rpcRequest('getMultipleAccounts', args);\n\n case 5:\n unsafeRes = _context26.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(array(nullable(AccountInfoResult))));\n\n if (!('error' in res)) {\n _context26.next = 9;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get info for accounts \".concat(keys));\n\n case 9:\n return _context26.abrupt(\"return\", res.result);\n\n case 10:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26, this);\n }));\n\n function getMultipleAccountsInfoAndContext(_x50, _x51) {\n return _getMultipleAccountsInfoAndContext.apply(this, arguments);\n }\n\n return getMultipleAccountsInfoAndContext;\n }()\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys\n */\n\n }, {\n key: \"getMultipleAccountsInfo\",\n value: function () {\n var _getMultipleAccountsInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee27(publicKeys, commitmentOrConfig) {\n var res;\n return _regeneratorRuntime().wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n _context27.next = 2;\n return this.getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig);\n\n case 2:\n res = _context27.sent;\n return _context27.abrupt(\"return\", res.value);\n\n case 4:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27, this);\n }));\n\n function getMultipleAccountsInfo(_x52, _x53) {\n return _getMultipleAccountsInfo.apply(this, arguments);\n }\n\n return getMultipleAccountsInfo;\n }()\n /**\n * Returns epoch activation information for a stake account that has been delegated\n */\n\n }, {\n key: \"getStakeActivation\",\n value: function () {\n var _getStakeActivation = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee28(publicKey, commitmentOrConfig, epoch) {\n var _extractCommitmentFro8, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n _extractCommitmentFro8 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro8.commitment, config = _extractCommitmentFro8.config;\n args = this._buildArgs([publicKey.toBase58()], commitment, undefined\n /* encoding */\n , _objectSpread2(_objectSpread2({}, config), {}, {\n epoch: epoch != null ? epoch : config === null || config === void 0 ? void 0 : config.epoch\n }));\n _context28.next = 4;\n return this._rpcRequest('getStakeActivation', args);\n\n case 4:\n unsafeRes = _context28.sent;\n res = _create(unsafeRes, jsonRpcResult(StakeActivationResult));\n\n if (!('error' in res)) {\n _context28.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get Stake Activation \".concat(publicKey.toBase58()));\n\n case 8:\n return _context28.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28, this);\n }));\n\n function getStakeActivation(_x54, _x55, _x56) {\n return _getStakeActivation.apply(this, arguments);\n }\n\n return getStakeActivation;\n }()\n /**\n * Fetch all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"getProgramAccounts\",\n value: function () {\n var _getProgramAccounts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29(programId, configOrCommitment) {\n var _extractCommitmentFro9, commitment, config, _ref26, encoding, configWithoutEncoding, args, unsafeRes, baseSchema, res;\n\n return _regeneratorRuntime().wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n _extractCommitmentFro9 = extractCommitmentFromConfig(configOrCommitment), commitment = _extractCommitmentFro9.commitment, config = _extractCommitmentFro9.config;\n _ref26 = config || {}, encoding = _ref26.encoding, configWithoutEncoding = _objectWithoutProperties(_ref26, _excluded2);\n args = this._buildArgs([programId.toBase58()], commitment, encoding || 'base64', configWithoutEncoding);\n _context29.next = 5;\n return this._rpcRequest('getProgramAccounts', args);\n\n case 5:\n unsafeRes = _context29.sent;\n baseSchema = array(KeyedAccountInfoResult);\n res = configWithoutEncoding.withContext === true ? _create(unsafeRes, jsonRpcResultAndContext(baseSchema)) : _create(unsafeRes, jsonRpcResult(baseSchema));\n\n if (!('error' in res)) {\n _context29.next = 10;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get accounts owned by program \".concat(programId.toBase58()));\n\n case 10:\n return _context29.abrupt(\"return\", res.result);\n\n case 11:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29, this);\n }));\n\n function getProgramAccounts(_x57, _x58) {\n return _getProgramAccounts.apply(this, arguments);\n }\n\n return getProgramAccounts;\n }()\n /**\n * Fetch and parse all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n\n }, {\n key: \"getParsedProgramAccounts\",\n value: function () {\n var _getParsedProgramAccounts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee30(programId, configOrCommitment) {\n var _extractCommitmentFro10, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n _extractCommitmentFro10 = extractCommitmentFromConfig(configOrCommitment), commitment = _extractCommitmentFro10.commitment, config = _extractCommitmentFro10.config;\n args = this._buildArgs([programId.toBase58()], commitment, 'jsonParsed', config);\n _context30.next = 4;\n return this._rpcRequest('getProgramAccounts', args);\n\n case 4:\n unsafeRes = _context30.sent;\n res = _create(unsafeRes, jsonRpcResult(array(KeyedParsedAccountInfoResult)));\n\n if (!('error' in res)) {\n _context30.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get accounts owned by program \".concat(programId.toBase58()));\n\n case 8:\n return _context30.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30, this);\n }));\n\n function getParsedProgramAccounts(_x59, _x60) {\n return _getParsedProgramAccounts.apply(this, arguments);\n }\n\n return getParsedProgramAccounts;\n }()\n /** @deprecated Instead, call `confirmTransaction` and pass in {@link TransactionConfirmationStrategy} */\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"confirmTransaction\",\n value: function () {\n var _confirmTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31(strategy, commitment) {\n var rawSignature, _config$abortSignal, config, decodedSignature;\n\n return _regeneratorRuntime().wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n if (!(typeof strategy == 'string')) {\n _context31.next = 4;\n break;\n }\n\n rawSignature = strategy;\n _context31.next = 8;\n break;\n\n case 4:\n config = strategy;\n\n if (!((_config$abortSignal = config.abortSignal) !== null && _config$abortSignal !== void 0 && _config$abortSignal.aborted)) {\n _context31.next = 7;\n break;\n }\n\n return _context31.abrupt(\"return\", Promise.reject(config.abortSignal.reason));\n\n case 7:\n rawSignature = config.signature;\n\n case 8:\n _context31.prev = 8;\n decodedSignature = bs58$5.decode(rawSignature);\n _context31.next = 15;\n break;\n\n case 12:\n _context31.prev = 12;\n _context31.t0 = _context31[\"catch\"](8);\n throw new Error('signature must be base58 encoded: ' + rawSignature);\n\n case 15:\n assert(decodedSignature.length === 64, 'signature has invalid length');\n\n if (!(typeof strategy === 'string')) {\n _context31.next = 22;\n break;\n }\n\n _context31.next = 19;\n return this.confirmTransactionUsingLegacyTimeoutStrategy({\n commitment: commitment || this.commitment,\n signature: rawSignature\n });\n\n case 19:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 22:\n if (!('lastValidBlockHeight' in strategy)) {\n _context31.next = 28;\n break;\n }\n\n _context31.next = 25;\n return this.confirmTransactionUsingBlockHeightExceedanceStrategy({\n commitment: commitment || this.commitment,\n strategy: strategy\n });\n\n case 25:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 28:\n _context31.next = 30;\n return this.confirmTransactionUsingDurableNonceStrategy({\n commitment: commitment || this.commitment,\n strategy: strategy\n });\n\n case 30:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 31:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31, this, [[8, 12]]);\n }));\n\n function confirmTransaction(_x61, _x62) {\n return _confirmTransaction.apply(this, arguments);\n }\n\n return confirmTransaction;\n }()\n }, {\n key: \"getCancellationPromise\",\n value: function getCancellationPromise(signal) {\n return new Promise(function (_, reject) {\n if (signal == null) {\n return;\n }\n\n if (signal.aborted) {\n reject(signal.reason);\n } else {\n signal.addEventListener('abort', function () {\n reject(signal.reason);\n });\n }\n });\n }\n }, {\n key: \"getTransactionConfirmationPromise\",\n value: function getTransactionConfirmationPromise(_ref27) {\n var _this16 = this;\n\n var commitment = _ref27.commitment,\n signature = _ref27.signature;\n var signatureSubscriptionId;\n var disposeSignatureSubscriptionStateChangeObserver;\n var done = false;\n var confirmationPromise = new Promise(function (resolve, reject) {\n try {\n signatureSubscriptionId = _this16.onSignature(signature, function (result, context) {\n signatureSubscriptionId = undefined;\n var response = {\n context: context,\n value: result\n };\n resolve({\n __type: TransactionStatus.PROCESSED,\n response: response\n });\n }, commitment);\n var subscriptionSetupPromise = new Promise(function (resolveSubscriptionSetup) {\n if (signatureSubscriptionId == null) {\n resolveSubscriptionSetup();\n } else {\n disposeSignatureSubscriptionStateChangeObserver = _this16._onSubscriptionStateChange(signatureSubscriptionId, function (nextState) {\n if (nextState === 'subscribed') {\n resolveSubscriptionSetup();\n }\n });\n }\n });\n\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee32() {\n var response, context, value;\n return _regeneratorRuntime().wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return subscriptionSetupPromise;\n\n case 2:\n if (!done) {\n _context32.next = 4;\n break;\n }\n\n return _context32.abrupt(\"return\");\n\n case 4:\n _context32.next = 6;\n return _this16.getSignatureStatus(signature);\n\n case 6:\n response = _context32.sent;\n\n if (!done) {\n _context32.next = 9;\n break;\n }\n\n return _context32.abrupt(\"return\");\n\n case 9:\n if (!(response == null)) {\n _context32.next = 11;\n break;\n }\n\n return _context32.abrupt(\"return\");\n\n case 11:\n context = response.context, value = response.value;\n\n if (!(value == null)) {\n _context32.next = 14;\n break;\n }\n\n return _context32.abrupt(\"return\");\n\n case 14:\n if (!(value !== null && value !== void 0 && value.err)) {\n _context32.next = 18;\n break;\n }\n\n reject(value.err);\n _context32.next = 29;\n break;\n\n case 18:\n _context32.t0 = commitment;\n _context32.next = _context32.t0 === 'confirmed' ? 21 : _context32.t0 === 'single' ? 21 : _context32.t0 === 'singleGossip' ? 21 : _context32.t0 === 'finalized' ? 24 : _context32.t0 === 'max' ? 24 : _context32.t0 === 'root' ? 24 : _context32.t0 === 'processed' ? 27 : _context32.t0 === 'recent' ? 27 : 27;\n break;\n\n case 21:\n if (!(value.confirmationStatus === 'processed')) {\n _context32.next = 23;\n break;\n }\n\n return _context32.abrupt(\"return\");\n\n case 23:\n return _context32.abrupt(\"break\", 27);\n\n case 24:\n if (!(value.confirmationStatus === 'processed' || value.confirmationStatus === 'confirmed')) {\n _context32.next = 26;\n break;\n }\n\n return _context32.abrupt(\"return\");\n\n case 26:\n return _context32.abrupt(\"break\", 27);\n\n case 27:\n done = true;\n resolve({\n __type: TransactionStatus.PROCESSED,\n response: {\n context: context,\n value: value\n }\n });\n\n case 29:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }))();\n } catch (err) {\n reject(err);\n }\n });\n\n var abortConfirmation = function abortConfirmation() {\n if (disposeSignatureSubscriptionStateChangeObserver) {\n disposeSignatureSubscriptionStateChangeObserver();\n disposeSignatureSubscriptionStateChangeObserver = undefined;\n }\n\n if (signatureSubscriptionId != null) {\n _this16.removeSignatureListener(signatureSubscriptionId);\n\n signatureSubscriptionId = undefined;\n }\n };\n\n return {\n abortConfirmation: abortConfirmation,\n confirmationPromise: confirmationPromise\n };\n }\n }, {\n key: \"confirmTransactionUsingBlockHeightExceedanceStrategy\",\n value: function () {\n var _confirmTransactionUsingBlockHeightExceedanceStrategy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee35(_ref29) {\n var _this17 = this;\n\n var commitment, _ref29$strategy, abortSignal, lastValidBlockHeight, signature, done, expiryPromise, _this$getTransactionC, abortConfirmation, confirmationPromise, cancellationPromise, result, outcome;\n\n return _regeneratorRuntime().wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n commitment = _ref29.commitment, _ref29$strategy = _ref29.strategy, abortSignal = _ref29$strategy.abortSignal, lastValidBlockHeight = _ref29$strategy.lastValidBlockHeight, signature = _ref29$strategy.signature;\n done = false;\n expiryPromise = new Promise(function (resolve) {\n var checkBlockHeight = /*#__PURE__*/function () {\n var _ref30 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee33() {\n var blockHeight;\n return _regeneratorRuntime().wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n _context33.next = 3;\n return _this17.getBlockHeight(commitment);\n\n case 3:\n blockHeight = _context33.sent;\n return _context33.abrupt(\"return\", blockHeight);\n\n case 7:\n _context33.prev = 7;\n _context33.t0 = _context33[\"catch\"](0);\n return _context33.abrupt(\"return\", -1);\n\n case 10:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33, null, [[0, 7]]);\n }));\n\n return function checkBlockHeight() {\n return _ref30.apply(this, arguments);\n };\n }();\n\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee34() {\n var currentBlockHeight;\n return _regeneratorRuntime().wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n _context34.next = 2;\n return checkBlockHeight();\n\n case 2:\n currentBlockHeight = _context34.sent;\n\n if (!done) {\n _context34.next = 5;\n break;\n }\n\n return _context34.abrupt(\"return\");\n\n case 5:\n if (!(currentBlockHeight <= lastValidBlockHeight)) {\n _context34.next = 17;\n break;\n }\n\n _context34.next = 8;\n return sleep(1000);\n\n case 8:\n if (!done) {\n _context34.next = 10;\n break;\n }\n\n return _context34.abrupt(\"return\");\n\n case 10:\n _context34.next = 12;\n return checkBlockHeight();\n\n case 12:\n currentBlockHeight = _context34.sent;\n\n if (!done) {\n _context34.next = 15;\n break;\n }\n\n return _context34.abrupt(\"return\");\n\n case 15:\n _context34.next = 5;\n break;\n\n case 17:\n resolve({\n __type: TransactionStatus.BLOCKHEIGHT_EXCEEDED\n });\n\n case 18:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34);\n }))();\n });\n _this$getTransactionC = this.getTransactionConfirmationPromise({\n commitment: commitment,\n signature: signature\n }), abortConfirmation = _this$getTransactionC.abortConfirmation, confirmationPromise = _this$getTransactionC.confirmationPromise;\n cancellationPromise = this.getCancellationPromise(abortSignal);\n _context35.prev = 5;\n _context35.next = 8;\n return Promise.race([cancellationPromise, confirmationPromise, expiryPromise]);\n\n case 8:\n outcome = _context35.sent;\n\n if (!(outcome.__type === TransactionStatus.PROCESSED)) {\n _context35.next = 13;\n break;\n }\n\n result = outcome.response;\n _context35.next = 14;\n break;\n\n case 13:\n throw new TransactionExpiredBlockheightExceededError(signature);\n\n case 14:\n _context35.prev = 14;\n done = true;\n abortConfirmation();\n return _context35.finish(14);\n\n case 18:\n return _context35.abrupt(\"return\", result);\n\n case 19:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35, this, [[5,, 14, 18]]);\n }));\n\n function confirmTransactionUsingBlockHeightExceedanceStrategy(_x63) {\n return _confirmTransactionUsingBlockHeightExceedanceStrategy.apply(this, arguments);\n }\n\n return confirmTransactionUsingBlockHeightExceedanceStrategy;\n }()\n }, {\n key: \"confirmTransactionUsingDurableNonceStrategy\",\n value: function () {\n var _confirmTransactionUsingDurableNonceStrategy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee38(_ref32) {\n var _this18 = this;\n\n var commitment, _ref32$strategy, abortSignal, minContextSlot, nonceAccountPubkey, nonceValue, signature, done, expiryPromise, _this$getTransactionC2, abortConfirmation, confirmationPromise, cancellationPromise, result, outcome, _signatureStatus, signatureStatus, _outcome$slotInWhichN, status, commitmentForStatus, confirmationStatus;\n\n return _regeneratorRuntime().wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n commitment = _ref32.commitment, _ref32$strategy = _ref32.strategy, abortSignal = _ref32$strategy.abortSignal, minContextSlot = _ref32$strategy.minContextSlot, nonceAccountPubkey = _ref32$strategy.nonceAccountPubkey, nonceValue = _ref32$strategy.nonceValue, signature = _ref32$strategy.signature;\n done = false;\n expiryPromise = new Promise(function (resolve) {\n var currentNonceValue = nonceValue;\n var lastCheckedSlot = null;\n\n var getCurrentNonceValue = /*#__PURE__*/function () {\n var _ref33 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee36() {\n var _yield$_this18$getNon2, context, nonceAccount;\n\n return _regeneratorRuntime().wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n _context36.prev = 0;\n _context36.next = 3;\n return _this18.getNonceAndContext(nonceAccountPubkey, {\n commitment: commitment,\n minContextSlot: minContextSlot\n });\n\n case 3:\n _yield$_this18$getNon2 = _context36.sent;\n context = _yield$_this18$getNon2.context;\n nonceAccount = _yield$_this18$getNon2.value;\n lastCheckedSlot = context.slot;\n return _context36.abrupt(\"return\", nonceAccount === null || nonceAccount === void 0 ? void 0 : nonceAccount.nonce);\n\n case 10:\n _context36.prev = 10;\n _context36.t0 = _context36[\"catch\"](0);\n return _context36.abrupt(\"return\", currentNonceValue);\n\n case 13:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36, null, [[0, 10]]);\n }));\n\n return function getCurrentNonceValue() {\n return _ref33.apply(this, arguments);\n };\n }();\n\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee37() {\n return _regeneratorRuntime().wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n _context37.next = 2;\n return getCurrentNonceValue();\n\n case 2:\n currentNonceValue = _context37.sent;\n\n if (!done) {\n _context37.next = 5;\n break;\n }\n\n return _context37.abrupt(\"return\");\n\n case 5:\n if (!(nonceValue !== currentNonceValue)) {\n _context37.next = 9;\n break;\n }\n\n resolve({\n __type: TransactionStatus.NONCE_INVALID,\n slotInWhichNonceDidAdvance: lastCheckedSlot\n });\n return _context37.abrupt(\"return\");\n\n case 9:\n _context37.next = 11;\n return sleep(2000);\n\n case 11:\n if (!done) {\n _context37.next = 13;\n break;\n }\n\n return _context37.abrupt(\"return\");\n\n case 13:\n _context37.next = 15;\n return getCurrentNonceValue();\n\n case 15:\n currentNonceValue = _context37.sent;\n\n if (!done) {\n _context37.next = 18;\n break;\n }\n\n return _context37.abrupt(\"return\");\n\n case 18:\n _context37.next = 5;\n break;\n\n case 20:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37);\n }))();\n });\n _this$getTransactionC2 = this.getTransactionConfirmationPromise({\n commitment: commitment,\n signature: signature\n }), abortConfirmation = _this$getTransactionC2.abortConfirmation, confirmationPromise = _this$getTransactionC2.confirmationPromise;\n cancellationPromise = this.getCancellationPromise(abortSignal);\n _context38.prev = 5;\n _context38.next = 8;\n return Promise.race([cancellationPromise, confirmationPromise, expiryPromise]);\n\n case 8:\n outcome = _context38.sent;\n\n if (!(outcome.__type === TransactionStatus.PROCESSED)) {\n _context38.next = 13;\n break;\n }\n\n result = outcome.response;\n _context38.next = 47;\n break;\n\n case 13:\n _context38.next = 16;\n return this.getSignatureStatus(signature);\n\n case 16:\n status = _context38.sent;\n\n if (!(status == null)) {\n _context38.next = 19;\n break;\n }\n\n return _context38.abrupt(\"break\", 27);\n\n case 19:\n if (!(status.context.slot < ((_outcome$slotInWhichN = outcome.slotInWhichNonceDidAdvance) !== null && _outcome$slotInWhichN !== void 0 ? _outcome$slotInWhichN : minContextSlot))) {\n _context38.next = 23;\n break;\n }\n\n _context38.next = 22;\n return sleep(400);\n\n case 22:\n return _context38.abrupt(\"continue\", 13);\n\n case 23:\n signatureStatus = status;\n return _context38.abrupt(\"break\", 27);\n\n case 27:\n if (!((_signatureStatus = signatureStatus) !== null && _signatureStatus !== void 0 && _signatureStatus.value)) {\n _context38.next = 46;\n break;\n }\n\n commitmentForStatus = commitment || 'finalized';\n confirmationStatus = signatureStatus.value.confirmationStatus;\n _context38.t0 = commitmentForStatus;\n _context38.next = _context38.t0 === 'processed' ? 33 : _context38.t0 === 'recent' ? 33 : _context38.t0 === 'confirmed' ? 36 : _context38.t0 === 'single' ? 36 : _context38.t0 === 'singleGossip' ? 36 : _context38.t0 === 'finalized' ? 39 : _context38.t0 === 'max' ? 39 : _context38.t0 === 'root' ? 39 : 42;\n break;\n\n case 33:\n if (!(confirmationStatus !== 'processed' && confirmationStatus !== 'confirmed' && confirmationStatus !== 'finalized')) {\n _context38.next = 35;\n break;\n }\n\n throw new TransactionExpiredNonceInvalidError(signature);\n\n case 35:\n return _context38.abrupt(\"break\", 43);\n\n case 36:\n if (!(confirmationStatus !== 'confirmed' && confirmationStatus !== 'finalized')) {\n _context38.next = 38;\n break;\n }\n\n throw new TransactionExpiredNonceInvalidError(signature);\n\n case 38:\n return _context38.abrupt(\"break\", 43);\n\n case 39:\n if (!(confirmationStatus !== 'finalized')) {\n _context38.next = 41;\n break;\n }\n\n throw new TransactionExpiredNonceInvalidError(signature);\n\n case 41:\n return _context38.abrupt(\"break\", 43);\n\n case 42:\n case 43:\n result = {\n context: signatureStatus.context,\n value: {\n err: signatureStatus.value.err\n }\n };\n _context38.next = 47;\n break;\n\n case 46:\n throw new TransactionExpiredNonceInvalidError(signature);\n\n case 47:\n _context38.prev = 47;\n done = true;\n abortConfirmation();\n return _context38.finish(47);\n\n case 51:\n return _context38.abrupt(\"return\", result);\n\n case 52:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38, this, [[5,, 47, 51]]);\n }));\n\n function confirmTransactionUsingDurableNonceStrategy(_x64) {\n return _confirmTransactionUsingDurableNonceStrategy.apply(this, arguments);\n }\n\n return confirmTransactionUsingDurableNonceStrategy;\n }()\n }, {\n key: \"confirmTransactionUsingLegacyTimeoutStrategy\",\n value: function () {\n var _confirmTransactionUsingLegacyTimeoutStrategy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee39(_ref35) {\n var _this19 = this;\n\n var commitment, signature, timeoutId, expiryPromise, _this$getTransactionC3, abortConfirmation, confirmationPromise, result, outcome;\n\n return _regeneratorRuntime().wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n commitment = _ref35.commitment, signature = _ref35.signature;\n expiryPromise = new Promise(function (resolve) {\n var timeoutMs = _this19._confirmTransactionInitialTimeout || 60 * 1000;\n\n switch (commitment) {\n case 'processed':\n case 'recent':\n case 'single':\n case 'confirmed':\n case 'singleGossip':\n {\n timeoutMs = _this19._confirmTransactionInitialTimeout || 30 * 1000;\n break;\n }\n }\n\n timeoutId = setTimeout(function () {\n return resolve({\n __type: TransactionStatus.TIMED_OUT,\n timeoutMs: timeoutMs\n });\n }, timeoutMs);\n });\n _this$getTransactionC3 = this.getTransactionConfirmationPromise({\n commitment: commitment,\n signature: signature\n }), abortConfirmation = _this$getTransactionC3.abortConfirmation, confirmationPromise = _this$getTransactionC3.confirmationPromise;\n _context39.prev = 3;\n _context39.next = 6;\n return Promise.race([confirmationPromise, expiryPromise]);\n\n case 6:\n outcome = _context39.sent;\n\n if (!(outcome.__type === TransactionStatus.PROCESSED)) {\n _context39.next = 11;\n break;\n }\n\n result = outcome.response;\n _context39.next = 12;\n break;\n\n case 11:\n throw new TransactionExpiredTimeoutError(signature, outcome.timeoutMs / 1000);\n\n case 12:\n _context39.prev = 12;\n clearTimeout(timeoutId);\n abortConfirmation();\n return _context39.finish(12);\n\n case 16:\n return _context39.abrupt(\"return\", result);\n\n case 17:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39, this, [[3,, 12, 16]]);\n }));\n\n function confirmTransactionUsingLegacyTimeoutStrategy(_x65) {\n return _confirmTransactionUsingLegacyTimeoutStrategy.apply(this, arguments);\n }\n\n return confirmTransactionUsingLegacyTimeoutStrategy;\n }()\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n\n }, {\n key: \"getClusterNodes\",\n value: function () {\n var _getClusterNodes = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee40() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n _context40.next = 2;\n return this._rpcRequest('getClusterNodes', []);\n\n case 2:\n unsafeRes = _context40.sent;\n res = _create(unsafeRes, jsonRpcResult(array(ContactInfoResult)));\n\n if (!('error' in res)) {\n _context40.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get cluster nodes');\n\n case 6:\n return _context40.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40, this);\n }));\n\n function getClusterNodes() {\n return _getClusterNodes.apply(this, arguments);\n }\n\n return getClusterNodes;\n }()\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n\n }, {\n key: \"getVoteAccounts\",\n value: function () {\n var _getVoteAccounts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee41(commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n args = this._buildArgs([], commitment);\n _context41.next = 3;\n return this._rpcRequest('getVoteAccounts', args);\n\n case 3:\n unsafeRes = _context41.sent;\n res = _create(unsafeRes, GetVoteAccounts);\n\n if (!('error' in res)) {\n _context41.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get vote accounts');\n\n case 7:\n return _context41.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41, this);\n }));\n\n function getVoteAccounts(_x66) {\n return _getVoteAccounts.apply(this, arguments);\n }\n\n return getVoteAccounts;\n }()\n /**\n * Fetch the current slot that the node is processing\n */\n\n }, {\n key: \"getSlot\",\n value: function () {\n var _getSlot = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee42(commitmentOrConfig) {\n var _extractCommitmentFro11, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n _extractCommitmentFro11 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro11.commitment, config = _extractCommitmentFro11.config;\n args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n _context42.next = 4;\n return this._rpcRequest('getSlot', args);\n\n case 4:\n unsafeRes = _context42.sent;\n res = _create(unsafeRes, jsonRpcResult(number()));\n\n if (!('error' in res)) {\n _context42.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get slot');\n\n case 8:\n return _context42.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42, this);\n }));\n\n function getSlot(_x67) {\n return _getSlot.apply(this, arguments);\n }\n\n return getSlot;\n }()\n /**\n * Fetch the current slot leader of the cluster\n */\n\n }, {\n key: \"getSlotLeader\",\n value: function () {\n var _getSlotLeader = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee43(commitmentOrConfig) {\n var _extractCommitmentFro12, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n _extractCommitmentFro12 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro12.commitment, config = _extractCommitmentFro12.config;\n args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n _context43.next = 4;\n return this._rpcRequest('getSlotLeader', args);\n\n case 4:\n unsafeRes = _context43.sent;\n res = _create(unsafeRes, jsonRpcResult(string()));\n\n if (!('error' in res)) {\n _context43.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get slot leader');\n\n case 8:\n return _context43.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43, this);\n }));\n\n function getSlotLeader(_x68) {\n return _getSlotLeader.apply(this, arguments);\n }\n\n return getSlotLeader;\n }()\n /**\n * Fetch `limit` number of slot leaders starting from `startSlot`\n *\n * @param startSlot fetch slot leaders starting from this slot\n * @param limit number of slot leaders to return\n */\n\n }, {\n key: \"getSlotLeaders\",\n value: function () {\n var _getSlotLeaders = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee44(startSlot, limit) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n args = [startSlot, limit];\n _context44.next = 3;\n return this._rpcRequest('getSlotLeaders', args);\n\n case 3:\n unsafeRes = _context44.sent;\n res = _create(unsafeRes, jsonRpcResult(array(PublicKeyFromString)));\n\n if (!('error' in res)) {\n _context44.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get slot leaders');\n\n case 7:\n return _context44.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44, this);\n }));\n\n function getSlotLeaders(_x69, _x70) {\n return _getSlotLeaders.apply(this, arguments);\n }\n\n return getSlotLeaders;\n }()\n /**\n * Fetch the current status of a signature\n */\n\n }, {\n key: \"getSignatureStatus\",\n value: function () {\n var _getSignatureStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee45(signature, config) {\n var _yield$this$getSignat, context, values, value;\n\n return _regeneratorRuntime().wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n _context45.next = 2;\n return this.getSignatureStatuses([signature], config);\n\n case 2:\n _yield$this$getSignat = _context45.sent;\n context = _yield$this$getSignat.context;\n values = _yield$this$getSignat.value;\n assert(values.length === 1);\n value = values[0];\n return _context45.abrupt(\"return\", {\n context: context,\n value: value\n });\n\n case 8:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45, this);\n }));\n\n function getSignatureStatus(_x71, _x72) {\n return _getSignatureStatus.apply(this, arguments);\n }\n\n return getSignatureStatus;\n }()\n /**\n * Fetch the current statuses of a batch of signatures\n */\n\n }, {\n key: \"getSignatureStatuses\",\n value: function () {\n var _getSignatureStatuses = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee46(signatures, config) {\n var params, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n params = [signatures];\n\n if (config) {\n params.push(config);\n }\n\n _context46.next = 4;\n return this._rpcRequest('getSignatureStatuses', params);\n\n case 4:\n unsafeRes = _context46.sent;\n res = _create(unsafeRes, GetSignatureStatusesRpcResult);\n\n if (!('error' in res)) {\n _context46.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get signature status');\n\n case 8:\n return _context46.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46, this);\n }));\n\n function getSignatureStatuses(_x73, _x74) {\n return _getSignatureStatuses.apply(this, arguments);\n }\n\n return getSignatureStatuses;\n }()\n /**\n * Fetch the current transaction count of the cluster\n */\n\n }, {\n key: \"getTransactionCount\",\n value: function () {\n var _getTransactionCount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee47(commitmentOrConfig) {\n var _extractCommitmentFro13, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n _extractCommitmentFro13 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro13.commitment, config = _extractCommitmentFro13.config;\n args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n _context47.next = 4;\n return this._rpcRequest('getTransactionCount', args);\n\n case 4:\n unsafeRes = _context47.sent;\n res = _create(unsafeRes, jsonRpcResult(number()));\n\n if (!('error' in res)) {\n _context47.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction count');\n\n case 8:\n return _context47.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47, this);\n }));\n\n function getTransactionCount(_x75) {\n return _getTransactionCount.apply(this, arguments);\n }\n\n return getTransactionCount;\n }()\n /**\n * Fetch the current total currency supply of the cluster in lamports\n *\n * @deprecated Deprecated since v1.2.8. Please use {@link getSupply} instead.\n */\n\n }, {\n key: \"getTotalSupply\",\n value: function () {\n var _getTotalSupply = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee48(commitment) {\n var result;\n return _regeneratorRuntime().wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n _context48.next = 2;\n return this.getSupply({\n commitment: commitment,\n excludeNonCirculatingAccountsList: true\n });\n\n case 2:\n result = _context48.sent;\n return _context48.abrupt(\"return\", result.value.total);\n\n case 4:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48, this);\n }));\n\n function getTotalSupply(_x76) {\n return _getTotalSupply.apply(this, arguments);\n }\n\n return getTotalSupply;\n }()\n /**\n * Fetch the cluster InflationGovernor parameters\n */\n\n }, {\n key: \"getInflationGovernor\",\n value: function () {\n var _getInflationGovernor = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee49(commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n args = this._buildArgs([], commitment);\n _context49.next = 3;\n return this._rpcRequest('getInflationGovernor', args);\n\n case 3:\n unsafeRes = _context49.sent;\n res = _create(unsafeRes, GetInflationGovernorRpcResult);\n\n if (!('error' in res)) {\n _context49.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation');\n\n case 7:\n return _context49.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49, this);\n }));\n\n function getInflationGovernor(_x77) {\n return _getInflationGovernor.apply(this, arguments);\n }\n\n return getInflationGovernor;\n }()\n /**\n * Fetch the inflation reward for a list of addresses for an epoch\n */\n\n }, {\n key: \"getInflationReward\",\n value: function () {\n var _getInflationReward = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee50(addresses, epoch, commitmentOrConfig) {\n var _extractCommitmentFro14, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n _extractCommitmentFro14 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro14.commitment, config = _extractCommitmentFro14.config;\n args = this._buildArgs([addresses.map(function (pubkey) {\n return pubkey.toBase58();\n })], commitment, undefined\n /* encoding */\n , _objectSpread2(_objectSpread2({}, config), {}, {\n epoch: epoch != null ? epoch : config === null || config === void 0 ? void 0 : config.epoch\n }));\n _context50.next = 4;\n return this._rpcRequest('getInflationReward', args);\n\n case 4:\n unsafeRes = _context50.sent;\n res = _create(unsafeRes, GetInflationRewardResult);\n\n if (!('error' in res)) {\n _context50.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation reward');\n\n case 8:\n return _context50.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50, this);\n }));\n\n function getInflationReward(_x78, _x79, _x80) {\n return _getInflationReward.apply(this, arguments);\n }\n\n return getInflationReward;\n }()\n /**\n * Fetch the specific inflation values for the current epoch\n */\n\n }, {\n key: \"getInflationRate\",\n value: function () {\n var _getInflationRate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee51() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n _context51.next = 2;\n return this._rpcRequest('getInflationRate', []);\n\n case 2:\n unsafeRes = _context51.sent;\n res = _create(unsafeRes, GetInflationRateRpcResult);\n\n if (!('error' in res)) {\n _context51.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation rate');\n\n case 6:\n return _context51.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51, this);\n }));\n\n function getInflationRate() {\n return _getInflationRate.apply(this, arguments);\n }\n\n return getInflationRate;\n }()\n /**\n * Fetch the Epoch Info parameters\n */\n\n }, {\n key: \"getEpochInfo\",\n value: function () {\n var _getEpochInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee52(commitmentOrConfig) {\n var _extractCommitmentFro15, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n _extractCommitmentFro15 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro15.commitment, config = _extractCommitmentFro15.config;\n args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n _context52.next = 4;\n return this._rpcRequest('getEpochInfo', args);\n\n case 4:\n unsafeRes = _context52.sent;\n res = _create(unsafeRes, GetEpochInfoRpcResult);\n\n if (!('error' in res)) {\n _context52.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get epoch info');\n\n case 8:\n return _context52.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52, this);\n }));\n\n function getEpochInfo(_x81) {\n return _getEpochInfo.apply(this, arguments);\n }\n\n return getEpochInfo;\n }()\n /**\n * Fetch the Epoch Schedule parameters\n */\n\n }, {\n key: \"getEpochSchedule\",\n value: function () {\n var _getEpochSchedule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee53() {\n var unsafeRes, res, epochSchedule;\n return _regeneratorRuntime().wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n _context53.next = 2;\n return this._rpcRequest('getEpochSchedule', []);\n\n case 2:\n unsafeRes = _context53.sent;\n res = _create(unsafeRes, GetEpochScheduleRpcResult);\n\n if (!('error' in res)) {\n _context53.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get epoch schedule');\n\n case 6:\n epochSchedule = res.result;\n return _context53.abrupt(\"return\", new EpochSchedule(epochSchedule.slotsPerEpoch, epochSchedule.leaderScheduleSlotOffset, epochSchedule.warmup, epochSchedule.firstNormalEpoch, epochSchedule.firstNormalSlot));\n\n case 8:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53, this);\n }));\n\n function getEpochSchedule() {\n return _getEpochSchedule.apply(this, arguments);\n }\n\n return getEpochSchedule;\n }()\n /**\n * Fetch the leader schedule for the current epoch\n * @return {Promise>}\n */\n\n }, {\n key: \"getLeaderSchedule\",\n value: function () {\n var _getLeaderSchedule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee54() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n _context54.next = 2;\n return this._rpcRequest('getLeaderSchedule', []);\n\n case 2:\n unsafeRes = _context54.sent;\n res = _create(unsafeRes, GetLeaderScheduleRpcResult);\n\n if (!('error' in res)) {\n _context54.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get leader schedule');\n\n case 6:\n return _context54.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54, this);\n }));\n\n function getLeaderSchedule() {\n return _getLeaderSchedule.apply(this, arguments);\n }\n\n return getLeaderSchedule;\n }()\n /**\n * Fetch the minimum balance needed to exempt an account of `dataLength`\n * size from rent\n */\n\n }, {\n key: \"getMinimumBalanceForRentExemption\",\n value: function () {\n var _getMinimumBalanceForRentExemption = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee55(dataLength, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n args = this._buildArgs([dataLength], commitment);\n _context55.next = 3;\n return this._rpcRequest('getMinimumBalanceForRentExemption', args);\n\n case 3:\n unsafeRes = _context55.sent;\n res = _create(unsafeRes, GetMinimumBalanceForRentExemptionRpcResult);\n\n if (!('error' in res)) {\n _context55.next = 8;\n break;\n }\n\n console.warn('Unable to fetch minimum balance for rent exemption');\n return _context55.abrupt(\"return\", 0);\n\n case 8:\n return _context55.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55, this);\n }));\n\n function getMinimumBalanceForRentExemption(_x82, _x83) {\n return _getMinimumBalanceForRentExemption.apply(this, arguments);\n }\n\n return getMinimumBalanceForRentExemption;\n }()\n /**\n * Fetch a recent blockhash from the cluster, return with context\n * @return {Promise>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n\n }, {\n key: \"getRecentBlockhashAndContext\",\n value: function () {\n var _getRecentBlockhashAndContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee56(commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee56$(_context56) {\n while (1) {\n switch (_context56.prev = _context56.next) {\n case 0:\n args = this._buildArgs([], commitment);\n _context56.next = 3;\n return this._rpcRequest('getRecentBlockhash', args);\n\n case 3:\n unsafeRes = _context56.sent;\n res = _create(unsafeRes, GetRecentBlockhashAndContextRpcResult);\n\n if (!('error' in res)) {\n _context56.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get recent blockhash');\n\n case 7:\n return _context56.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context56.stop();\n }\n }\n }, _callee56, this);\n }));\n\n function getRecentBlockhashAndContext(_x84) {\n return _getRecentBlockhashAndContext.apply(this, arguments);\n }\n\n return getRecentBlockhashAndContext;\n }()\n /**\n * Fetch recent performance samples\n * @return {Promise>}\n */\n\n }, {\n key: \"getRecentPerformanceSamples\",\n value: function () {\n var _getRecentPerformanceSamples = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee57(limit) {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee57$(_context57) {\n while (1) {\n switch (_context57.prev = _context57.next) {\n case 0:\n _context57.next = 2;\n return this._rpcRequest('getRecentPerformanceSamples', limit ? [limit] : []);\n\n case 2:\n unsafeRes = _context57.sent;\n res = _create(unsafeRes, GetRecentPerformanceSamplesRpcResult);\n\n if (!('error' in res)) {\n _context57.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get recent performance samples');\n\n case 6:\n return _context57.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context57.stop();\n }\n }\n }, _callee57, this);\n }));\n\n function getRecentPerformanceSamples(_x85) {\n return _getRecentPerformanceSamples.apply(this, arguments);\n }\n\n return getRecentPerformanceSamples;\n }()\n /**\n * Fetch the fee calculator for a recent blockhash from the cluster, return with context\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getFeeForMessage} instead.\n */\n\n }, {\n key: \"getFeeCalculatorForBlockhash\",\n value: function () {\n var _getFeeCalculatorForBlockhash = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee58(blockhash, commitment) {\n var args, unsafeRes, res, _res$result, context, value;\n\n return _regeneratorRuntime().wrap(function _callee58$(_context58) {\n while (1) {\n switch (_context58.prev = _context58.next) {\n case 0:\n args = this._buildArgs([blockhash], commitment);\n _context58.next = 3;\n return this._rpcRequest('getFeeCalculatorForBlockhash', args);\n\n case 3:\n unsafeRes = _context58.sent;\n res = _create(unsafeRes, GetFeeCalculatorRpcResult);\n\n if (!('error' in res)) {\n _context58.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get fee calculator');\n\n case 7:\n _res$result = res.result, context = _res$result.context, value = _res$result.value;\n return _context58.abrupt(\"return\", {\n context: context,\n value: value !== null ? value.feeCalculator : null\n });\n\n case 9:\n case \"end\":\n return _context58.stop();\n }\n }\n }, _callee58, this);\n }));\n\n function getFeeCalculatorForBlockhash(_x86, _x87) {\n return _getFeeCalculatorForBlockhash.apply(this, arguments);\n }\n\n return getFeeCalculatorForBlockhash;\n }()\n /**\n * Fetch the fee for a message from the cluster, return with context\n */\n\n }, {\n key: \"getFeeForMessage\",\n value: function () {\n var _getFeeForMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee59(message, commitment) {\n var wireMessage, args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee59$(_context59) {\n while (1) {\n switch (_context59.prev = _context59.next) {\n case 0:\n wireMessage = toBuffer(message.serialize()).toString('base64');\n args = this._buildArgs([wireMessage], commitment);\n _context59.next = 4;\n return this._rpcRequest('getFeeForMessage', args);\n\n case 4:\n unsafeRes = _context59.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(nullable(number())));\n\n if (!('error' in res)) {\n _context59.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get fee for message');\n\n case 8:\n if (!(res.result === null)) {\n _context59.next = 10;\n break;\n }\n\n throw new Error('invalid blockhash');\n\n case 10:\n return _context59.abrupt(\"return\", res.result);\n\n case 11:\n case \"end\":\n return _context59.stop();\n }\n }\n }, _callee59, this);\n }));\n\n function getFeeForMessage(_x88, _x89) {\n return _getFeeForMessage.apply(this, arguments);\n }\n\n return getFeeForMessage;\n }()\n /**\n * Fetch a list of prioritization fees from recent blocks.\n */\n\n }, {\n key: \"getRecentPrioritizationFees\",\n value: function () {\n var _getRecentPrioritizationFees = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee60(config) {\n var _config$lockedWritabl;\n\n var accounts, args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee60$(_context60) {\n while (1) {\n switch (_context60.prev = _context60.next) {\n case 0:\n accounts = config === null || config === void 0 ? void 0 : (_config$lockedWritabl = config.lockedWritableAccounts) === null || _config$lockedWritabl === void 0 ? void 0 : _config$lockedWritabl.map(function (key) {\n return key.toBase58();\n });\n args = accounts !== null && accounts !== void 0 && accounts.length ? [accounts] : [];\n _context60.next = 4;\n return this._rpcRequest('getRecentPrioritizationFees', args);\n\n case 4:\n unsafeRes = _context60.sent;\n res = _create(unsafeRes, GetRecentPrioritizationFeesRpcResult);\n\n if (!('error' in res)) {\n _context60.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get recent prioritization fees');\n\n case 8:\n return _context60.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context60.stop();\n }\n }\n }, _callee60, this);\n }));\n\n function getRecentPrioritizationFees(_x90) {\n return _getRecentPrioritizationFees.apply(this, arguments);\n }\n\n return getRecentPrioritizationFees;\n }()\n /**\n * Fetch a recent blockhash from the cluster\n * @return {Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n\n }, {\n key: \"getRecentBlockhash\",\n value: function () {\n var _getRecentBlockhash = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee61(commitment) {\n var res;\n return _regeneratorRuntime().wrap(function _callee61$(_context61) {\n while (1) {\n switch (_context61.prev = _context61.next) {\n case 0:\n _context61.prev = 0;\n _context61.next = 3;\n return this.getRecentBlockhashAndContext(commitment);\n\n case 3:\n res = _context61.sent;\n return _context61.abrupt(\"return\", res.value);\n\n case 7:\n _context61.prev = 7;\n _context61.t0 = _context61[\"catch\"](0);\n throw new Error('failed to get recent blockhash: ' + _context61.t0);\n\n case 10:\n case \"end\":\n return _context61.stop();\n }\n }\n }, _callee61, this, [[0, 7]]);\n }));\n\n function getRecentBlockhash(_x91) {\n return _getRecentBlockhash.apply(this, arguments);\n }\n\n return getRecentBlockhash;\n }()\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise}\n */\n\n }, {\n key: \"getLatestBlockhash\",\n value: function () {\n var _getLatestBlockhash = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee62(commitmentOrConfig) {\n var res;\n return _regeneratorRuntime().wrap(function _callee62$(_context62) {\n while (1) {\n switch (_context62.prev = _context62.next) {\n case 0:\n _context62.prev = 0;\n _context62.next = 3;\n return this.getLatestBlockhashAndContext(commitmentOrConfig);\n\n case 3:\n res = _context62.sent;\n return _context62.abrupt(\"return\", res.value);\n\n case 7:\n _context62.prev = 7;\n _context62.t0 = _context62[\"catch\"](0);\n throw new Error('failed to get recent blockhash: ' + _context62.t0);\n\n case 10:\n case \"end\":\n return _context62.stop();\n }\n }\n }, _callee62, this, [[0, 7]]);\n }));\n\n function getLatestBlockhash(_x92) {\n return _getLatestBlockhash.apply(this, arguments);\n }\n\n return getLatestBlockhash;\n }()\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise}\n */\n\n }, {\n key: \"getLatestBlockhashAndContext\",\n value: function () {\n var _getLatestBlockhashAndContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee63(commitmentOrConfig) {\n var _extractCommitmentFro16, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee63$(_context63) {\n while (1) {\n switch (_context63.prev = _context63.next) {\n case 0:\n _extractCommitmentFro16 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro16.commitment, config = _extractCommitmentFro16.config;\n args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n _context63.next = 4;\n return this._rpcRequest('getLatestBlockhash', args);\n\n case 4:\n unsafeRes = _context63.sent;\n res = _create(unsafeRes, GetLatestBlockhashRpcResult);\n\n if (!('error' in res)) {\n _context63.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get latest blockhash');\n\n case 8:\n return _context63.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context63.stop();\n }\n }\n }, _callee63, this);\n }));\n\n function getLatestBlockhashAndContext(_x93) {\n return _getLatestBlockhashAndContext.apply(this, arguments);\n }\n\n return getLatestBlockhashAndContext;\n }()\n /**\n * Returns whether a blockhash is still valid or not\n */\n\n }, {\n key: \"isBlockhashValid\",\n value: function () {\n var _isBlockhashValid = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee64(blockhash, rawConfig) {\n var _extractCommitmentFro17, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee64$(_context64) {\n while (1) {\n switch (_context64.prev = _context64.next) {\n case 0:\n _extractCommitmentFro17 = extractCommitmentFromConfig(rawConfig), commitment = _extractCommitmentFro17.commitment, config = _extractCommitmentFro17.config;\n args = this._buildArgs([blockhash], commitment, undefined\n /* encoding */\n , config);\n _context64.next = 4;\n return this._rpcRequest('isBlockhashValid', args);\n\n case 4:\n unsafeRes = _context64.sent;\n res = _create(unsafeRes, IsBlockhashValidRpcResult);\n\n if (!('error' in res)) {\n _context64.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to determine if the blockhash `' + blockhash + '`is valid');\n\n case 8:\n return _context64.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context64.stop();\n }\n }\n }, _callee64, this);\n }));\n\n function isBlockhashValid(_x94, _x95) {\n return _isBlockhashValid.apply(this, arguments);\n }\n\n return isBlockhashValid;\n }()\n /**\n * Fetch the node version\n */\n\n }, {\n key: \"getVersion\",\n value: function () {\n var _getVersion = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee65() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee65$(_context65) {\n while (1) {\n switch (_context65.prev = _context65.next) {\n case 0:\n _context65.next = 2;\n return this._rpcRequest('getVersion', []);\n\n case 2:\n unsafeRes = _context65.sent;\n res = _create(unsafeRes, jsonRpcResult(VersionResult));\n\n if (!('error' in res)) {\n _context65.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get version');\n\n case 6:\n return _context65.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context65.stop();\n }\n }\n }, _callee65, this);\n }));\n\n function getVersion() {\n return _getVersion.apply(this, arguments);\n }\n\n return getVersion;\n }()\n /**\n * Fetch the genesis hash\n */\n\n }, {\n key: \"getGenesisHash\",\n value: function () {\n var _getGenesisHash = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee66() {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee66$(_context66) {\n while (1) {\n switch (_context66.prev = _context66.next) {\n case 0:\n _context66.next = 2;\n return this._rpcRequest('getGenesisHash', []);\n\n case 2:\n unsafeRes = _context66.sent;\n res = _create(unsafeRes, jsonRpcResult(string()));\n\n if (!('error' in res)) {\n _context66.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get genesis hash');\n\n case 6:\n return _context66.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context66.stop();\n }\n }\n }, _callee66, this);\n }));\n\n function getGenesisHash() {\n return _getGenesisHash.apply(this, arguments);\n }\n\n return getGenesisHash;\n }()\n /**\n * Fetch a processed block from the cluster.\n *\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */\n\n /**\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * Fetch a processed block from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * Fetch a processed block from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"getBlock\",\n value: function () {\n var _getBlock = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee67(slot, rawConfig) {\n var _extractCommitmentFro18, commitment, config, args, unsafeRes, res, _res, _res2, result;\n\n return _regeneratorRuntime().wrap(function _callee67$(_context67) {\n while (1) {\n switch (_context67.prev = _context67.next) {\n case 0:\n _extractCommitmentFro18 = extractCommitmentFromConfig(rawConfig), commitment = _extractCommitmentFro18.commitment, config = _extractCommitmentFro18.config;\n args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined\n /* encoding */\n , config);\n _context67.next = 4;\n return this._rpcRequest('getBlock', args);\n\n case 4:\n unsafeRes = _context67.sent;\n _context67.prev = 5;\n _context67.t0 = config === null || config === void 0 ? void 0 : config.transactionDetails;\n _context67.next = _context67.t0 === 'accounts' ? 9 : _context67.t0 === 'none' ? 13 : 17;\n break;\n\n case 9:\n res = _create(unsafeRes, GetAccountsModeBlockRpcResult);\n\n if (!('error' in res)) {\n _context67.next = 12;\n break;\n }\n\n throw res.error;\n\n case 12:\n return _context67.abrupt(\"return\", res.result);\n\n case 13:\n _res = _create(unsafeRes, GetNoneModeBlockRpcResult);\n\n if (!('error' in _res)) {\n _context67.next = 16;\n break;\n }\n\n throw _res.error;\n\n case 16:\n return _context67.abrupt(\"return\", _res.result);\n\n case 17:\n _res2 = _create(unsafeRes, GetBlockRpcResult);\n\n if (!('error' in _res2)) {\n _context67.next = 20;\n break;\n }\n\n throw _res2.error;\n\n case 20:\n result = _res2.result;\n return _context67.abrupt(\"return\", result ? _objectSpread2(_objectSpread2({}, result), {}, {\n transactions: result.transactions.map(function (_ref36) {\n var transaction = _ref36.transaction,\n meta = _ref36.meta,\n version = _ref36.version;\n return {\n meta: meta,\n transaction: _objectSpread2(_objectSpread2({}, transaction), {}, {\n message: versionedMessageFromResponse(version, transaction.message)\n }),\n version: version\n };\n })\n }) : null);\n\n case 22:\n _context67.next = 27;\n break;\n\n case 24:\n _context67.prev = 24;\n _context67.t1 = _context67[\"catch\"](5);\n throw new SolanaJSONRPCError(_context67.t1, 'failed to get confirmed block');\n\n case 27:\n case \"end\":\n return _context67.stop();\n }\n }\n }, _callee67, this, [[5, 24]]);\n }));\n\n function getBlock(_x96, _x97) {\n return _getBlock.apply(this, arguments);\n }\n\n return getBlock;\n }()\n /**\n * Fetch parsed transaction details for a confirmed or finalized block\n */\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"getParsedBlock\",\n value: function () {\n var _getParsedBlock = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee68(slot, rawConfig) {\n var _extractCommitmentFro19, commitment, config, args, unsafeRes, res, _res3, _res4;\n\n return _regeneratorRuntime().wrap(function _callee68$(_context68) {\n while (1) {\n switch (_context68.prev = _context68.next) {\n case 0:\n _extractCommitmentFro19 = extractCommitmentFromConfig(rawConfig), commitment = _extractCommitmentFro19.commitment, config = _extractCommitmentFro19.config;\n args = this._buildArgsAtLeastConfirmed([slot], commitment, 'jsonParsed', config);\n _context68.next = 4;\n return this._rpcRequest('getBlock', args);\n\n case 4:\n unsafeRes = _context68.sent;\n _context68.prev = 5;\n _context68.t0 = config === null || config === void 0 ? void 0 : config.transactionDetails;\n _context68.next = _context68.t0 === 'accounts' ? 9 : _context68.t0 === 'none' ? 13 : 17;\n break;\n\n case 9:\n res = _create(unsafeRes, GetParsedAccountsModeBlockRpcResult);\n\n if (!('error' in res)) {\n _context68.next = 12;\n break;\n }\n\n throw res.error;\n\n case 12:\n return _context68.abrupt(\"return\", res.result);\n\n case 13:\n _res3 = _create(unsafeRes, GetParsedNoneModeBlockRpcResult);\n\n if (!('error' in _res3)) {\n _context68.next = 16;\n break;\n }\n\n throw _res3.error;\n\n case 16:\n return _context68.abrupt(\"return\", _res3.result);\n\n case 17:\n _res4 = _create(unsafeRes, GetParsedBlockRpcResult);\n\n if (!('error' in _res4)) {\n _context68.next = 20;\n break;\n }\n\n throw _res4.error;\n\n case 20:\n return _context68.abrupt(\"return\", _res4.result);\n\n case 21:\n _context68.next = 26;\n break;\n\n case 23:\n _context68.prev = 23;\n _context68.t1 = _context68[\"catch\"](5);\n throw new SolanaJSONRPCError(_context68.t1, 'failed to get block');\n\n case 26:\n case \"end\":\n return _context68.stop();\n }\n }\n }, _callee68, this, [[5, 23]]);\n }));\n\n function getParsedBlock(_x98, _x99) {\n return _getParsedBlock.apply(this, arguments);\n }\n\n return getParsedBlock;\n }()\n /*\n * Returns recent block production information from the current or previous epoch\n */\n\n }, {\n key: \"getBlockProduction\",\n value: function () {\n var _getBlockProduction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee69(configOrCommitment) {\n var extra, commitment, c, rest, args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee69$(_context69) {\n while (1) {\n switch (_context69.prev = _context69.next) {\n case 0:\n if (typeof configOrCommitment === 'string') {\n commitment = configOrCommitment;\n } else if (configOrCommitment) {\n c = configOrCommitment.commitment, rest = _objectWithoutProperties(configOrCommitment, _excluded3);\n commitment = c;\n extra = rest;\n }\n\n args = this._buildArgs([], commitment, 'base64', extra);\n _context69.next = 4;\n return this._rpcRequest('getBlockProduction', args);\n\n case 4:\n unsafeRes = _context69.sent;\n res = _create(unsafeRes, BlockProductionResponseStruct);\n\n if (!('error' in res)) {\n _context69.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get block production information');\n\n case 8:\n return _context69.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context69.stop();\n }\n }\n }, _callee69, this);\n }));\n\n function getBlockProduction(_x100) {\n return _getBlockProduction.apply(this, arguments);\n }\n\n return getBlockProduction;\n }()\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n *\n * @deprecated Instead, call `getTransaction` using a\n * `GetVersionedTransactionConfig` by setting the\n * `maxSupportedTransactionVersion` property.\n */\n\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"getTransaction\",\n value: function () {\n var _getTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee70(signature, rawConfig) {\n var _extractCommitmentFro20, commitment, config, args, unsafeRes, res, result;\n\n return _regeneratorRuntime().wrap(function _callee70$(_context70) {\n while (1) {\n switch (_context70.prev = _context70.next) {\n case 0:\n _extractCommitmentFro20 = extractCommitmentFromConfig(rawConfig), commitment = _extractCommitmentFro20.commitment, config = _extractCommitmentFro20.config;\n args = this._buildArgsAtLeastConfirmed([signature], commitment, undefined\n /* encoding */\n , config);\n _context70.next = 4;\n return this._rpcRequest('getTransaction', args);\n\n case 4:\n unsafeRes = _context70.sent;\n res = _create(unsafeRes, GetTransactionRpcResult);\n\n if (!('error' in res)) {\n _context70.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n\n case 8:\n result = res.result;\n\n if (result) {\n _context70.next = 11;\n break;\n }\n\n return _context70.abrupt(\"return\", result);\n\n case 11:\n return _context70.abrupt(\"return\", _objectSpread2(_objectSpread2({}, result), {}, {\n transaction: _objectSpread2(_objectSpread2({}, result.transaction), {}, {\n message: versionedMessageFromResponse(result.version, result.transaction.message)\n })\n }));\n\n case 12:\n case \"end\":\n return _context70.stop();\n }\n }\n }, _callee70, this);\n }));\n\n function getTransaction(_x101, _x102) {\n return _getTransaction.apply(this, arguments);\n }\n\n return getTransaction;\n }()\n /**\n * Fetch parsed transaction details for a confirmed or finalized transaction\n */\n\n }, {\n key: \"getParsedTransaction\",\n value: function () {\n var _getParsedTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee71(signature, commitmentOrConfig) {\n var _extractCommitmentFro21, commitment, config, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee71$(_context71) {\n while (1) {\n switch (_context71.prev = _context71.next) {\n case 0:\n _extractCommitmentFro21 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro21.commitment, config = _extractCommitmentFro21.config;\n args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed', config);\n _context71.next = 4;\n return this._rpcRequest('getTransaction', args);\n\n case 4:\n unsafeRes = _context71.sent;\n res = _create(unsafeRes, GetParsedTransactionRpcResult);\n\n if (!('error' in res)) {\n _context71.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n\n case 8:\n return _context71.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context71.stop();\n }\n }\n }, _callee71, this);\n }));\n\n function getParsedTransaction(_x103, _x104) {\n return _getParsedTransaction.apply(this, arguments);\n }\n\n return getParsedTransaction;\n }()\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n */\n\n }, {\n key: \"getParsedTransactions\",\n value: function () {\n var _getParsedTransactions = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee72(signatures, commitmentOrConfig) {\n var _this20 = this;\n\n var _extractCommitmentFro22, commitment, config, batch, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee72$(_context72) {\n while (1) {\n switch (_context72.prev = _context72.next) {\n case 0:\n _extractCommitmentFro22 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro22.commitment, config = _extractCommitmentFro22.config;\n batch = signatures.map(function (signature) {\n var args = _this20._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed', config);\n\n return {\n methodName: 'getTransaction',\n args: args\n };\n });\n _context72.next = 4;\n return this._rpcBatchRequest(batch);\n\n case 4:\n unsafeRes = _context72.sent;\n res = unsafeRes.map(function (unsafeRes) {\n var res = _create(unsafeRes, GetParsedTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n }\n\n return res.result;\n });\n return _context72.abrupt(\"return\", res);\n\n case 7:\n case \"end\":\n return _context72.stop();\n }\n }\n }, _callee72, this);\n }));\n\n function getParsedTransactions(_x105, _x106) {\n return _getParsedTransactions.apply(this, arguments);\n }\n\n return getParsedTransactions;\n }()\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link TransactionResponse}.\n *\n * @deprecated Instead, call `getTransactions` using a\n * `GetVersionedTransactionConfig` by setting the\n * `maxSupportedTransactionVersion` property.\n */\n\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link\n * VersionedTransactionResponse}.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link\n * VersionedTransactionResponse}.\n */\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"getTransactions\",\n value: function () {\n var _getTransactions = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee73(signatures, commitmentOrConfig) {\n var _this21 = this;\n\n var _extractCommitmentFro23, commitment, config, batch, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee73$(_context73) {\n while (1) {\n switch (_context73.prev = _context73.next) {\n case 0:\n _extractCommitmentFro23 = extractCommitmentFromConfig(commitmentOrConfig), commitment = _extractCommitmentFro23.commitment, config = _extractCommitmentFro23.config;\n batch = signatures.map(function (signature) {\n var args = _this21._buildArgsAtLeastConfirmed([signature], commitment, undefined\n /* encoding */\n , config);\n\n return {\n methodName: 'getTransaction',\n args: args\n };\n });\n _context73.next = 4;\n return this._rpcBatchRequest(batch);\n\n case 4:\n unsafeRes = _context73.sent;\n res = unsafeRes.map(function (unsafeRes) {\n var res = _create(unsafeRes, GetTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n }\n\n var result = res.result;\n if (!result) return result;\n return _objectSpread2(_objectSpread2({}, result), {}, {\n transaction: _objectSpread2(_objectSpread2({}, result.transaction), {}, {\n message: versionedMessageFromResponse(result.version, result.transaction.message)\n })\n });\n });\n return _context73.abrupt(\"return\", res);\n\n case 7:\n case \"end\":\n return _context73.stop();\n }\n }\n }, _callee73, this);\n }));\n\n function getTransactions(_x107, _x108) {\n return _getTransactions.apply(this, arguments);\n }\n\n return getTransactions;\n }()\n /**\n * Fetch a list of Transactions and transaction statuses from the cluster\n * for a confirmed block.\n *\n * @deprecated Deprecated since v1.13.0. Please use {@link getBlock} instead.\n */\n\n }, {\n key: \"getConfirmedBlock\",\n value: function () {\n var _getConfirmedBlock = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee74(slot, commitment) {\n var args, unsafeRes, res, result, block;\n return _regeneratorRuntime().wrap(function _callee74$(_context74) {\n while (1) {\n switch (_context74.prev = _context74.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([slot], commitment);\n _context74.next = 3;\n return this._rpcRequest('getConfirmedBlock', args);\n\n case 3:\n unsafeRes = _context74.sent;\n res = _create(unsafeRes, GetConfirmedBlockRpcResult);\n\n if (!('error' in res)) {\n _context74.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n\n case 7:\n result = res.result;\n\n if (result) {\n _context74.next = 10;\n break;\n }\n\n throw new Error('Confirmed block ' + slot + ' not found');\n\n case 10:\n block = _objectSpread2(_objectSpread2({}, result), {}, {\n transactions: result.transactions.map(function (_ref37) {\n var transaction = _ref37.transaction,\n meta = _ref37.meta;\n var message = new Message(transaction.message);\n return {\n meta: meta,\n transaction: _objectSpread2(_objectSpread2({}, transaction), {}, {\n message: message\n })\n };\n })\n });\n return _context74.abrupt(\"return\", _objectSpread2(_objectSpread2({}, block), {}, {\n transactions: block.transactions.map(function (_ref38) {\n var transaction = _ref38.transaction,\n meta = _ref38.meta;\n return {\n meta: meta,\n transaction: Transaction.populate(transaction.message, transaction.signatures)\n };\n })\n }));\n\n case 12:\n case \"end\":\n return _context74.stop();\n }\n }\n }, _callee74, this);\n }));\n\n function getConfirmedBlock(_x109, _x110) {\n return _getConfirmedBlock.apply(this, arguments);\n }\n\n return getConfirmedBlock;\n }()\n /**\n * Fetch confirmed blocks between two slots\n */\n\n }, {\n key: \"getBlocks\",\n value: function () {\n var _getBlocks = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee75(startSlot, endSlot, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee75$(_context75) {\n while (1) {\n switch (_context75.prev = _context75.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed(endSlot !== undefined ? [startSlot, endSlot] : [startSlot], commitment);\n _context75.next = 3;\n return this._rpcRequest('getBlocks', args);\n\n case 3:\n unsafeRes = _context75.sent;\n res = _create(unsafeRes, jsonRpcResult(array(number())));\n\n if (!('error' in res)) {\n _context75.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get blocks');\n\n case 7:\n return _context75.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context75.stop();\n }\n }\n }, _callee75, this);\n }));\n\n function getBlocks(_x111, _x112, _x113) {\n return _getBlocks.apply(this, arguments);\n }\n\n return getBlocks;\n }()\n /**\n * Fetch a list of Signatures from the cluster for a block, excluding rewards\n */\n\n }, {\n key: \"getBlockSignatures\",\n value: function () {\n var _getBlockSignatures = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee76(slot, commitment) {\n var args, unsafeRes, res, result;\n return _regeneratorRuntime().wrap(function _callee76$(_context76) {\n while (1) {\n switch (_context76.prev = _context76.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined, {\n transactionDetails: 'signatures',\n rewards: false\n });\n _context76.next = 3;\n return this._rpcRequest('getBlock', args);\n\n case 3:\n unsafeRes = _context76.sent;\n res = _create(unsafeRes, GetBlockSignaturesRpcResult);\n\n if (!('error' in res)) {\n _context76.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get block');\n\n case 7:\n result = res.result;\n\n if (result) {\n _context76.next = 10;\n break;\n }\n\n throw new Error('Block ' + slot + ' not found');\n\n case 10:\n return _context76.abrupt(\"return\", result);\n\n case 11:\n case \"end\":\n return _context76.stop();\n }\n }\n }, _callee76, this);\n }));\n\n function getBlockSignatures(_x114, _x115) {\n return _getBlockSignatures.apply(this, arguments);\n }\n\n return getBlockSignatures;\n }()\n /**\n * Fetch a list of Signatures from the cluster for a confirmed block, excluding rewards\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getBlockSignatures} instead.\n */\n\n }, {\n key: \"getConfirmedBlockSignatures\",\n value: function () {\n var _getConfirmedBlockSignatures = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee77(slot, commitment) {\n var args, unsafeRes, res, result;\n return _regeneratorRuntime().wrap(function _callee77$(_context77) {\n while (1) {\n switch (_context77.prev = _context77.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined, {\n transactionDetails: 'signatures',\n rewards: false\n });\n _context77.next = 3;\n return this._rpcRequest('getConfirmedBlock', args);\n\n case 3:\n unsafeRes = _context77.sent;\n res = _create(unsafeRes, GetBlockSignaturesRpcResult);\n\n if (!('error' in res)) {\n _context77.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n\n case 7:\n result = res.result;\n\n if (result) {\n _context77.next = 10;\n break;\n }\n\n throw new Error('Confirmed block ' + slot + ' not found');\n\n case 10:\n return _context77.abrupt(\"return\", result);\n\n case 11:\n case \"end\":\n return _context77.stop();\n }\n }\n }, _callee77, this);\n }));\n\n function getConfirmedBlockSignatures(_x116, _x117) {\n return _getConfirmedBlockSignatures.apply(this, arguments);\n }\n\n return getConfirmedBlockSignatures;\n }()\n /**\n * Fetch a transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getTransaction} instead.\n */\n\n }, {\n key: \"getConfirmedTransaction\",\n value: function () {\n var _getConfirmedTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee78(signature, commitment) {\n var args, unsafeRes, res, result, message, signatures;\n return _regeneratorRuntime().wrap(function _callee78$(_context78) {\n while (1) {\n switch (_context78.prev = _context78.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([signature], commitment);\n _context78.next = 3;\n return this._rpcRequest('getConfirmedTransaction', args);\n\n case 3:\n unsafeRes = _context78.sent;\n res = _create(unsafeRes, GetTransactionRpcResult);\n\n if (!('error' in res)) {\n _context78.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n\n case 7:\n result = res.result;\n\n if (result) {\n _context78.next = 10;\n break;\n }\n\n return _context78.abrupt(\"return\", result);\n\n case 10:\n message = new Message(result.transaction.message);\n signatures = result.transaction.signatures;\n return _context78.abrupt(\"return\", _objectSpread2(_objectSpread2({}, result), {}, {\n transaction: Transaction.populate(message, signatures)\n }));\n\n case 13:\n case \"end\":\n return _context78.stop();\n }\n }\n }, _callee78, this);\n }));\n\n function getConfirmedTransaction(_x118, _x119) {\n return _getConfirmedTransaction.apply(this, arguments);\n }\n\n return getConfirmedTransaction;\n }()\n /**\n * Fetch parsed transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransaction} instead.\n */\n\n }, {\n key: \"getParsedConfirmedTransaction\",\n value: function () {\n var _getParsedConfirmedTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee79(signature, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee79$(_context79) {\n while (1) {\n switch (_context79.prev = _context79.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed');\n _context79.next = 3;\n return this._rpcRequest('getConfirmedTransaction', args);\n\n case 3:\n unsafeRes = _context79.sent;\n res = _create(unsafeRes, GetParsedTransactionRpcResult);\n\n if (!('error' in res)) {\n _context79.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed transaction');\n\n case 7:\n return _context79.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context79.stop();\n }\n }\n }, _callee79, this);\n }));\n\n function getParsedConfirmedTransaction(_x120, _x121) {\n return _getParsedConfirmedTransaction.apply(this, arguments);\n }\n\n return getParsedConfirmedTransaction;\n }()\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransactions} instead.\n */\n\n }, {\n key: \"getParsedConfirmedTransactions\",\n value: function () {\n var _getParsedConfirmedTransactions = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee80(signatures, commitment) {\n var _this22 = this;\n\n var batch, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee80$(_context80) {\n while (1) {\n switch (_context80.prev = _context80.next) {\n case 0:\n batch = signatures.map(function (signature) {\n var args = _this22._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed');\n\n return {\n methodName: 'getConfirmedTransaction',\n args: args\n };\n });\n _context80.next = 3;\n return this._rpcBatchRequest(batch);\n\n case 3:\n unsafeRes = _context80.sent;\n res = unsafeRes.map(function (unsafeRes) {\n var res = _create(unsafeRes, GetParsedTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed transactions');\n }\n\n return res.result;\n });\n return _context80.abrupt(\"return\", res);\n\n case 6:\n case \"end\":\n return _context80.stop();\n }\n }\n }, _callee80, this);\n }));\n\n function getParsedConfirmedTransactions(_x122, _x123) {\n return _getParsedConfirmedTransactions.apply(this, arguments);\n }\n\n return getParsedConfirmedTransactions;\n }()\n /**\n * Fetch a list of all the confirmed signatures for transactions involving an address\n * within a specified slot range. Max range allowed is 10,000 slots.\n *\n * @deprecated Deprecated since v1.3. Please use {@link getConfirmedSignaturesForAddress2} instead.\n *\n * @param address queried address\n * @param startSlot start slot, inclusive\n * @param endSlot end slot, inclusive\n */\n\n }, {\n key: \"getConfirmedSignaturesForAddress\",\n value: function () {\n var _getConfirmedSignaturesForAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee81(address, startSlot, endSlot) {\n var options, firstAvailableBlock, block, highestConfirmedRoot, _block, confirmedSignatureInfo;\n\n return _regeneratorRuntime().wrap(function _callee81$(_context81) {\n while (1) {\n switch (_context81.prev = _context81.next) {\n case 0:\n options = {};\n _context81.next = 3;\n return this.getFirstAvailableBlock();\n\n case 3:\n firstAvailableBlock = _context81.sent;\n\n case 4:\n if ('until' in options) {\n _context81.next = 24;\n break;\n }\n\n startSlot--;\n\n if (!(startSlot <= 0 || startSlot < firstAvailableBlock)) {\n _context81.next = 8;\n break;\n }\n\n return _context81.abrupt(\"break\", 24);\n\n case 8:\n _context81.prev = 8;\n _context81.next = 11;\n return this.getConfirmedBlockSignatures(startSlot, 'finalized');\n\n case 11:\n block = _context81.sent;\n\n if (block.signatures.length > 0) {\n options.until = block.signatures[block.signatures.length - 1].toString();\n }\n\n _context81.next = 22;\n break;\n\n case 15:\n _context81.prev = 15;\n _context81.t0 = _context81[\"catch\"](8);\n\n if (!(_context81.t0 instanceof Error && _context81.t0.message.includes('skipped'))) {\n _context81.next = 21;\n break;\n }\n\n return _context81.abrupt(\"continue\", 4);\n\n case 21:\n throw _context81.t0;\n\n case 22:\n _context81.next = 4;\n break;\n\n case 24:\n _context81.next = 26;\n return this.getSlot('finalized');\n\n case 26:\n highestConfirmedRoot = _context81.sent;\n\n case 27:\n if ('before' in options) {\n _context81.next = 47;\n break;\n }\n\n endSlot++;\n\n if (!(endSlot > highestConfirmedRoot)) {\n _context81.next = 31;\n break;\n }\n\n return _context81.abrupt(\"break\", 47);\n\n case 31:\n _context81.prev = 31;\n _context81.next = 34;\n return this.getConfirmedBlockSignatures(endSlot);\n\n case 34:\n _block = _context81.sent;\n\n if (_block.signatures.length > 0) {\n options.before = _block.signatures[_block.signatures.length - 1].toString();\n }\n\n _context81.next = 45;\n break;\n\n case 38:\n _context81.prev = 38;\n _context81.t1 = _context81[\"catch\"](31);\n\n if (!(_context81.t1 instanceof Error && _context81.t1.message.includes('skipped'))) {\n _context81.next = 44;\n break;\n }\n\n return _context81.abrupt(\"continue\", 27);\n\n case 44:\n throw _context81.t1;\n\n case 45:\n _context81.next = 27;\n break;\n\n case 47:\n _context81.next = 49;\n return this.getConfirmedSignaturesForAddress2(address, options);\n\n case 49:\n confirmedSignatureInfo = _context81.sent;\n return _context81.abrupt(\"return\", confirmedSignatureInfo.map(function (info) {\n return info.signature;\n }));\n\n case 51:\n case \"end\":\n return _context81.stop();\n }\n }\n }, _callee81, this, [[8, 15], [31, 38]]);\n }));\n\n function getConfirmedSignaturesForAddress(_x124, _x125, _x126) {\n return _getConfirmedSignaturesForAddress.apply(this, arguments);\n }\n\n return getConfirmedSignaturesForAddress;\n }()\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n\n }, {\n key: \"getConfirmedSignaturesForAddress2\",\n value: function () {\n var _getConfirmedSignaturesForAddress2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee82(address, options, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee82$(_context82) {\n while (1) {\n switch (_context82.prev = _context82.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, undefined, options);\n _context82.next = 3;\n return this._rpcRequest('getConfirmedSignaturesForAddress2', args);\n\n case 3:\n unsafeRes = _context82.sent;\n res = _create(unsafeRes, GetConfirmedSignaturesForAddress2RpcResult);\n\n if (!('error' in res)) {\n _context82.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed signatures for address');\n\n case 7:\n return _context82.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context82.stop();\n }\n }\n }, _callee82, this);\n }));\n\n function getConfirmedSignaturesForAddress2(_x127, _x128, _x129) {\n return _getConfirmedSignaturesForAddress2.apply(this, arguments);\n }\n\n return getConfirmedSignaturesForAddress2;\n }()\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n\n }, {\n key: \"getSignaturesForAddress\",\n value: function () {\n var _getSignaturesForAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee83(address, options, commitment) {\n var args, unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee83$(_context83) {\n while (1) {\n switch (_context83.prev = _context83.next) {\n case 0:\n args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, undefined, options);\n _context83.next = 3;\n return this._rpcRequest('getSignaturesForAddress', args);\n\n case 3:\n unsafeRes = _context83.sent;\n res = _create(unsafeRes, GetSignaturesForAddressRpcResult);\n\n if (!('error' in res)) {\n _context83.next = 7;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, 'failed to get signatures for address');\n\n case 7:\n return _context83.abrupt(\"return\", res.result);\n\n case 8:\n case \"end\":\n return _context83.stop();\n }\n }\n }, _callee83, this);\n }));\n\n function getSignaturesForAddress(_x130, _x131, _x132) {\n return _getSignaturesForAddress.apply(this, arguments);\n }\n\n return getSignaturesForAddress;\n }()\n }, {\n key: \"getAddressLookupTable\",\n value: function () {\n var _getAddressLookupTable = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee84(accountKey, config) {\n var _yield$this$getAccoun, context, accountInfo, value;\n\n return _regeneratorRuntime().wrap(function _callee84$(_context84) {\n while (1) {\n switch (_context84.prev = _context84.next) {\n case 0:\n _context84.next = 2;\n return this.getAccountInfoAndContext(accountKey, config);\n\n case 2:\n _yield$this$getAccoun = _context84.sent;\n context = _yield$this$getAccoun.context;\n accountInfo = _yield$this$getAccoun.value;\n value = null;\n\n if (accountInfo !== null) {\n value = new AddressLookupTableAccount({\n key: accountKey,\n state: AddressLookupTableAccount.deserialize(accountInfo.data)\n });\n }\n\n return _context84.abrupt(\"return\", {\n context: context,\n value: value\n });\n\n case 8:\n case \"end\":\n return _context84.stop();\n }\n }\n }, _callee84, this);\n }));\n\n function getAddressLookupTable(_x133, _x134) {\n return _getAddressLookupTable.apply(this, arguments);\n }\n\n return getAddressLookupTable;\n }()\n /**\n * Fetch the contents of a Nonce account from the cluster, return with context\n */\n\n }, {\n key: \"getNonceAndContext\",\n value: function () {\n var _getNonceAndContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee85(nonceAccount, commitmentOrConfig) {\n var _yield$this$getAccoun2, context, accountInfo, value;\n\n return _regeneratorRuntime().wrap(function _callee85$(_context85) {\n while (1) {\n switch (_context85.prev = _context85.next) {\n case 0:\n _context85.next = 2;\n return this.getAccountInfoAndContext(nonceAccount, commitmentOrConfig);\n\n case 2:\n _yield$this$getAccoun2 = _context85.sent;\n context = _yield$this$getAccoun2.context;\n accountInfo = _yield$this$getAccoun2.value;\n value = null;\n\n if (accountInfo !== null) {\n value = NonceAccount.fromAccountData(accountInfo.data);\n }\n\n return _context85.abrupt(\"return\", {\n context: context,\n value: value\n });\n\n case 8:\n case \"end\":\n return _context85.stop();\n }\n }\n }, _callee85, this);\n }));\n\n function getNonceAndContext(_x135, _x136) {\n return _getNonceAndContext.apply(this, arguments);\n }\n\n return getNonceAndContext;\n }()\n /**\n * Fetch the contents of a Nonce account from the cluster\n */\n\n }, {\n key: \"getNonce\",\n value: function () {\n var _getNonce = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee86(nonceAccount, commitmentOrConfig) {\n return _regeneratorRuntime().wrap(function _callee86$(_context86) {\n while (1) {\n switch (_context86.prev = _context86.next) {\n case 0:\n _context86.next = 2;\n return this.getNonceAndContext(nonceAccount, commitmentOrConfig).then(function (x) {\n return x.value;\n })[\"catch\"](function (e) {\n throw new Error('failed to get nonce for account ' + nonceAccount.toBase58() + ': ' + e);\n });\n\n case 2:\n return _context86.abrupt(\"return\", _context86.sent);\n\n case 3:\n case \"end\":\n return _context86.stop();\n }\n }\n }, _callee86, this);\n }));\n\n function getNonce(_x137, _x138) {\n return _getNonce.apply(this, arguments);\n }\n\n return getNonce;\n }()\n /**\n * Request an allocation of lamports to the specified address\n *\n * ```typescript\n * import { Connection, PublicKey, LAMPORTS_PER_SOL } from \"@solana/web3.js\";\n *\n * (async () => {\n * const connection = new Connection(\"https://api.testnet.solana.com\", \"confirmed\");\n * const myAddress = new PublicKey(\"2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM\");\n * const signature = await connection.requestAirdrop(myAddress, LAMPORTS_PER_SOL);\n * await connection.confirmTransaction(signature);\n * })();\n * ```\n */\n\n }, {\n key: \"requestAirdrop\",\n value: function () {\n var _requestAirdrop = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee87(to, lamports) {\n var unsafeRes, res;\n return _regeneratorRuntime().wrap(function _callee87$(_context87) {\n while (1) {\n switch (_context87.prev = _context87.next) {\n case 0:\n _context87.next = 2;\n return this._rpcRequest('requestAirdrop', [to.toBase58(), lamports]);\n\n case 2:\n unsafeRes = _context87.sent;\n res = _create(unsafeRes, RequestAirdropRpcResult);\n\n if (!('error' in res)) {\n _context87.next = 6;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"airdrop to \".concat(to.toBase58(), \" failed\"));\n\n case 6:\n return _context87.abrupt(\"return\", res.result);\n\n case 7:\n case \"end\":\n return _context87.stop();\n }\n }\n }, _callee87, this);\n }));\n\n function requestAirdrop(_x139, _x140) {\n return _requestAirdrop.apply(this, arguments);\n }\n\n return requestAirdrop;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_blockhashWithExpiryBlockHeight\",\n value: function () {\n var _blockhashWithExpiryBlockHeight2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee88(disableCache) {\n var timeSinceFetch, expired;\n return _regeneratorRuntime().wrap(function _callee88$(_context88) {\n while (1) {\n switch (_context88.prev = _context88.next) {\n case 0:\n if (disableCache) {\n _context88.next = 10;\n break;\n }\n\n case 1:\n if (!this._pollingBlockhash) {\n _context88.next = 6;\n break;\n }\n\n _context88.next = 4;\n return sleep(100);\n\n case 4:\n _context88.next = 1;\n break;\n\n case 6:\n timeSinceFetch = Date.now() - this._blockhashInfo.lastFetch;\n expired = timeSinceFetch >= BLOCKHASH_CACHE_TIMEOUT_MS;\n\n if (!(this._blockhashInfo.latestBlockhash !== null && !expired)) {\n _context88.next = 10;\n break;\n }\n\n return _context88.abrupt(\"return\", this._blockhashInfo.latestBlockhash);\n\n case 10:\n _context88.next = 12;\n return this._pollNewBlockhash();\n\n case 12:\n return _context88.abrupt(\"return\", _context88.sent);\n\n case 13:\n case \"end\":\n return _context88.stop();\n }\n }\n }, _callee88, this);\n }));\n\n function _blockhashWithExpiryBlockHeight(_x141) {\n return _blockhashWithExpiryBlockHeight2.apply(this, arguments);\n }\n\n return _blockhashWithExpiryBlockHeight;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_pollNewBlockhash\",\n value: function () {\n var _pollNewBlockhash2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee89() {\n var startTime, cachedLatestBlockhash, cachedBlockhash, i, latestBlockhash;\n return _regeneratorRuntime().wrap(function _callee89$(_context89) {\n while (1) {\n switch (_context89.prev = _context89.next) {\n case 0:\n this._pollingBlockhash = true;\n _context89.prev = 1;\n startTime = Date.now();\n cachedLatestBlockhash = this._blockhashInfo.latestBlockhash;\n cachedBlockhash = cachedLatestBlockhash ? cachedLatestBlockhash.blockhash : null;\n i = 0;\n\n case 6:\n if (!(i < 50)) {\n _context89.next = 18;\n break;\n }\n\n _context89.next = 9;\n return this.getLatestBlockhash('finalized');\n\n case 9:\n latestBlockhash = _context89.sent;\n\n if (!(cachedBlockhash !== latestBlockhash.blockhash)) {\n _context89.next = 13;\n break;\n }\n\n this._blockhashInfo = {\n latestBlockhash: latestBlockhash,\n lastFetch: Date.now(),\n transactionSignatures: [],\n simulatedSignatures: []\n };\n return _context89.abrupt(\"return\", latestBlockhash);\n\n case 13:\n _context89.next = 15;\n return sleep(MS_PER_SLOT / 2);\n\n case 15:\n i++;\n _context89.next = 6;\n break;\n\n case 18:\n throw new Error(\"Unable to obtain a new blockhash after \".concat(Date.now() - startTime, \"ms\"));\n\n case 19:\n _context89.prev = 19;\n this._pollingBlockhash = false;\n return _context89.finish(19);\n\n case 22:\n case \"end\":\n return _context89.stop();\n }\n }\n }, _callee89, this, [[1,, 19, 22]]);\n }));\n\n function _pollNewBlockhash() {\n return _pollNewBlockhash2.apply(this, arguments);\n }\n\n return _pollNewBlockhash;\n }()\n /**\n * get the stake minimum delegation\n */\n\n }, {\n key: \"getStakeMinimumDelegation\",\n value: function () {\n var _getStakeMinimumDelegation = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee90(config) {\n var _extractCommitmentFro24, commitment, configArg, args, unsafeRes, res;\n\n return _regeneratorRuntime().wrap(function _callee90$(_context90) {\n while (1) {\n switch (_context90.prev = _context90.next) {\n case 0:\n _extractCommitmentFro24 = extractCommitmentFromConfig(config), commitment = _extractCommitmentFro24.commitment, configArg = _extractCommitmentFro24.config;\n args = this._buildArgs([], commitment, 'base64', configArg);\n _context90.next = 4;\n return this._rpcRequest('getStakeMinimumDelegation', args);\n\n case 4:\n unsafeRes = _context90.sent;\n res = _create(unsafeRes, jsonRpcResultAndContext(number()));\n\n if (!('error' in res)) {\n _context90.next = 8;\n break;\n }\n\n throw new SolanaJSONRPCError(res.error, \"failed to get stake minimum delegation\");\n\n case 8:\n return _context90.abrupt(\"return\", res.result);\n\n case 9:\n case \"end\":\n return _context90.stop();\n }\n }\n }, _callee90, this);\n }));\n\n function getStakeMinimumDelegation(_x142) {\n return _getStakeMinimumDelegation.apply(this, arguments);\n }\n\n return getStakeMinimumDelegation;\n }()\n /**\n * Simulate a transaction\n *\n * @deprecated Instead, call {@link simulateTransaction} with {@link\n * VersionedTransaction} and {@link SimulateTransactionConfig} parameters\n */\n\n /**\n * Simulate a transaction\n */\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * Simulate a transaction\n */\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"simulateTransaction\",\n value: function () {\n var _simulateTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee91(transactionOrMessage, configOrSigners, includeAccounts) {\n var versionedTx, _wireTransaction, _encodedTransaction, _config, _args92, _unsafeRes, _res5, transaction, originalTx, signers, _transaction3, disableCache, _transaction4, latestBlockhash, _signature3, message, signData, wireTransaction, encodedTransaction, config, addresses, args, unsafeRes, res, logs, traceIndent, logTrace;\n\n return _regeneratorRuntime().wrap(function _callee91$(_context91) {\n while (1) {\n switch (_context91.prev = _context91.next) {\n case 0:\n if (!('message' in transactionOrMessage)) {\n _context91.next = 17;\n break;\n }\n\n versionedTx = transactionOrMessage;\n _wireTransaction = versionedTx.serialize();\n _encodedTransaction = Buffer$1.from(_wireTransaction).toString('base64');\n\n if (!(Array.isArray(configOrSigners) || includeAccounts !== undefined)) {\n _context91.next = 6;\n break;\n }\n\n throw new Error('Invalid arguments');\n\n case 6:\n _config = configOrSigners || {};\n _config.encoding = 'base64';\n\n if (!('commitment' in _config)) {\n _config.commitment = this.commitment;\n }\n\n _args92 = [_encodedTransaction, _config];\n _context91.next = 12;\n return this._rpcRequest('simulateTransaction', _args92);\n\n case 12:\n _unsafeRes = _context91.sent;\n _res5 = _create(_unsafeRes, SimulatedTransactionResponseStruct);\n\n if (!('error' in _res5)) {\n _context91.next = 16;\n break;\n }\n\n throw new Error('failed to simulate transaction: ' + _res5.error.message);\n\n case 16:\n return _context91.abrupt(\"return\", _res5.result);\n\n case 17:\n if (transactionOrMessage instanceof Transaction) {\n originalTx = transactionOrMessage;\n transaction = new Transaction();\n transaction.feePayer = originalTx.feePayer;\n transaction.instructions = transactionOrMessage.instructions;\n transaction.nonceInfo = originalTx.nonceInfo;\n transaction.signatures = originalTx.signatures;\n } else {\n transaction = Transaction.populate(transactionOrMessage); // HACK: this function relies on mutating the populated transaction\n\n transaction._message = transaction._json = undefined;\n }\n\n if (!(configOrSigners !== undefined && !Array.isArray(configOrSigners))) {\n _context91.next = 20;\n break;\n }\n\n throw new Error('Invalid arguments');\n\n case 20:\n signers = configOrSigners;\n\n if (!(transaction.nonceInfo && signers)) {\n _context91.next = 25;\n break;\n }\n\n (_transaction3 = transaction).sign.apply(_transaction3, _toConsumableArray(signers));\n\n _context91.next = 45;\n break;\n\n case 25:\n disableCache = this._disableBlockhashCaching;\n\n case 26:\n _context91.next = 28;\n return this._blockhashWithExpiryBlockHeight(disableCache);\n\n case 28:\n latestBlockhash = _context91.sent;\n transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n transaction.recentBlockhash = latestBlockhash.blockhash;\n\n if (signers) {\n _context91.next = 33;\n break;\n }\n\n return _context91.abrupt(\"break\", 45);\n\n case 33:\n (_transaction4 = transaction).sign.apply(_transaction4, _toConsumableArray(signers));\n\n if (transaction.signature) {\n _context91.next = 36;\n break;\n }\n\n throw new Error('!signature');\n\n case 36:\n _signature3 = transaction.signature.toString('base64');\n\n if (!(!this._blockhashInfo.simulatedSignatures.includes(_signature3) && !this._blockhashInfo.transactionSignatures.includes(_signature3))) {\n _context91.next = 42;\n break;\n } // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n\n\n this._blockhashInfo.simulatedSignatures.push(_signature3);\n\n return _context91.abrupt(\"break\", 45);\n\n case 42:\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n\n case 43:\n _context91.next = 26;\n break;\n\n case 45:\n message = transaction._compile();\n signData = message.serialize();\n wireTransaction = transaction._serialize(signData);\n encodedTransaction = wireTransaction.toString('base64');\n config = {\n encoding: 'base64',\n commitment: this.commitment\n };\n\n if (includeAccounts) {\n addresses = (Array.isArray(includeAccounts) ? includeAccounts : message.nonProgramIds()).map(function (key) {\n return key.toBase58();\n });\n config['accounts'] = {\n encoding: 'base64',\n addresses: addresses\n };\n }\n\n if (signers) {\n config.sigVerify = true;\n }\n\n args = [encodedTransaction, config];\n _context91.next = 55;\n return this._rpcRequest('simulateTransaction', args);\n\n case 55:\n unsafeRes = _context91.sent;\n res = _create(unsafeRes, SimulatedTransactionResponseStruct);\n\n if (!('error' in res)) {\n _context91.next = 60;\n break;\n }\n\n if ('data' in res.error) {\n logs = res.error.data.logs;\n\n if (logs && Array.isArray(logs)) {\n traceIndent = '\\n ';\n logTrace = traceIndent + logs.join(traceIndent);\n console.error(res.error.message, logTrace);\n }\n }\n\n throw new SendTransactionError('failed to simulate transaction: ' + res.error.message, logs);\n\n case 60:\n return _context91.abrupt(\"return\", res.result);\n\n case 61:\n case \"end\":\n return _context91.stop();\n }\n }\n }, _callee91, this);\n }));\n\n function simulateTransaction(_x143, _x144, _x145) {\n return _simulateTransaction.apply(this, arguments);\n }\n\n return simulateTransaction;\n }()\n /**\n * Sign and send a transaction\n *\n * @deprecated Instead, call {@link sendTransaction} with a {@link\n * VersionedTransaction}\n */\n\n /**\n * Send a signed transaction\n */\n // eslint-disable-next-line no-dupe-class-members\n\n /**\n * Sign and send a transaction\n */\n // eslint-disable-next-line no-dupe-class-members\n\n }, {\n key: \"sendTransaction\",\n value: function () {\n var _sendTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee92(transaction, signersOrOptions, options) {\n var _wireTransaction2, signers, disableCache, latestBlockhash, _signature4, wireTransaction;\n\n return _regeneratorRuntime().wrap(function _callee92$(_context92) {\n while (1) {\n switch (_context92.prev = _context92.next) {\n case 0:\n if (!('version' in transaction)) {\n _context92.next = 7;\n break;\n }\n\n if (!(signersOrOptions && Array.isArray(signersOrOptions))) {\n _context92.next = 3;\n break;\n }\n\n throw new Error('Invalid arguments');\n\n case 3:\n _wireTransaction2 = transaction.serialize();\n _context92.next = 6;\n return this.sendRawTransaction(_wireTransaction2, signersOrOptions);\n\n case 6:\n return _context92.abrupt(\"return\", _context92.sent);\n\n case 7:\n if (!(signersOrOptions === undefined || !Array.isArray(signersOrOptions))) {\n _context92.next = 9;\n break;\n }\n\n throw new Error('Invalid arguments');\n\n case 9:\n signers = signersOrOptions;\n\n if (!transaction.nonceInfo) {\n _context92.next = 14;\n break;\n }\n\n transaction.sign.apply(transaction, _toConsumableArray(signers));\n _context92.next = 32;\n break;\n\n case 14:\n disableCache = this._disableBlockhashCaching;\n\n case 15:\n _context92.next = 17;\n return this._blockhashWithExpiryBlockHeight(disableCache);\n\n case 17:\n latestBlockhash = _context92.sent;\n transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n transaction.recentBlockhash = latestBlockhash.blockhash;\n transaction.sign.apply(transaction, _toConsumableArray(signers));\n\n if (transaction.signature) {\n _context92.next = 23;\n break;\n }\n\n throw new Error('!signature');\n\n case 23:\n _signature4 = transaction.signature.toString('base64');\n\n if (this._blockhashInfo.transactionSignatures.includes(_signature4)) {\n _context92.next = 29;\n break;\n } // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n\n\n this._blockhashInfo.transactionSignatures.push(_signature4);\n\n return _context92.abrupt(\"break\", 32);\n\n case 29:\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n\n case 30:\n _context92.next = 15;\n break;\n\n case 32:\n wireTransaction = transaction.serialize();\n _context92.next = 35;\n return this.sendRawTransaction(wireTransaction, options);\n\n case 35:\n return _context92.abrupt(\"return\", _context92.sent);\n\n case 36:\n case \"end\":\n return _context92.stop();\n }\n }\n }, _callee92, this);\n }));\n\n function sendTransaction(_x146, _x147, _x148) {\n return _sendTransaction.apply(this, arguments);\n }\n\n return sendTransaction;\n }()\n /**\n * Send a transaction that has already been signed and serialized into the\n * wire format\n */\n\n }, {\n key: \"sendRawTransaction\",\n value: function () {\n var _sendRawTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee93(rawTransaction, options) {\n var encodedTransaction, result;\n return _regeneratorRuntime().wrap(function _callee93$(_context93) {\n while (1) {\n switch (_context93.prev = _context93.next) {\n case 0:\n encodedTransaction = toBuffer(rawTransaction).toString('base64');\n _context93.next = 3;\n return this.sendEncodedTransaction(encodedTransaction, options);\n\n case 3:\n result = _context93.sent;\n return _context93.abrupt(\"return\", result);\n\n case 5:\n case \"end\":\n return _context93.stop();\n }\n }\n }, _callee93, this);\n }));\n\n function sendRawTransaction(_x149, _x150) {\n return _sendRawTransaction.apply(this, arguments);\n }\n\n return sendRawTransaction;\n }()\n /**\n * Send a transaction that has already been signed, serialized into the\n * wire format, and encoded as a base64 string\n */\n\n }, {\n key: \"sendEncodedTransaction\",\n value: function () {\n var _sendEncodedTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee94(encodedTransaction, options) {\n var config, skipPreflight, preflightCommitment, args, unsafeRes, res, logs;\n return _regeneratorRuntime().wrap(function _callee94$(_context94) {\n while (1) {\n switch (_context94.prev = _context94.next) {\n case 0:\n config = {\n encoding: 'base64'\n };\n skipPreflight = options && options.skipPreflight;\n preflightCommitment = options && options.preflightCommitment || this.commitment;\n\n if (options && options.maxRetries != null) {\n config.maxRetries = options.maxRetries;\n }\n\n if (options && options.minContextSlot != null) {\n config.minContextSlot = options.minContextSlot;\n }\n\n if (skipPreflight) {\n config.skipPreflight = skipPreflight;\n }\n\n if (preflightCommitment) {\n config.preflightCommitment = preflightCommitment;\n }\n\n args = [encodedTransaction, config];\n _context94.next = 10;\n return this._rpcRequest('sendTransaction', args);\n\n case 10:\n unsafeRes = _context94.sent;\n res = _create(unsafeRes, SendTransactionRpcResult);\n\n if (!('error' in res)) {\n _context94.next = 15;\n break;\n }\n\n if ('data' in res.error) {\n logs = res.error.data.logs;\n }\n\n throw new SendTransactionError('failed to send transaction: ' + res.error.message, logs);\n\n case 15:\n return _context94.abrupt(\"return\", res.result);\n\n case 16:\n case \"end\":\n return _context94.stop();\n }\n }\n }, _callee94, this);\n }));\n\n function sendEncodedTransaction(_x151, _x152) {\n return _sendEncodedTransaction.apply(this, arguments);\n }\n\n return sendEncodedTransaction;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnOpen\",\n value: function _wsOnOpen() {\n var _this23 = this;\n\n this._rpcWebSocketConnected = true;\n this._rpcWebSocketHeartbeat = setInterval(function () {\n // Ping server every 5s to prevent idle timeouts\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee95() {\n return _regeneratorRuntime().wrap(function _callee95$(_context95) {\n while (1) {\n switch (_context95.prev = _context95.next) {\n case 0:\n _context95.prev = 0;\n _context95.next = 3;\n return _this23._rpcWebSocket.notify('ping');\n\n case 3:\n _context95.next = 7;\n break;\n\n case 5:\n _context95.prev = 5;\n _context95.t0 = _context95[\"catch\"](0);\n\n case 7:\n case \"end\":\n return _context95.stop();\n }\n }\n }, _callee95, null, [[0, 5]]);\n }))();\n }, 5000);\n\n this._updateSubscriptions();\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnError\",\n value: function _wsOnError(err) {\n this._rpcWebSocketConnected = false;\n console.error('ws error:', err.message);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnClose\",\n value: function _wsOnClose(code) {\n var _this24 = this;\n\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketGeneration = (this._rpcWebSocketGeneration + 1) % Number.MAX_SAFE_INTEGER;\n\n if (this._rpcWebSocketIdleTimeout) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n }\n\n if (this._rpcWebSocketHeartbeat) {\n clearInterval(this._rpcWebSocketHeartbeat);\n this._rpcWebSocketHeartbeat = null;\n }\n\n if (code === 1000) {\n // explicit close, check if any subscriptions have been made since close\n this._updateSubscriptions();\n\n return;\n } // implicit close, prepare subscriptions for auto-reconnect\n\n\n this._subscriptionCallbacksByServerSubscriptionId = {};\n Object.entries(this._subscriptionsByHash).forEach(function (_ref40) {\n var _ref41 = _slicedToArray(_ref40, 2),\n hash = _ref41[0],\n subscription = _ref41[1];\n\n _this24._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'pending'\n }));\n });\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_setSubscription\",\n value: function _setSubscription(hash, nextSubscription) {\n var _this$_subscriptionsB;\n\n var prevState = (_this$_subscriptionsB = this._subscriptionsByHash[hash]) === null || _this$_subscriptionsB === void 0 ? void 0 : _this$_subscriptionsB.state;\n this._subscriptionsByHash[hash] = nextSubscription;\n\n if (prevState !== nextSubscription.state) {\n var stateChangeCallbacks = this._subscriptionStateChangeCallbacksByHash[hash];\n\n if (stateChangeCallbacks) {\n stateChangeCallbacks.forEach(function (cb) {\n try {\n cb(nextSubscription.state); // eslint-disable-next-line no-empty\n } catch (_unused4) {}\n });\n }\n }\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_onSubscriptionStateChange\",\n value: function _onSubscriptionStateChange(clientSubscriptionId, callback) {\n var _this$_subscriptionSt,\n _this25 = this;\n\n var hash = this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n\n if (hash == null) {\n return function () {};\n }\n\n var stateChangeCallbacks = (_this$_subscriptionSt = this._subscriptionStateChangeCallbacksByHash)[hash] || (_this$_subscriptionSt[hash] = new Set());\n stateChangeCallbacks.add(callback);\n return function () {\n stateChangeCallbacks[\"delete\"](callback);\n\n if (stateChangeCallbacks.size === 0) {\n delete _this25._subscriptionStateChangeCallbacksByHash[hash];\n }\n };\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_updateSubscriptions\",\n value: function () {\n var _updateSubscriptions2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee99() {\n var _this26 = this;\n\n var activeWebSocketGeneration, isCurrentConnectionStillActive;\n return _regeneratorRuntime().wrap(function _callee99$(_context99) {\n while (1) {\n switch (_context99.prev = _context99.next) {\n case 0:\n if (!(Object.keys(this._subscriptionsByHash).length === 0)) {\n _context99.next = 3;\n break;\n }\n\n if (this._rpcWebSocketConnected) {\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketIdleTimeout = setTimeout(function () {\n _this26._rpcWebSocketIdleTimeout = null;\n\n try {\n _this26._rpcWebSocket.close();\n } catch (err) {\n // swallow error if socket has already been closed.\n if (err instanceof Error) {\n console.log(\"Error when closing socket connection: \".concat(err.message));\n }\n }\n }, 500);\n }\n\n return _context99.abrupt(\"return\");\n\n case 3:\n if (this._rpcWebSocketIdleTimeout !== null) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n this._rpcWebSocketConnected = true;\n }\n\n if (this._rpcWebSocketConnected) {\n _context99.next = 7;\n break;\n }\n\n this._rpcWebSocket.connect();\n\n return _context99.abrupt(\"return\");\n\n case 7:\n activeWebSocketGeneration = this._rpcWebSocketGeneration;\n\n isCurrentConnectionStillActive = function isCurrentConnectionStillActive() {\n return activeWebSocketGeneration === _this26._rpcWebSocketGeneration;\n };\n\n _context99.next = 11;\n return Promise.all( // Don't be tempted to change this to `Object.entries`. We call\n // `_updateSubscriptions` recursively when processing the state,\n // so it's important that we look up the *current* version of\n // each subscription, every time we process a hash.\n Object.keys(this._subscriptionsByHash).map( /*#__PURE__*/function () {\n var _ref42 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee98(hash) {\n var subscription;\n return _regeneratorRuntime().wrap(function _callee98$(_context98) {\n while (1) {\n switch (_context98.prev = _context98.next) {\n case 0:\n subscription = _this26._subscriptionsByHash[hash];\n\n if (!(subscription === undefined)) {\n _context98.next = 3;\n break;\n }\n\n return _context98.abrupt(\"return\");\n\n case 3:\n _context98.t0 = subscription.state;\n _context98.next = _context98.t0 === 'pending' ? 6 : _context98.t0 === 'unsubscribed' ? 6 : _context98.t0 === 'subscribed' ? 15 : 19;\n break;\n\n case 6:\n if (!(subscription.callbacks.size === 0)) {\n _context98.next = 12;\n break;\n }\n /**\n * You can end up here when:\n *\n * - a subscription has recently unsubscribed\n * without having new callbacks added to it\n * while the unsubscribe was in flight, or\n * - when a pending subscription has its\n * listeners removed before a request was\n * sent to the server.\n *\n * Being that nobody is interested in this\n * subscription any longer, delete it.\n */\n\n\n delete _this26._subscriptionsByHash[hash];\n\n if (subscription.state === 'unsubscribed') {\n delete _this26._subscriptionCallbacksByServerSubscriptionId[subscription.serverSubscriptionId];\n }\n\n _context98.next = 11;\n return _this26._updateSubscriptions();\n\n case 11:\n return _context98.abrupt(\"return\");\n\n case 12:\n _context98.next = 14;\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee96() {\n var args, method, serverSubscriptionId;\n return _regeneratorRuntime().wrap(function _callee96$(_context96) {\n while (1) {\n switch (_context96.prev = _context96.next) {\n case 0:\n args = subscription.args, method = subscription.method;\n _context96.prev = 1;\n\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'subscribing'\n }));\n\n _context96.next = 5;\n return _this26._rpcWebSocket.call(method, args);\n\n case 5:\n serverSubscriptionId = _context96.sent;\n\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n serverSubscriptionId: serverSubscriptionId,\n state: 'subscribed'\n }));\n\n _this26._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId] = subscription.callbacks;\n _context96.next = 10;\n return _this26._updateSubscriptions();\n\n case 10:\n _context96.next = 20;\n break;\n\n case 12:\n _context96.prev = 12;\n _context96.t0 = _context96[\"catch\"](1);\n\n if (_context96.t0 instanceof Error) {\n console.error(\"\".concat(method, \" error for argument\"), args, _context96.t0.message);\n }\n\n if (isCurrentConnectionStillActive()) {\n _context96.next = 17;\n break;\n }\n\n return _context96.abrupt(\"return\");\n\n case 17:\n // TODO: Maybe add an 'errored' state or a retry limit?\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'pending'\n }));\n\n _context96.next = 20;\n return _this26._updateSubscriptions();\n\n case 20:\n case \"end\":\n return _context96.stop();\n }\n }\n }, _callee96, null, [[1, 12]]);\n }))();\n\n case 14:\n return _context98.abrupt(\"break\", 19);\n\n case 15:\n if (!(subscription.callbacks.size === 0)) {\n _context98.next = 18;\n break;\n }\n\n _context98.next = 18;\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee97() {\n var serverSubscriptionId, unsubscribeMethod;\n return _regeneratorRuntime().wrap(function _callee97$(_context97) {\n while (1) {\n switch (_context97.prev = _context97.next) {\n case 0:\n serverSubscriptionId = subscription.serverSubscriptionId, unsubscribeMethod = subscription.unsubscribeMethod;\n\n if (!_this26._subscriptionsAutoDisposedByRpc.has(serverSubscriptionId)) {\n _context97.next = 5;\n break;\n }\n /**\n * Special case.\n * If we're dealing with a subscription that has been auto-\n * disposed by the RPC, then we can skip the RPC call to\n * tear down the subscription here.\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n\n\n _this26._subscriptionsAutoDisposedByRpc[\"delete\"](serverSubscriptionId);\n\n _context97.next = 21;\n break;\n\n case 5:\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'unsubscribing'\n }));\n\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'unsubscribing'\n }));\n\n _context97.prev = 7;\n _context97.next = 10;\n return _this26._rpcWebSocket.call(unsubscribeMethod, [serverSubscriptionId]);\n\n case 10:\n _context97.next = 21;\n break;\n\n case 12:\n _context97.prev = 12;\n _context97.t0 = _context97[\"catch\"](7);\n\n if (_context97.t0 instanceof Error) {\n console.error(\"\".concat(unsubscribeMethod, \" error:\"), _context97.t0.message);\n }\n\n if (isCurrentConnectionStillActive()) {\n _context97.next = 17;\n break;\n }\n\n return _context97.abrupt(\"return\");\n\n case 17:\n // TODO: Maybe add an 'errored' state or a retry limit?\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'subscribed'\n }));\n\n _context97.next = 20;\n return _this26._updateSubscriptions();\n\n case 20:\n return _context97.abrupt(\"return\");\n\n case 21:\n _this26._setSubscription(hash, _objectSpread2(_objectSpread2({}, subscription), {}, {\n state: 'unsubscribed'\n }));\n\n _context97.next = 24;\n return _this26._updateSubscriptions();\n\n case 24:\n case \"end\":\n return _context97.stop();\n }\n }\n }, _callee97, null, [[7, 12]]);\n }))();\n\n case 18:\n return _context98.abrupt(\"break\", 19);\n\n case 19:\n case \"end\":\n return _context98.stop();\n }\n }\n }, _callee98);\n }));\n\n return function (_x153) {\n return _ref42.apply(this, arguments);\n };\n }()));\n\n case 11:\n case \"end\":\n return _context99.stop();\n }\n }\n }, _callee99, this);\n }));\n\n function _updateSubscriptions() {\n return _updateSubscriptions2.apply(this, arguments);\n }\n\n return _updateSubscriptions;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_handleServerNotification\",\n value: function _handleServerNotification(serverSubscriptionId, callbackArgs) {\n var callbacks = this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId];\n\n if (callbacks === undefined) {\n return;\n }\n\n callbacks.forEach(function (cb) {\n try {\n cb.apply(void 0, _toConsumableArray(callbackArgs));\n } catch (e) {\n console.error(e);\n }\n });\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnAccountNotification\",\n value: function _wsOnAccountNotification(notification) {\n var _create$1 = _create(notification, AccountNotificationResult),\n result = _create$1.result,\n subscription = _create$1.subscription;\n\n this._handleServerNotification(subscription, [result.value, result.context]);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_makeSubscription\",\n value: function _makeSubscription(subscriptionConfig,\n /**\n * When preparing `args` for a call to `_makeSubscription`, be sure\n * to carefully apply a default `commitment` property, if necessary.\n *\n * - If the user supplied a `commitment` use that.\n * - Otherwise, if the `Connection::commitment` is set, use that.\n * - Otherwise, set it to the RPC server default: `finalized`.\n *\n * This is extremely important to ensure that these two fundamentally\n * identical subscriptions produce the same identifying hash:\n *\n * - A subscription made without specifying a commitment.\n * - A subscription made where the commitment specified is the same\n * as the default applied to the subscription above.\n *\n * Example; these two subscriptions must produce the same hash:\n *\n * - An `accountSubscribe` subscription for `'PUBKEY'`\n * - An `accountSubscribe` subscription for `'PUBKEY'` with commitment\n * `'finalized'`.\n *\n * See the 'making a subscription with defaulted params omitted' test\n * in `connection-subscriptions.ts` for more.\n */\n args) {\n var _this27 = this;\n\n var clientSubscriptionId = this._nextClientSubscriptionId++;\n var hash = fastStableStringify$1([subscriptionConfig.method, args], true\n /* isArrayProp */\n );\n var existingSubscription = this._subscriptionsByHash[hash];\n\n if (existingSubscription === undefined) {\n this._subscriptionsByHash[hash] = _objectSpread2(_objectSpread2({}, subscriptionConfig), {}, {\n args: args,\n callbacks: new Set([subscriptionConfig.callback]),\n state: 'pending'\n });\n } else {\n existingSubscription.callbacks.add(subscriptionConfig.callback);\n }\n\n this._subscriptionHashByClientSubscriptionId[clientSubscriptionId] = hash;\n this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId] = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee100() {\n var subscription;\n return _regeneratorRuntime().wrap(function _callee100$(_context100) {\n while (1) {\n switch (_context100.prev = _context100.next) {\n case 0:\n delete _this27._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId];\n delete _this27._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n subscription = _this27._subscriptionsByHash[hash];\n assert(subscription !== undefined, \"Could not find a `Subscription` when tearing down client subscription #\".concat(clientSubscriptionId));\n subscription.callbacks[\"delete\"](subscriptionConfig.callback);\n _context100.next = 7;\n return _this27._updateSubscriptions();\n\n case 7:\n case \"end\":\n return _context100.stop();\n }\n }\n }, _callee100);\n }));\n\n this._updateSubscriptions();\n\n return clientSubscriptionId;\n }\n /**\n * Register a callback to be invoked whenever the specified account changes\n *\n * @param publicKey Public key of the account to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @return subscription id\n */\n\n }, {\n key: \"onAccountChange\",\n value: function onAccountChange(publicKey, callback, commitment) {\n var args = this._buildArgs([publicKey.toBase58()], commitment || this._commitment || 'finalized', // Apply connection/server default.\n 'base64');\n\n return this._makeSubscription({\n callback: callback,\n method: 'accountSubscribe',\n unsubscribeMethod: 'accountUnsubscribe'\n }, args);\n }\n /**\n * Deregister an account notification callback\n *\n * @param id client subscription id to deregister\n */\n\n }, {\n key: \"removeAccountChangeListener\",\n value: function () {\n var _removeAccountChangeListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee101(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee101$(_context101) {\n while (1) {\n switch (_context101.prev = _context101.next) {\n case 0:\n _context101.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'account change');\n\n case 2:\n case \"end\":\n return _context101.stop();\n }\n }\n }, _callee101, this);\n }));\n\n function removeAccountChangeListener(_x154) {\n return _removeAccountChangeListener.apply(this, arguments);\n }\n\n return removeAccountChangeListener;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnProgramAccountNotification\",\n value: function _wsOnProgramAccountNotification(notification) {\n var _create2 = _create(notification, ProgramAccountNotificationResult),\n result = _create2.result,\n subscription = _create2.subscription;\n\n this._handleServerNotification(subscription, [{\n accountId: result.value.pubkey,\n accountInfo: result.value.account\n }, result.context]);\n }\n /**\n * Register a callback to be invoked whenever accounts owned by the\n * specified program change\n *\n * @param programId Public key of the program to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @param filters The program account filters to pass into the RPC method\n * @return subscription id\n */\n\n }, {\n key: \"onProgramAccountChange\",\n value: function onProgramAccountChange(programId, callback, commitment, filters) {\n var args = this._buildArgs([programId.toBase58()], commitment || this._commitment || 'finalized', // Apply connection/server default.\n 'base64'\n /* encoding */\n , filters ? {\n filters: filters\n } : undefined\n /* extra */\n );\n\n return this._makeSubscription({\n callback: callback,\n method: 'programSubscribe',\n unsubscribeMethod: 'programUnsubscribe'\n }, args);\n }\n /**\n * Deregister an account notification callback\n *\n * @param id client subscription id to deregister\n */\n\n }, {\n key: \"removeProgramAccountChangeListener\",\n value: function () {\n var _removeProgramAccountChangeListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee102(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee102$(_context102) {\n while (1) {\n switch (_context102.prev = _context102.next) {\n case 0:\n _context102.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'program account change');\n\n case 2:\n case \"end\":\n return _context102.stop();\n }\n }\n }, _callee102, this);\n }));\n\n function removeProgramAccountChangeListener(_x155) {\n return _removeProgramAccountChangeListener.apply(this, arguments);\n }\n\n return removeProgramAccountChangeListener;\n }()\n /**\n * Registers a callback to be invoked whenever logs are emitted.\n */\n\n }, {\n key: \"onLogs\",\n value: function onLogs(filter, callback, commitment) {\n var args = this._buildArgs([_typeof$1(filter) === 'object' ? {\n mentions: [filter.toString()]\n } : filter], commitment || this._commitment || 'finalized' // Apply connection/server default.\n );\n\n return this._makeSubscription({\n callback: callback,\n method: 'logsSubscribe',\n unsubscribeMethod: 'logsUnsubscribe'\n }, args);\n }\n /**\n * Deregister a logs callback.\n *\n * @param id client subscription id to deregister.\n */\n\n }, {\n key: \"removeOnLogsListener\",\n value: function () {\n var _removeOnLogsListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee103(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee103$(_context103) {\n while (1) {\n switch (_context103.prev = _context103.next) {\n case 0:\n _context103.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'logs');\n\n case 2:\n case \"end\":\n return _context103.stop();\n }\n }\n }, _callee103, this);\n }));\n\n function removeOnLogsListener(_x156) {\n return _removeOnLogsListener.apply(this, arguments);\n }\n\n return removeOnLogsListener;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnLogsNotification\",\n value: function _wsOnLogsNotification(notification) {\n var _create3 = _create(notification, LogsNotificationResult),\n result = _create3.result,\n subscription = _create3.subscription;\n\n this._handleServerNotification(subscription, [result.value, result.context]);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnSlotNotification\",\n value: function _wsOnSlotNotification(notification) {\n var _create4 = _create(notification, SlotNotificationResult),\n result = _create4.result,\n subscription = _create4.subscription;\n\n this._handleServerNotification(subscription, [result]);\n }\n /**\n * Register a callback to be invoked upon slot changes\n *\n * @param callback Function to invoke whenever the slot changes\n * @return subscription id\n */\n\n }, {\n key: \"onSlotChange\",\n value: function onSlotChange(callback) {\n return this._makeSubscription({\n callback: callback,\n method: 'slotSubscribe',\n unsubscribeMethod: 'slotUnsubscribe'\n }, []\n /* args */\n );\n }\n /**\n * Deregister a slot notification callback\n *\n * @param id client subscription id to deregister\n */\n\n }, {\n key: \"removeSlotChangeListener\",\n value: function () {\n var _removeSlotChangeListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee104(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee104$(_context104) {\n while (1) {\n switch (_context104.prev = _context104.next) {\n case 0:\n _context104.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'slot change');\n\n case 2:\n case \"end\":\n return _context104.stop();\n }\n }\n }, _callee104, this);\n }));\n\n function removeSlotChangeListener(_x157) {\n return _removeSlotChangeListener.apply(this, arguments);\n }\n\n return removeSlotChangeListener;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnSlotUpdatesNotification\",\n value: function _wsOnSlotUpdatesNotification(notification) {\n var _create5 = _create(notification, SlotUpdateNotificationResult),\n result = _create5.result,\n subscription = _create5.subscription;\n\n this._handleServerNotification(subscription, [result]);\n }\n /**\n * Register a callback to be invoked upon slot updates. {@link SlotUpdate}'s\n * may be useful to track live progress of a cluster.\n *\n * @param callback Function to invoke whenever the slot updates\n * @return subscription id\n */\n\n }, {\n key: \"onSlotUpdate\",\n value: function onSlotUpdate(callback) {\n return this._makeSubscription({\n callback: callback,\n method: 'slotsUpdatesSubscribe',\n unsubscribeMethod: 'slotsUpdatesUnsubscribe'\n }, []\n /* args */\n );\n }\n /**\n * Deregister a slot update notification callback\n *\n * @param id client subscription id to deregister\n */\n\n }, {\n key: \"removeSlotUpdateListener\",\n value: function () {\n var _removeSlotUpdateListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee105(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee105$(_context105) {\n while (1) {\n switch (_context105.prev = _context105.next) {\n case 0:\n _context105.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'slot update');\n\n case 2:\n case \"end\":\n return _context105.stop();\n }\n }\n }, _callee105, this);\n }));\n\n function removeSlotUpdateListener(_x158) {\n return _removeSlotUpdateListener.apply(this, arguments);\n }\n\n return removeSlotUpdateListener;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_unsubscribeClientSubscription\",\n value: function () {\n var _unsubscribeClientSubscription2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee106(clientSubscriptionId, subscriptionName) {\n var dispose;\n return _regeneratorRuntime().wrap(function _callee106$(_context106) {\n while (1) {\n switch (_context106.prev = _context106.next) {\n case 0:\n dispose = this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId];\n\n if (!dispose) {\n _context106.next = 6;\n break;\n }\n\n _context106.next = 4;\n return dispose();\n\n case 4:\n _context106.next = 7;\n break;\n\n case 6:\n console.warn('Ignored unsubscribe request because an active subscription with id ' + \"`\".concat(clientSubscriptionId, \"` for '\").concat(subscriptionName, \"' events \") + 'could not be found.');\n\n case 7:\n case \"end\":\n return _context106.stop();\n }\n }\n }, _callee106, this);\n }));\n\n function _unsubscribeClientSubscription(_x159, _x160) {\n return _unsubscribeClientSubscription2.apply(this, arguments);\n }\n\n return _unsubscribeClientSubscription;\n }()\n }, {\n key: \"_buildArgs\",\n value: function _buildArgs(args, override, encoding, extra) {\n var commitment = override || this._commitment;\n\n if (commitment || encoding || extra) {\n var options = {};\n\n if (encoding) {\n options.encoding = encoding;\n }\n\n if (commitment) {\n options.commitment = commitment;\n }\n\n if (extra) {\n options = Object.assign(options, extra);\n }\n\n args.push(options);\n }\n\n return args;\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_buildArgsAtLeastConfirmed\",\n value: function _buildArgsAtLeastConfirmed(args, override, encoding, extra) {\n var commitment = override || this._commitment;\n\n if (commitment && !['confirmed', 'finalized'].includes(commitment)) {\n throw new Error('Using Connection with default commitment: `' + this._commitment + '`, but method requires at least `confirmed`');\n }\n\n return this._buildArgs(args, override, encoding, extra);\n }\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnSignatureNotification\",\n value: function _wsOnSignatureNotification(notification) {\n var _create6 = _create(notification, SignatureNotificationResult),\n result = _create6.result,\n subscription = _create6.subscription;\n\n if (result.value !== 'receivedSignature') {\n /**\n * Special case.\n * After a signature is processed, RPCs automatically dispose of the\n * subscription on the server side. We need to track which of these\n * subscriptions have been disposed in such a way, so that we know\n * whether the client is dealing with a not-yet-processed signature\n * (in which case we must tear down the server subscription) or an\n * already-processed signature (in which case the client can simply\n * clear out the subscription locally without telling the server).\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n this._subscriptionsAutoDisposedByRpc.add(subscription);\n }\n\n this._handleServerNotification(subscription, result.value === 'receivedSignature' ? [{\n type: 'received'\n }, result.context] : [{\n type: 'status',\n result: result.value\n }, result.context]);\n }\n /**\n * Register a callback to be invoked upon signature updates\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param commitment Specify the commitment level signature must reach before notification\n * @return subscription id\n */\n\n }, {\n key: \"onSignature\",\n value: function onSignature(signature, _callback, commitment) {\n var _this28 = this;\n\n var args = this._buildArgs([signature], commitment || this._commitment || 'finalized' // Apply connection/server default.\n );\n\n var clientSubscriptionId = this._makeSubscription({\n callback: function callback(notification, context) {\n if (notification.type === 'status') {\n _callback(notification.result, context); // Signatures subscriptions are auto-removed by the RPC service\n // so no need to explicitly send an unsubscribe message.\n\n\n try {\n _this28.removeSignatureListener(clientSubscriptionId); // eslint-disable-next-line no-empty\n\n } catch (_err) {// Already removed.\n }\n }\n },\n method: 'signatureSubscribe',\n unsubscribeMethod: 'signatureUnsubscribe'\n }, args);\n\n return clientSubscriptionId;\n }\n /**\n * Register a callback to be invoked when a transaction is\n * received and/or processed.\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param options Enable received notifications and set the commitment\n * level that signature must reach before notification\n * @return subscription id\n */\n\n }, {\n key: \"onSignatureWithOptions\",\n value: function onSignatureWithOptions(signature, _callback2, options) {\n var _this29 = this;\n\n var _options$commitment = _objectSpread2(_objectSpread2({}, options), {}, {\n commitment: options && options.commitment || this._commitment || 'finalized' // Apply connection/server default.\n\n }),\n commitment = _options$commitment.commitment,\n extra = _objectWithoutProperties(_options$commitment, _excluded4);\n\n var args = this._buildArgs([signature], commitment, undefined\n /* encoding */\n , extra);\n\n var clientSubscriptionId = this._makeSubscription({\n callback: function callback(notification, context) {\n _callback2(notification, context); // Signatures subscriptions are auto-removed by the RPC service\n // so no need to explicitly send an unsubscribe message.\n\n\n try {\n _this29.removeSignatureListener(clientSubscriptionId); // eslint-disable-next-line no-empty\n\n } catch (_err) {// Already removed.\n }\n },\n method: 'signatureSubscribe',\n unsubscribeMethod: 'signatureUnsubscribe'\n }, args);\n\n return clientSubscriptionId;\n }\n /**\n * Deregister a signature notification callback\n *\n * @param id client subscription id to deregister\n */\n\n }, {\n key: \"removeSignatureListener\",\n value: function () {\n var _removeSignatureListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee107(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee107$(_context107) {\n while (1) {\n switch (_context107.prev = _context107.next) {\n case 0:\n _context107.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'signature result');\n\n case 2:\n case \"end\":\n return _context107.stop();\n }\n }\n }, _callee107, this);\n }));\n\n function removeSignatureListener(_x161) {\n return _removeSignatureListener.apply(this, arguments);\n }\n\n return removeSignatureListener;\n }()\n /**\n * @internal\n */\n\n }, {\n key: \"_wsOnRootNotification\",\n value: function _wsOnRootNotification(notification) {\n var _create7 = _create(notification, RootNotificationResult),\n result = _create7.result,\n subscription = _create7.subscription;\n\n this._handleServerNotification(subscription, [result]);\n }\n /**\n * Register a callback to be invoked upon root changes\n *\n * @param callback Function to invoke whenever the root changes\n * @return subscription id\n */\n\n }, {\n key: \"onRootChange\",\n value: function onRootChange(callback) {\n return this._makeSubscription({\n callback: callback,\n method: 'rootSubscribe',\n unsubscribeMethod: 'rootUnsubscribe'\n }, []\n /* args */\n );\n }\n /**\n * Deregister a root notification callback\n *\n * @param id client subscription id to deregister\n */\n\n }, {\n key: \"removeRootChangeListener\",\n value: function () {\n var _removeRootChangeListener = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee108(clientSubscriptionId) {\n return _regeneratorRuntime().wrap(function _callee108$(_context108) {\n while (1) {\n switch (_context108.prev = _context108.next) {\n case 0:\n _context108.next = 2;\n return this._unsubscribeClientSubscription(clientSubscriptionId, 'root change');\n\n case 2:\n case \"end\":\n return _context108.stop();\n }\n }\n }, _callee108, this);\n }));\n\n function removeRootChangeListener(_x162) {\n return _removeRootChangeListener.apply(this, arguments);\n }\n\n return removeRootChangeListener;\n }()\n }]);\n\n return Connection;\n}();\n/**\n * Keypair signer interface\n */\n\n/**\n * An account keypair used for signing transactions.\n */\n\n\nvar Keypair = /*#__PURE__*/function () {\n /**\n * Create a new keypair instance.\n * Generate random keypair if no {@link Ed25519Keypair} is provided.\n *\n * @param {Ed25519Keypair} keypair ed25519 keypair\n */\n function Keypair(keypair) {\n _classCallCheck(this, Keypair);\n\n this._keypair = void 0;\n this._keypair = keypair !== null && keypair !== void 0 ? keypair : generateKeypair();\n }\n /**\n * Generate a new random keypair\n *\n * @returns {Keypair} Keypair\n */\n\n\n _createClass(Keypair, [{\n key: \"publicKey\",\n get:\n /**\n * The public key for this keypair\n *\n * @returns {PublicKey} PublicKey\n */\n function get() {\n return new PublicKey(this._keypair.publicKey);\n }\n /**\n * The raw secret key for this keypair\n * @returns {Uint8Array} Secret key in an array of Uint8 bytes\n */\n\n }, {\n key: \"secretKey\",\n get: function get() {\n return new Uint8Array(this._keypair.secretKey);\n }\n }], [{\n key: \"generate\",\n value: function generate() {\n return new Keypair(generateKeypair());\n }\n /**\n * Create a keypair from a raw secret key byte array.\n *\n * This method should only be used to recreate a keypair from a previously\n * generated secret key. Generating keypairs from a random seed should be done\n * with the {@link Keypair.fromSeed} method.\n *\n * @throws error if the provided secret key is invalid and validation is not skipped.\n *\n * @param secretKey secret key byte array\n * @param options skip secret key validation\n *\n * @returns {Keypair} Keypair\n */\n\n }, {\n key: \"fromSecretKey\",\n value: function fromSecretKey(secretKey, options) {\n if (secretKey.byteLength !== 64) {\n throw new Error('bad secret key size');\n }\n\n var publicKey = secretKey.slice(32, 64);\n\n if (!options || !options.skipValidation) {\n var privateScalar = secretKey.slice(0, 32);\n var computedPublicKey = getPublicKey(privateScalar);\n\n for (var ii = 0; ii < 32; ii++) {\n if (publicKey[ii] !== computedPublicKey[ii]) {\n throw new Error('provided secretKey is invalid');\n }\n }\n }\n\n return new Keypair({\n publicKey: publicKey,\n secretKey: secretKey\n });\n }\n /**\n * Generate a keypair from a 32 byte seed.\n *\n * @param seed seed byte array\n *\n * @returns {Keypair} Keypair\n */\n\n }, {\n key: \"fromSeed\",\n value: function fromSeed(seed) {\n var publicKey = getPublicKey(seed);\n var secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n return new Keypair({\n publicKey: publicKey,\n secretKey: secretKey\n });\n }\n }]);\n\n return Keypair;\n}();\n/**\n * An enumeration of valid LookupTableInstructionType's\n */\n\n/**\n * An enumeration of valid address lookup table InstructionType's\n * @internal\n */\n\n\nvar LOOKUP_TABLE_INSTRUCTION_LAYOUTS = Object.freeze({\n CreateLookupTable: {\n index: 0,\n layout: struct([u32('instruction'), u64('recentSlot'), u8('bumpSeed')])\n },\n FreezeLookupTable: {\n index: 1,\n layout: struct([u32('instruction')])\n },\n ExtendLookupTable: {\n index: 2,\n layout: struct([u32('instruction'), u64(), seq$1(publicKey(), offset$1(u32(), -8), 'addresses')])\n },\n DeactivateLookupTable: {\n index: 3,\n layout: struct([u32('instruction')])\n },\n CloseLookupTable: {\n index: 4,\n layout: struct([u32('instruction')])\n }\n});\n\nvar AddressLookupTableInstruction = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function AddressLookupTableInstruction() {\n _classCallCheck(this, AddressLookupTableInstruction);\n }\n\n _createClass(AddressLookupTableInstruction, null, [{\n key: \"decodeInstructionType\",\n value: function decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n var instructionTypeLayout = u32('instruction');\n var index = instructionTypeLayout.decode(instruction.data);\n var type;\n\n for (var _i10 = 0, _Object$entries2 = Object.entries(LOOKUP_TABLE_INSTRUCTION_LAYOUTS); _i10 < _Object$entries2.length; _i10++) {\n var _Object$entries2$_i2 = _slicedToArray(_Object$entries2[_i10], 2),\n layoutType = _Object$entries2$_i2[0],\n layout = _Object$entries2$_i2[1];\n\n if (layout.index == index) {\n type = layoutType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Invalid Instruction. Should be a LookupTable Instruction');\n }\n\n return type;\n }\n }, {\n key: \"decodeCreateLookupTable\",\n value: function decodeCreateLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 4);\n\n var _decodeData$12 = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable, instruction.data),\n recentSlot = _decodeData$12.recentSlot;\n\n return {\n authority: instruction.keys[1].pubkey,\n payer: instruction.keys[2].pubkey,\n recentSlot: Number(recentSlot)\n };\n }\n }, {\n key: \"decodeExtendLookupTable\",\n value: function decodeExtendLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n\n if (instruction.keys.length < 2) {\n throw new Error(\"invalid instruction; found \".concat(instruction.keys.length, \" keys, expected at least 2\"));\n }\n\n var _decodeData$13 = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable, instruction.data),\n addresses = _decodeData$13.addresses;\n\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey,\n payer: instruction.keys.length > 2 ? instruction.keys[2].pubkey : undefined,\n addresses: addresses.map(function (buffer) {\n return new PublicKey(buffer);\n })\n };\n }\n }, {\n key: \"decodeCloseLookupTable\",\n value: function decodeCloseLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 3);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey,\n recipient: instruction.keys[2].pubkey\n };\n }\n }, {\n key: \"decodeFreezeLookupTable\",\n value: function decodeFreezeLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 2);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey\n };\n }\n }, {\n key: \"decodeDeactivateLookupTable\",\n value: function decodeDeactivateLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 2);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey\n };\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkProgramId\",\n value: function checkProgramId(programId) {\n if (!programId.equals(AddressLookupTableProgram.programId)) {\n throw new Error('invalid instruction; programId is not AddressLookupTable Program');\n }\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkKeysLength\",\n value: function checkKeysLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(\"invalid instruction; found \".concat(keys.length, \" keys, expected at least \").concat(expectedLength));\n }\n }\n }]);\n\n return AddressLookupTableInstruction;\n}();\n\nvar AddressLookupTableProgram = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function AddressLookupTableProgram() {\n _classCallCheck(this, AddressLookupTableProgram);\n }\n\n _createClass(AddressLookupTableProgram, null, [{\n key: \"createLookupTable\",\n value: function createLookupTable(params) {\n var _PublicKey$findProgra = PublicKey.findProgramAddressSync([params.authority.toBuffer(), toBufferLE_1(BigInt(params.recentSlot), 8)], this.programId),\n _PublicKey$findProgra2 = _slicedToArray(_PublicKey$findProgra, 2),\n lookupTableAddress = _PublicKey$findProgra2[0],\n bumpSeed = _PublicKey$findProgra2[1];\n\n var type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable;\n var data = encodeData(type, {\n recentSlot: BigInt(params.recentSlot),\n bumpSeed: bumpSeed\n });\n var keys = [{\n pubkey: lookupTableAddress,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.payer,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n }];\n return [new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n }), lookupTableAddress];\n }\n }, {\n key: \"freezeLookupTable\",\n value: function freezeLookupTable(params) {\n var type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.FreezeLookupTable;\n var data = encodeData(type);\n var keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n }, {\n key: \"extendLookupTable\",\n value: function extendLookupTable(params) {\n var type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable;\n var data = encodeData(type, {\n addresses: params.addresses.map(function (addr) {\n return addr.toBytes();\n })\n });\n var keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n\n if (params.payer) {\n keys.push({\n pubkey: params.payer,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n }, {\n key: \"deactivateLookupTable\",\n value: function deactivateLookupTable(params) {\n var type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.DeactivateLookupTable;\n var data = encodeData(type);\n var keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n }, {\n key: \"closeLookupTable\",\n value: function closeLookupTable(params) {\n var type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CloseLookupTable;\n var data = encodeData(type);\n var keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.recipient,\n isSigner: false,\n isWritable: true\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n }]);\n\n return AddressLookupTableProgram;\n}();\n\nAddressLookupTableProgram.programId = new PublicKey('AddressLookupTab1e1111111111111111111111111');\n/**\n * Compute Budget Instruction class\n */\n\nvar ComputeBudgetInstruction = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function ComputeBudgetInstruction() {\n _classCallCheck(this, ComputeBudgetInstruction);\n }\n /**\n * Decode a compute budget instruction and retrieve the instruction type.\n */\n\n\n _createClass(ComputeBudgetInstruction, null, [{\n key: \"decodeInstructionType\",\n value: function decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n var instructionTypeLayout = u8('instruction');\n var typeIndex = instructionTypeLayout.decode(instruction.data);\n var type;\n\n for (var _i11 = 0, _Object$entries3 = Object.entries(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS); _i11 < _Object$entries3.length; _i11++) {\n var _Object$entries3$_i2 = _slicedToArray(_Object$entries3[_i11], 2),\n ixType = _Object$entries3$_i2[0],\n layout = _Object$entries3$_i2[1];\n\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a ComputeBudgetInstruction');\n }\n\n return type;\n }\n /**\n * Decode request units compute budget instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeRequestUnits\",\n value: function decodeRequestUnits(instruction) {\n this.checkProgramId(instruction.programId);\n\n var _decodeData$14 = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits, instruction.data),\n units = _decodeData$14.units,\n additionalFee = _decodeData$14.additionalFee;\n\n return {\n units: units,\n additionalFee: additionalFee\n };\n }\n /**\n * Decode request heap frame compute budget instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeRequestHeapFrame\",\n value: function decodeRequestHeapFrame(instruction) {\n this.checkProgramId(instruction.programId);\n\n var _decodeData$15 = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame, instruction.data),\n bytes = _decodeData$15.bytes;\n\n return {\n bytes: bytes\n };\n }\n /**\n * Decode set compute unit limit compute budget instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeSetComputeUnitLimit\",\n value: function decodeSetComputeUnitLimit(instruction) {\n this.checkProgramId(instruction.programId);\n\n var _decodeData$16 = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit, instruction.data),\n units = _decodeData$16.units;\n\n return {\n units: units\n };\n }\n /**\n * Decode set compute unit price compute budget instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeSetComputeUnitPrice\",\n value: function decodeSetComputeUnitPrice(instruction) {\n this.checkProgramId(instruction.programId);\n\n var _decodeData$17 = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice, instruction.data),\n microLamports = _decodeData$17.microLamports;\n\n return {\n microLamports: microLamports\n };\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkProgramId\",\n value: function checkProgramId(programId) {\n if (!programId.equals(ComputeBudgetProgram.programId)) {\n throw new Error('invalid instruction; programId is not ComputeBudgetProgram');\n }\n }\n }]);\n\n return ComputeBudgetInstruction;\n}();\n/**\n * An enumeration of valid ComputeBudgetInstructionType's\n */\n\n/**\n * Request units instruction params\n */\n\n/**\n * Request heap frame instruction params\n */\n\n/**\n * Set compute unit limit instruction params\n */\n\n/**\n * Set compute unit price instruction params\n */\n\n/**\n * An enumeration of valid ComputeBudget InstructionType's\n * @internal\n */\n\n\nvar COMPUTE_BUDGET_INSTRUCTION_LAYOUTS = Object.freeze({\n RequestUnits: {\n index: 0,\n layout: struct([u8('instruction'), u32('units'), u32('additionalFee')])\n },\n RequestHeapFrame: {\n index: 1,\n layout: struct([u8('instruction'), u32('bytes')])\n },\n SetComputeUnitLimit: {\n index: 2,\n layout: struct([u8('instruction'), u32('units')])\n },\n SetComputeUnitPrice: {\n index: 3,\n layout: struct([u8('instruction'), u64('microLamports')])\n }\n});\n/**\n * Factory class for transaction instructions to interact with the Compute Budget program\n */\n\nvar ComputeBudgetProgram = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function ComputeBudgetProgram() {\n _classCallCheck(this, ComputeBudgetProgram);\n }\n /**\n * Public key that identifies the Compute Budget program\n */\n\n /**\n * @deprecated Instead, call {@link setComputeUnitLimit} and/or {@link setComputeUnitPrice}\n */\n\n\n _createClass(ComputeBudgetProgram, null, [{\n key: \"requestUnits\",\n value: function requestUnits(params) {\n var type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits;\n var data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data: data\n });\n }\n }, {\n key: \"requestHeapFrame\",\n value: function requestHeapFrame(params) {\n var type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame;\n var data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data: data\n });\n }\n }, {\n key: \"setComputeUnitLimit\",\n value: function setComputeUnitLimit(params) {\n var type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit;\n var data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data: data\n });\n }\n }, {\n key: \"setComputeUnitPrice\",\n value: function setComputeUnitPrice(params) {\n var type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice;\n var data = encodeData(type, {\n microLamports: BigInt(params.microLamports)\n });\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data: data\n });\n }\n }]);\n\n return ComputeBudgetProgram;\n}();\n\nComputeBudgetProgram.programId = new PublicKey('ComputeBudget111111111111111111111111111111');\nvar PRIVATE_KEY_BYTES$1 = 64;\nvar PUBLIC_KEY_BYTES$1 = 32;\nvar SIGNATURE_BYTES = 64;\n/**\n * Params for creating an ed25519 instruction using a public key\n */\n\n/**\n * Params for creating an ed25519 instruction using a private key\n */\n\nvar ED25519_INSTRUCTION_LAYOUT = struct([u8('numSignatures'), u8('padding'), u16('signatureOffset'), u16('signatureInstructionIndex'), u16('publicKeyOffset'), u16('publicKeyInstructionIndex'), u16('messageDataOffset'), u16('messageDataSize'), u16('messageInstructionIndex')]);\n\nvar Ed25519Program = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function Ed25519Program() {\n _classCallCheck(this, Ed25519Program);\n }\n /**\n * Public key that identifies the ed25519 program\n */\n\n /**\n * Create an ed25519 instruction with a public key and signature. The\n * public key must be a buffer that is 32 bytes long, and the signature\n * must be a buffer of 64 bytes.\n */\n\n\n _createClass(Ed25519Program, null, [{\n key: \"createInstructionWithPublicKey\",\n value: function createInstructionWithPublicKey(params) {\n var publicKey = params.publicKey,\n message = params.message,\n signature = params.signature,\n instructionIndex = params.instructionIndex;\n assert(publicKey.length === PUBLIC_KEY_BYTES$1, \"Public Key must be \".concat(PUBLIC_KEY_BYTES$1, \" bytes but received \").concat(publicKey.length, \" bytes\"));\n assert(signature.length === SIGNATURE_BYTES, \"Signature must be \".concat(SIGNATURE_BYTES, \" bytes but received \").concat(signature.length, \" bytes\"));\n var publicKeyOffset = ED25519_INSTRUCTION_LAYOUT.span;\n var signatureOffset = publicKeyOffset + publicKey.length;\n var messageDataOffset = signatureOffset + signature.length;\n var numSignatures = 1;\n var instructionData = Buffer$1.alloc(messageDataOffset + message.length);\n var index = instructionIndex == null ? 0xffff // An index of `u16::MAX` makes it default to the current instruction.\n : instructionIndex;\n ED25519_INSTRUCTION_LAYOUT.encode({\n numSignatures: numSignatures,\n padding: 0,\n signatureOffset: signatureOffset,\n signatureInstructionIndex: index,\n publicKeyOffset: publicKeyOffset,\n publicKeyInstructionIndex: index,\n messageDataOffset: messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: index\n }, instructionData);\n instructionData.fill(publicKey, publicKeyOffset);\n instructionData.fill(signature, signatureOffset);\n instructionData.fill(message, messageDataOffset);\n return new TransactionInstruction({\n keys: [],\n programId: Ed25519Program.programId,\n data: instructionData\n });\n }\n /**\n * Create an ed25519 instruction with a private key. The private key\n * must be a buffer that is 64 bytes long.\n */\n\n }, {\n key: \"createInstructionWithPrivateKey\",\n value: function createInstructionWithPrivateKey(params) {\n var privateKey = params.privateKey,\n message = params.message,\n instructionIndex = params.instructionIndex;\n assert(privateKey.length === PRIVATE_KEY_BYTES$1, \"Private key must be \".concat(PRIVATE_KEY_BYTES$1, \" bytes but received \").concat(privateKey.length, \" bytes\"));\n\n try {\n var keypair = Keypair.fromSecretKey(privateKey);\n\n var _publicKey2 = keypair.publicKey.toBytes();\n\n var _signature5 = _sign(message, keypair.secretKey);\n\n return this.createInstructionWithPublicKey({\n publicKey: _publicKey2,\n message: message,\n signature: _signature5,\n instructionIndex: instructionIndex\n });\n } catch (error) {\n throw new Error(\"Error creating instruction; \".concat(error));\n }\n }\n }]);\n\n return Ed25519Program;\n}();\n\nEd25519Program.programId = new PublicKey('Ed25519SigVerify111111111111111111111111111');\n\nvar ecdsaSign = function ecdsaSign(msgHash, privKey) {\n var signature = secp256k1.sign(msgHash, privKey);\n return [signature.toCompactRawBytes(), signature.recovery];\n};\n\nsecp256k1.utils.isValidPrivateKey;\nvar publicKeyCreate = secp256k1.getPublicKey;\nvar PRIVATE_KEY_BYTES = 32;\nvar ETHEREUM_ADDRESS_BYTES = 20;\nvar PUBLIC_KEY_BYTES = 64;\nvar SIGNATURE_OFFSETS_SERIALIZED_SIZE = 11;\n/**\n * Params for creating an secp256k1 instruction using a public key\n */\n\n/**\n * Params for creating an secp256k1 instruction using an Ethereum address\n */\n\n/**\n * Params for creating an secp256k1 instruction using a private key\n */\n\nvar SECP256K1_INSTRUCTION_LAYOUT = struct([u8('numSignatures'), u16('signatureOffset'), u8('signatureInstructionIndex'), u16('ethAddressOffset'), u8('ethAddressInstructionIndex'), u16('messageDataOffset'), u16('messageDataSize'), u8('messageInstructionIndex'), blob$1(20, 'ethAddress'), blob$1(64, 'signature'), u8('recoveryId')]);\n\nvar Secp256k1Program = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function Secp256k1Program() {\n _classCallCheck(this, Secp256k1Program);\n }\n /**\n * Public key that identifies the secp256k1 program\n */\n\n /**\n * Construct an Ethereum address from a secp256k1 public key buffer.\n * @param {Buffer} publicKey a 64 byte secp256k1 public key buffer\n */\n\n\n _createClass(Secp256k1Program, null, [{\n key: \"publicKeyToEthAddress\",\n value: function publicKeyToEthAddress(publicKey) {\n assert(publicKey.length === PUBLIC_KEY_BYTES, \"Public key must be \".concat(PUBLIC_KEY_BYTES, \" bytes but received \").concat(publicKey.length, \" bytes\"));\n\n try {\n return Buffer$1.from(keccak_256(toBuffer(publicKey))).slice(-ETHEREUM_ADDRESS_BYTES);\n } catch (error) {\n throw new Error(\"Error constructing Ethereum address: \".concat(error));\n }\n }\n /**\n * Create an secp256k1 instruction with a public key. The public key\n * must be a buffer that is 64 bytes long.\n */\n\n }, {\n key: \"createInstructionWithPublicKey\",\n value: function createInstructionWithPublicKey(params) {\n var publicKey = params.publicKey,\n message = params.message,\n signature = params.signature,\n recoveryId = params.recoveryId,\n instructionIndex = params.instructionIndex;\n return Secp256k1Program.createInstructionWithEthAddress({\n ethAddress: Secp256k1Program.publicKeyToEthAddress(publicKey),\n message: message,\n signature: signature,\n recoveryId: recoveryId,\n instructionIndex: instructionIndex\n });\n }\n /**\n * Create an secp256k1 instruction with an Ethereum address. The address\n * must be a hex string or a buffer that is 20 bytes long.\n */\n\n }, {\n key: \"createInstructionWithEthAddress\",\n value: function createInstructionWithEthAddress(params) {\n var rawAddress = params.ethAddress,\n message = params.message,\n signature = params.signature,\n recoveryId = params.recoveryId,\n _params$instructionIn = params.instructionIndex,\n instructionIndex = _params$instructionIn === void 0 ? 0 : _params$instructionIn;\n var ethAddress;\n\n if (typeof rawAddress === 'string') {\n if (rawAddress.startsWith('0x')) {\n ethAddress = Buffer$1.from(rawAddress.substr(2), 'hex');\n } else {\n ethAddress = Buffer$1.from(rawAddress, 'hex');\n }\n } else {\n ethAddress = rawAddress;\n }\n\n assert(ethAddress.length === ETHEREUM_ADDRESS_BYTES, \"Address must be \".concat(ETHEREUM_ADDRESS_BYTES, \" bytes but received \").concat(ethAddress.length, \" bytes\"));\n var dataStart = 1 + SIGNATURE_OFFSETS_SERIALIZED_SIZE;\n var ethAddressOffset = dataStart;\n var signatureOffset = dataStart + ethAddress.length;\n var messageDataOffset = signatureOffset + signature.length + 1;\n var numSignatures = 1;\n var instructionData = Buffer$1.alloc(SECP256K1_INSTRUCTION_LAYOUT.span + message.length);\n SECP256K1_INSTRUCTION_LAYOUT.encode({\n numSignatures: numSignatures,\n signatureOffset: signatureOffset,\n signatureInstructionIndex: instructionIndex,\n ethAddressOffset: ethAddressOffset,\n ethAddressInstructionIndex: instructionIndex,\n messageDataOffset: messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: instructionIndex,\n signature: toBuffer(signature),\n ethAddress: toBuffer(ethAddress),\n recoveryId: recoveryId\n }, instructionData);\n instructionData.fill(toBuffer(message), SECP256K1_INSTRUCTION_LAYOUT.span);\n return new TransactionInstruction({\n keys: [],\n programId: Secp256k1Program.programId,\n data: instructionData\n });\n }\n /**\n * Create an secp256k1 instruction with a private key. The private key\n * must be a buffer that is 32 bytes long.\n */\n\n }, {\n key: \"createInstructionWithPrivateKey\",\n value: function createInstructionWithPrivateKey(params) {\n var pkey = params.privateKey,\n message = params.message,\n instructionIndex = params.instructionIndex;\n assert(pkey.length === PRIVATE_KEY_BYTES, \"Private key must be \".concat(PRIVATE_KEY_BYTES, \" bytes but received \").concat(pkey.length, \" bytes\"));\n\n try {\n var privateKey = toBuffer(pkey);\n\n var _publicKey3 = publicKeyCreate(privateKey, false\n /* isCompressed */\n ).slice(1); // throw away leading byte\n\n\n var messageHash = Buffer$1.from(keccak_256(toBuffer(message)));\n\n var _ecdsaSign3 = ecdsaSign(messageHash, privateKey),\n _ecdsaSign4 = _slicedToArray(_ecdsaSign3, 2),\n _signature6 = _ecdsaSign4[0],\n recoveryId = _ecdsaSign4[1];\n\n return this.createInstructionWithPublicKey({\n publicKey: _publicKey3,\n message: message,\n signature: _signature6,\n recoveryId: recoveryId,\n instructionIndex: instructionIndex\n });\n } catch (error) {\n throw new Error(\"Error creating instruction; \".concat(error));\n }\n }\n }]);\n\n return Secp256k1Program;\n}();\n\nSecp256k1Program.programId = new PublicKey('KeccakSecp256k11111111111111111111111111111');\n\nvar _class2;\n/**\n * Address of the stake config account which configures the rate\n * of stake warmup and cooldown as well as the slashing penalty.\n */\n\n\nvar STAKE_CONFIG_ID = new PublicKey('StakeConfig11111111111111111111111111111111');\n/**\n * Stake account authority info\n */\n\nvar Authorized = /*#__PURE__*/_createClass(\n/**\n * Create a new Authorized object\n * @param staker the stake authority\n * @param withdrawer the withdraw authority\n */\nfunction Authorized(staker, withdrawer) {\n _classCallCheck(this, Authorized);\n /** stake authority */\n\n\n this.staker = void 0;\n /** withdraw authority */\n\n this.withdrawer = void 0;\n this.staker = staker;\n this.withdrawer = withdrawer;\n});\n/**\n * Stake account lockup info\n */\n\n\nvar Lockup = /*#__PURE__*/_createClass(\n/**\n * Create a new Lockup object\n */\nfunction Lockup(unixTimestamp, epoch, custodian) {\n _classCallCheck(this, Lockup);\n /** Unix timestamp of lockup expiration */\n\n\n this.unixTimestamp = void 0;\n /** Epoch of lockup expiration */\n\n this.epoch = void 0;\n /** Lockup custodian authority */\n\n this.custodian = void 0;\n this.unixTimestamp = unixTimestamp;\n this.epoch = epoch;\n this.custodian = custodian;\n}\n/**\n * Default, inactive Lockup value\n */\n);\n\n_class2 = Lockup;\nLockup[\"default\"] = new _class2(0, 0, PublicKey[\"default\"]);\n/**\n * Create stake account transaction params\n */\n\n/**\n * Create stake account with seed transaction params\n */\n\n/**\n * Initialize stake instruction params\n */\n\n/**\n * Delegate stake instruction params\n */\n\n/**\n * Authorize stake instruction params\n */\n\n/**\n * Authorize stake instruction params using a derived key\n */\n\n/**\n * Split stake instruction params\n */\n\n/**\n * Split with seed transaction params\n */\n\n/**\n * Withdraw stake instruction params\n */\n\n/**\n * Deactivate stake instruction params\n */\n\n/**\n * Merge stake instruction params\n */\n\n/**\n * Stake Instruction class\n */\n\nvar StakeInstruction = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function StakeInstruction() {\n _classCallCheck(this, StakeInstruction);\n }\n /**\n * Decode a stake instruction and retrieve the instruction type.\n */\n\n\n _createClass(StakeInstruction, null, [{\n key: \"decodeInstructionType\",\n value: function decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n var instructionTypeLayout = u32('instruction');\n var typeIndex = instructionTypeLayout.decode(instruction.data);\n var type;\n\n for (var _i12 = 0, _Object$entries4 = Object.entries(STAKE_INSTRUCTION_LAYOUTS); _i12 < _Object$entries4.length; _i12++) {\n var _Object$entries4$_i2 = _slicedToArray(_Object$entries4[_i12], 2),\n ixType = _Object$entries4$_i2[0],\n layout = _Object$entries4$_i2[1];\n\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a StakeInstruction');\n }\n\n return type;\n }\n /**\n * Decode a initialize stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeInitialize\",\n value: function decodeInitialize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n var _decodeData$18 = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Initialize, instruction.data),\n authorized = _decodeData$18.authorized,\n lockup = _decodeData$18.lockup;\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorized: new Authorized(new PublicKey(authorized.staker), new PublicKey(authorized.withdrawer)),\n lockup: new Lockup(lockup.unixTimestamp, lockup.epoch, new PublicKey(lockup.custodian))\n };\n }\n /**\n * Decode a delegate stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeDelegate\",\n value: function decodeDelegate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 6);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Delegate, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n votePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[5].pubkey\n };\n }\n /**\n * Decode an authorize stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAuthorize\",\n value: function decodeAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$19 = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Authorize, instruction.data),\n newAuthorized = _decodeData$19.newAuthorized,\n stakeAuthorizationType = _decodeData$19.stakeAuthorizationType;\n\n var o = {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType\n }\n };\n\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n\n return o;\n }\n /**\n * Decode an authorize-with-seed stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAuthorizeWithSeed\",\n value: function decodeAuthorizeWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n var _decodeData$20 = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data),\n newAuthorized = _decodeData$20.newAuthorized,\n stakeAuthorizationType = _decodeData$20.stakeAuthorizationType,\n authoritySeed = _decodeData$20.authoritySeed,\n authorityOwner = _decodeData$20.authorityOwner;\n\n var o = {\n stakePubkey: instruction.keys[0].pubkey,\n authorityBase: instruction.keys[1].pubkey,\n authoritySeed: authoritySeed,\n authorityOwner: new PublicKey(authorityOwner),\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType\n }\n };\n\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n\n return o;\n }\n /**\n * Decode a split stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeSplit\",\n value: function decodeSplit(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$21 = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Split, instruction.data),\n lamports = _decodeData$21.lamports;\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n splitStakePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n lamports: lamports\n };\n }\n /**\n * Decode a merge stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeMerge\",\n value: function decodeMerge(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Merge, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n sourceStakePubKey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey\n };\n }\n /**\n * Decode a withdraw stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeWithdraw\",\n value: function decodeWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n\n var _decodeData$22 = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data),\n lamports = _decodeData$22.lamports;\n\n var o = {\n stakePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports: lamports\n };\n\n if (instruction.keys.length > 5) {\n o.custodianPubkey = instruction.keys[5].pubkey;\n }\n\n return o;\n }\n /**\n * Decode a deactivate stake instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeDeactivate\",\n value: function decodeDeactivate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Deactivate, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey\n };\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkProgramId\",\n value: function checkProgramId(programId) {\n if (!programId.equals(StakeProgram.programId)) {\n throw new Error('invalid instruction; programId is not StakeProgram');\n }\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkKeyLength\",\n value: function checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(\"invalid instruction; found \".concat(keys.length, \" keys, expected at least \").concat(expectedLength));\n }\n }\n }]);\n\n return StakeInstruction;\n}();\n/**\n * An enumeration of valid StakeInstructionType's\n */\n\n/**\n * An enumeration of valid stake InstructionType's\n * @internal\n */\n\n\nvar STAKE_INSTRUCTION_LAYOUTS = Object.freeze({\n Initialize: {\n index: 0,\n layout: struct([u32('instruction'), authorized(), lockup()])\n },\n Authorize: {\n index: 1,\n layout: struct([u32('instruction'), publicKey('newAuthorized'), u32('stakeAuthorizationType')])\n },\n Delegate: {\n index: 2,\n layout: struct([u32('instruction')])\n },\n Split: {\n index: 3,\n layout: struct([u32('instruction'), ns64('lamports')])\n },\n Withdraw: {\n index: 4,\n layout: struct([u32('instruction'), ns64('lamports')])\n },\n Deactivate: {\n index: 5,\n layout: struct([u32('instruction')])\n },\n Merge: {\n index: 7,\n layout: struct([u32('instruction')])\n },\n AuthorizeWithSeed: {\n index: 8,\n layout: struct([u32('instruction'), publicKey('newAuthorized'), u32('stakeAuthorizationType'), rustString('authoritySeed'), publicKey('authorityOwner')])\n }\n});\n/**\n * Stake authorization type\n */\n\n/**\n * An enumeration of valid StakeAuthorizationLayout's\n */\n\nvar StakeAuthorizationLayout = Object.freeze({\n Staker: {\n index: 0\n },\n Withdrawer: {\n index: 1\n }\n});\n/**\n * Factory class for transactions to interact with the Stake program\n */\n\nvar StakeProgram = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function StakeProgram() {\n _classCallCheck(this, StakeProgram);\n }\n /**\n * Public key that identifies the Stake program\n */\n\n /**\n * Generate an Initialize instruction to add to a Stake Create transaction\n */\n\n\n _createClass(StakeProgram, null, [{\n key: \"initialize\",\n value: function initialize(params) {\n var stakePubkey = params.stakePubkey,\n authorized = params.authorized,\n maybeLockup = params.lockup;\n var lockup = maybeLockup || Lockup[\"default\"];\n var type = STAKE_INSTRUCTION_LAYOUTS.Initialize;\n var data = encodeData(type, {\n authorized: {\n staker: toBuffer(authorized.staker.toBuffer()),\n withdrawer: toBuffer(authorized.withdrawer.toBuffer())\n },\n lockup: {\n unixTimestamp: lockup.unixTimestamp,\n epoch: lockup.epoch,\n custodian: toBuffer(lockup.custodian.toBuffer())\n }\n });\n var instructionData = {\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate a Transaction that creates a new Stake account at\n * an address generated with `from`, a seed, and the Stake programId\n */\n\n }, {\n key: \"createAccountWithSeed\",\n value: function createAccountWithSeed(params) {\n var transaction = new Transaction();\n transaction.add(SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n var stakePubkey = params.stakePubkey,\n authorized = params.authorized,\n lockup = params.lockup;\n return transaction.add(this.initialize({\n stakePubkey: stakePubkey,\n authorized: authorized,\n lockup: lockup\n }));\n }\n /**\n * Generate a Transaction that creates a new Stake account\n */\n\n }, {\n key: \"createAccount\",\n value: function createAccount(params) {\n var transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n var stakePubkey = params.stakePubkey,\n authorized = params.authorized,\n lockup = params.lockup;\n return transaction.add(this.initialize({\n stakePubkey: stakePubkey,\n authorized: authorized,\n lockup: lockup\n }));\n }\n /**\n * Generate a Transaction that delegates Stake tokens to a validator\n * Vote PublicKey. This transaction can also be used to redelegate Stake\n * to a new validator Vote PublicKey.\n */\n\n }, {\n key: \"delegate\",\n value: function delegate(params) {\n var stakePubkey = params.stakePubkey,\n authorizedPubkey = params.authorizedPubkey,\n votePubkey = params.votePubkey;\n var type = STAKE_INSTRUCTION_LAYOUTS.Delegate;\n var data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: votePubkey,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: STAKE_CONFIG_ID,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n\n }, {\n key: \"authorize\",\n value: function authorize(params) {\n var stakePubkey = params.stakePubkey,\n authorizedPubkey = params.authorizedPubkey,\n newAuthorizedPubkey = params.newAuthorizedPubkey,\n stakeAuthorizationType = params.stakeAuthorizationType,\n custodianPubkey = params.custodianPubkey;\n var type = STAKE_INSTRUCTION_LAYOUTS.Authorize;\n var data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index\n });\n var keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new Transaction().add({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n\n }, {\n key: \"authorizeWithSeed\",\n value: function authorizeWithSeed(params) {\n var stakePubkey = params.stakePubkey,\n authorityBase = params.authorityBase,\n authoritySeed = params.authoritySeed,\n authorityOwner = params.authorityOwner,\n newAuthorizedPubkey = params.newAuthorizedPubkey,\n stakeAuthorizationType = params.stakeAuthorizationType,\n custodianPubkey = params.custodianPubkey;\n var type = STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n var data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index,\n authoritySeed: authoritySeed,\n authorityOwner: toBuffer(authorityOwner.toBuffer())\n });\n var keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorityBase,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }];\n\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new Transaction().add({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * @internal\n */\n\n }, {\n key: \"splitInstruction\",\n value: function splitInstruction(params) {\n var stakePubkey = params.stakePubkey,\n authorizedPubkey = params.authorizedPubkey,\n splitStakePubkey = params.splitStakePubkey,\n lamports = params.lamports;\n var type = STAKE_INSTRUCTION_LAYOUTS.Split;\n var data = encodeData(type, {\n lamports: lamports\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: splitStakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a Transaction that splits Stake tokens into another stake account\n */\n\n }, {\n key: \"split\",\n value: function split(params) {\n var transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.authorizedPubkey,\n newAccountPubkey: params.splitStakePubkey,\n lamports: 0,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.splitInstruction(params));\n }\n /**\n * Generate a Transaction that splits Stake tokens into another account\n * derived from a base public key and seed\n */\n\n }, {\n key: \"splitWithSeed\",\n value: function splitWithSeed(params) {\n var stakePubkey = params.stakePubkey,\n authorizedPubkey = params.authorizedPubkey,\n splitStakePubkey = params.splitStakePubkey,\n basePubkey = params.basePubkey,\n seed = params.seed,\n lamports = params.lamports;\n var transaction = new Transaction();\n transaction.add(SystemProgram.allocate({\n accountPubkey: splitStakePubkey,\n basePubkey: basePubkey,\n seed: seed,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.splitInstruction({\n stakePubkey: stakePubkey,\n authorizedPubkey: authorizedPubkey,\n splitStakePubkey: splitStakePubkey,\n lamports: lamports\n }));\n }\n /**\n * Generate a Transaction that merges Stake accounts.\n */\n\n }, {\n key: \"merge\",\n value: function merge(params) {\n var stakePubkey = params.stakePubkey,\n sourceStakePubKey = params.sourceStakePubKey,\n authorizedPubkey = params.authorizedPubkey;\n var type = STAKE_INSTRUCTION_LAYOUTS.Merge;\n var data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: sourceStakePubKey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a Transaction that withdraws deactivated Stake tokens.\n */\n\n }, {\n key: \"withdraw\",\n value: function withdraw(params) {\n var stakePubkey = params.stakePubkey,\n authorizedPubkey = params.authorizedPubkey,\n toPubkey = params.toPubkey,\n lamports = params.lamports,\n custodianPubkey = params.custodianPubkey;\n var type = STAKE_INSTRUCTION_LAYOUTS.Withdraw;\n var data = encodeData(type, {\n lamports: lamports\n });\n var keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new Transaction().add({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a Transaction that deactivates Stake tokens.\n */\n\n }, {\n key: \"deactivate\",\n value: function deactivate(params) {\n var stakePubkey = params.stakePubkey,\n authorizedPubkey = params.authorizedPubkey;\n var type = STAKE_INSTRUCTION_LAYOUTS.Deactivate;\n var data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n });\n }\n }]);\n\n return StakeProgram;\n}();\n\nStakeProgram.programId = new PublicKey('Stake11111111111111111111111111111111111111');\n/**\n * Max space of a Stake account\n *\n * This is generated from the solana-stake-program StakeState struct as\n * `StakeState::size_of()`:\n * https://docs.rs/solana-stake-program/latest/solana_stake_program/stake_state/enum.StakeState.html\n */\n\nStakeProgram.space = 200;\n/**\n * Vote account info\n */\n\nvar VoteInit = /*#__PURE__*/_createClass(\n/** [0, 100] */\nfunction VoteInit(nodePubkey, authorizedVoter, authorizedWithdrawer, commission) {\n _classCallCheck(this, VoteInit);\n\n this.nodePubkey = void 0;\n this.authorizedVoter = void 0;\n this.authorizedWithdrawer = void 0;\n this.commission = void 0;\n this.nodePubkey = nodePubkey;\n this.authorizedVoter = authorizedVoter;\n this.authorizedWithdrawer = authorizedWithdrawer;\n this.commission = commission;\n});\n/**\n * Create vote account transaction params\n */\n\n/**\n * InitializeAccount instruction params\n */\n\n/**\n * Authorize instruction params\n */\n\n/**\n * AuthorizeWithSeed instruction params\n */\n\n/**\n * Withdraw from vote account transaction params\n */\n\n/**\n * Vote Instruction class\n */\n\n\nvar VoteInstruction = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function VoteInstruction() {\n _classCallCheck(this, VoteInstruction);\n }\n /**\n * Decode a vote instruction and retrieve the instruction type.\n */\n\n\n _createClass(VoteInstruction, null, [{\n key: \"decodeInstructionType\",\n value: function decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n var instructionTypeLayout = u32('instruction');\n var typeIndex = instructionTypeLayout.decode(instruction.data);\n var type;\n\n for (var _i13 = 0, _Object$entries5 = Object.entries(VOTE_INSTRUCTION_LAYOUTS); _i13 < _Object$entries5.length; _i13++) {\n var _Object$entries5$_i2 = _slicedToArray(_Object$entries5[_i13], 2),\n ixType = _Object$entries5$_i2[0],\n layout = _Object$entries5$_i2[1];\n\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a VoteInstruction');\n }\n\n return type;\n }\n /**\n * Decode an initialize vote instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeInitializeAccount\",\n value: function decodeInitializeAccount(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 4);\n\n var _decodeData$23 = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.InitializeAccount, instruction.data),\n voteInit = _decodeData$23.voteInit;\n\n return {\n votePubkey: instruction.keys[0].pubkey,\n nodePubkey: instruction.keys[3].pubkey,\n voteInit: new VoteInit(new PublicKey(voteInit.nodePubkey), new PublicKey(voteInit.authorizedVoter), new PublicKey(voteInit.authorizedWithdrawer), voteInit.commission)\n };\n }\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAuthorize\",\n value: function decodeAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$24 = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Authorize, instruction.data),\n newAuthorized = _decodeData$24.newAuthorized,\n voteAuthorizationType = _decodeData$24.voteAuthorizationType;\n\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType\n }\n };\n }\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeAuthorizeWithSeed\",\n value: function decodeAuthorizeWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$25 = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data),\n _decodeData$25$voteAu = _decodeData$25.voteAuthorizeWithSeedArgs,\n currentAuthorityDerivedKeyOwnerPubkey = _decodeData$25$voteAu.currentAuthorityDerivedKeyOwnerPubkey,\n currentAuthorityDerivedKeySeed = _decodeData$25$voteAu.currentAuthorityDerivedKeySeed,\n newAuthorized = _decodeData$25$voteAu.newAuthorized,\n voteAuthorizationType = _decodeData$25$voteAu.voteAuthorizationType;\n\n return {\n currentAuthorityDerivedKeyBasePubkey: instruction.keys[2].pubkey,\n currentAuthorityDerivedKeyOwnerPubkey: new PublicKey(currentAuthorityDerivedKeyOwnerPubkey),\n currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType\n },\n votePubkey: instruction.keys[0].pubkey\n };\n }\n /**\n * Decode a withdraw instruction and retrieve the instruction params.\n */\n\n }, {\n key: \"decodeWithdraw\",\n value: function decodeWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n var _decodeData$26 = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data),\n lamports = _decodeData$26.lamports;\n\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedWithdrawerPubkey: instruction.keys[2].pubkey,\n lamports: lamports,\n toPubkey: instruction.keys[1].pubkey\n };\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkProgramId\",\n value: function checkProgramId(programId) {\n if (!programId.equals(VoteProgram.programId)) {\n throw new Error('invalid instruction; programId is not VoteProgram');\n }\n }\n /**\n * @internal\n */\n\n }, {\n key: \"checkKeyLength\",\n value: function checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(\"invalid instruction; found \".concat(keys.length, \" keys, expected at least \").concat(expectedLength));\n }\n }\n }]);\n\n return VoteInstruction;\n}();\n/**\n * An enumeration of valid VoteInstructionType's\n */\n\n/** @internal */\n\n\nvar VOTE_INSTRUCTION_LAYOUTS = Object.freeze({\n InitializeAccount: {\n index: 0,\n layout: struct([u32('instruction'), voteInit()])\n },\n Authorize: {\n index: 1,\n layout: struct([u32('instruction'), publicKey('newAuthorized'), u32('voteAuthorizationType')])\n },\n Withdraw: {\n index: 3,\n layout: struct([u32('instruction'), ns64('lamports')])\n },\n AuthorizeWithSeed: {\n index: 10,\n layout: struct([u32('instruction'), voteAuthorizeWithSeedArgs()])\n }\n});\n/**\n * VoteAuthorize type\n */\n\n/**\n * An enumeration of valid VoteAuthorization layouts.\n */\n\nvar VoteAuthorizationLayout = Object.freeze({\n Voter: {\n index: 0\n },\n Withdrawer: {\n index: 1\n }\n});\n/**\n * Factory class for transactions to interact with the Vote program\n */\n\nvar VoteProgram = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function VoteProgram() {\n _classCallCheck(this, VoteProgram);\n }\n /**\n * Public key that identifies the Vote program\n */\n\n /**\n * Generate an Initialize instruction.\n */\n\n\n _createClass(VoteProgram, null, [{\n key: \"initializeAccount\",\n value: function initializeAccount(params) {\n var votePubkey = params.votePubkey,\n nodePubkey = params.nodePubkey,\n voteInit = params.voteInit;\n var type = VOTE_INSTRUCTION_LAYOUTS.InitializeAccount;\n var data = encodeData(type, {\n voteInit: {\n nodePubkey: toBuffer(voteInit.nodePubkey.toBuffer()),\n authorizedVoter: toBuffer(voteInit.authorizedVoter.toBuffer()),\n authorizedWithdrawer: toBuffer(voteInit.authorizedWithdrawer.toBuffer()),\n commission: voteInit.commission\n }\n });\n var instructionData = {\n keys: [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: nodePubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data: data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate a transaction that creates a new Vote account.\n */\n\n }, {\n key: \"createAccount\",\n value: function createAccount(params) {\n var transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.votePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.initializeAccount({\n votePubkey: params.votePubkey,\n nodePubkey: params.voteInit.nodePubkey,\n voteInit: params.voteInit\n }));\n }\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account.\n */\n\n }, {\n key: \"authorize\",\n value: function authorize(params) {\n var votePubkey = params.votePubkey,\n authorizedPubkey = params.authorizedPubkey,\n newAuthorizedPubkey = params.newAuthorizedPubkey,\n voteAuthorizationType = params.voteAuthorizationType;\n var type = VOTE_INSTRUCTION_LAYOUTS.Authorize;\n var data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index\n });\n var keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account\n * where the current Voter or Withdrawer authority is a derived key.\n */\n\n }, {\n key: \"authorizeWithSeed\",\n value: function authorizeWithSeed(params) {\n var currentAuthorityDerivedKeyBasePubkey = params.currentAuthorityDerivedKeyBasePubkey,\n currentAuthorityDerivedKeyOwnerPubkey = params.currentAuthorityDerivedKeyOwnerPubkey,\n currentAuthorityDerivedKeySeed = params.currentAuthorityDerivedKeySeed,\n newAuthorizedPubkey = params.newAuthorizedPubkey,\n voteAuthorizationType = params.voteAuthorizationType,\n votePubkey = params.votePubkey;\n var type = VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n var data = encodeData(type, {\n voteAuthorizeWithSeedArgs: {\n currentAuthorityDerivedKeyOwnerPubkey: toBuffer(currentAuthorityDerivedKeyOwnerPubkey.toBuffer()),\n currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index\n }\n });\n var keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: currentAuthorityDerivedKeyBasePubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction to withdraw from a Vote account.\n */\n\n }, {\n key: \"withdraw\",\n value: function withdraw(params) {\n var votePubkey = params.votePubkey,\n authorizedWithdrawerPubkey = params.authorizedWithdrawerPubkey,\n lamports = params.lamports,\n toPubkey = params.toPubkey;\n var type = VOTE_INSTRUCTION_LAYOUTS.Withdraw;\n var data = encodeData(type, {\n lamports: lamports\n });\n var keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedWithdrawerPubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys: keys,\n programId: this.programId,\n data: data\n });\n }\n /**\n * Generate a transaction to withdraw safely from a Vote account.\n *\n * This function was created as a safeguard for vote accounts running validators, `safeWithdraw`\n * checks that the withdraw amount will not exceed the specified balance while leaving enough left\n * to cover rent. If you wish to close the vote account by withdrawing the full amount, call the\n * `withdraw` method directly.\n */\n\n }, {\n key: \"safeWithdraw\",\n value: function safeWithdraw(params, currentVoteAccountBalance, rentExemptMinimum) {\n if (params.lamports > currentVoteAccountBalance - rentExemptMinimum) {\n throw new Error('Withdraw will leave vote account with insuffcient funds.');\n }\n\n return VoteProgram.withdraw(params);\n }\n }]);\n\n return VoteProgram;\n}();\n\nVoteProgram.programId = new PublicKey('Vote111111111111111111111111111111111111111');\n/**\n * Max space of a Vote account\n *\n * This is generated from the solana-vote-program VoteState struct as\n * `VoteState::size_of()`:\n * https://docs.rs/solana-vote-program/1.9.5/solana_vote_program/vote_state/struct.VoteState.html#method.size_of\n *\n * KEEP IN SYNC WITH `VoteState::size_of()` in https://github.com/solana-labs/solana/blob/a474cb24b9238f5edcc982f65c0b37d4a1046f7e/sdk/program/src/vote/state/mod.rs#L340-L342\n */\n\nVoteProgram.space = 3731;\nvar VALIDATOR_INFO_KEY = new PublicKey('Va1idator1nfo111111111111111111111111111111');\n/**\n * @internal\n */\n\n/**\n * Info used to identity validators.\n */\n\nvar InfoString = type({\n name: string(),\n website: optional(string()),\n details: optional(string()),\n keybaseUsername: optional(string())\n});\n/**\n * ValidatorInfo class\n */\n\nvar ValidatorInfo = /*#__PURE__*/function () {\n /**\n * Construct a valid ValidatorInfo\n *\n * @param key validator public key\n * @param info validator information\n */\n function ValidatorInfo(key, info) {\n _classCallCheck(this, ValidatorInfo);\n /**\n * validator public key\n */\n\n\n this.key = void 0;\n /**\n * validator information\n */\n\n this.info = void 0;\n this.key = key;\n this.info = info;\n }\n /**\n * Deserialize ValidatorInfo from the config account data. Exactly two config\n * keys are required in the data.\n *\n * @param buffer config account data\n * @return null if info was not found\n */\n\n\n _createClass(ValidatorInfo, null, [{\n key: \"fromConfigData\",\n value: function fromConfigData(buffer) {\n var byteArray = _toConsumableArray(buffer);\n\n var configKeyCount = decodeLength(byteArray);\n if (configKeyCount !== 2) return null;\n var configKeys = [];\n\n for (var i = 0; i < 2; i++) {\n var _publicKey4 = new PublicKey(byteArray.slice(0, PUBLIC_KEY_LENGTH));\n\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n var isSigner = byteArray.slice(0, 1)[0] === 1;\n byteArray = byteArray.slice(1);\n configKeys.push({\n publicKey: _publicKey4,\n isSigner: isSigner\n });\n }\n\n if (configKeys[0].publicKey.equals(VALIDATOR_INFO_KEY)) {\n if (configKeys[1].isSigner) {\n var rawInfo = rustString().decode(Buffer$1.from(byteArray));\n var info = JSON.parse(rawInfo);\n\n _assert(info, InfoString);\n\n return new ValidatorInfo(configKeys[1].publicKey, info);\n }\n }\n\n return null;\n }\n }]);\n\n return ValidatorInfo;\n}();\n\nvar VOTE_PROGRAM_ID = new PublicKey('Vote111111111111111111111111111111111111111');\n/**\n * History of how many credits earned by the end of each epoch\n */\n\n/**\n * See https://github.com/solana-labs/solana/blob/8a12ed029cfa38d4a45400916c2463fb82bbec8c/programs/vote_api/src/vote_state.rs#L68-L88\n *\n * @internal\n */\n\nvar VoteAccountLayout = struct([publicKey('nodePubkey'), publicKey('authorizedWithdrawer'), u8('commission'), nu64$1(), // votes.length\nseq$1(struct([nu64$1('slot'), u32('confirmationCount')]), offset$1(u32(), -8), 'votes'), u8('rootSlotValid'), nu64$1('rootSlot'), nu64$1(), // authorizedVoters.length\nseq$1(struct([nu64$1('epoch'), publicKey('authorizedVoter')]), offset$1(u32(), -8), 'authorizedVoters'), struct([seq$1(struct([publicKey('authorizedPubkey'), nu64$1('epochOfLastAuthorizedSwitch'), nu64$1('targetEpoch')]), 32, 'buf'), nu64$1('idx'), u8('isEmpty')], 'priorVoters'), nu64$1(), // epochCredits.length\nseq$1(struct([nu64$1('epoch'), nu64$1('credits'), nu64$1('prevCredits')]), offset$1(u32(), -8), 'epochCredits'), struct([nu64$1('slot'), nu64$1('timestamp')], 'lastTimestamp')]);\n/**\n * VoteAccount class\n */\n\nvar VoteAccount = /*#__PURE__*/function () {\n /**\n * @internal\n */\n function VoteAccount(args) {\n _classCallCheck(this, VoteAccount);\n\n this.nodePubkey = void 0;\n this.authorizedWithdrawer = void 0;\n this.commission = void 0;\n this.rootSlot = void 0;\n this.votes = void 0;\n this.authorizedVoters = void 0;\n this.priorVoters = void 0;\n this.epochCredits = void 0;\n this.lastTimestamp = void 0;\n this.nodePubkey = args.nodePubkey;\n this.authorizedWithdrawer = args.authorizedWithdrawer;\n this.commission = args.commission;\n this.rootSlot = args.rootSlot;\n this.votes = args.votes;\n this.authorizedVoters = args.authorizedVoters;\n this.priorVoters = args.priorVoters;\n this.epochCredits = args.epochCredits;\n this.lastTimestamp = args.lastTimestamp;\n }\n /**\n * Deserialize VoteAccount from the account data.\n *\n * @param buffer account data\n * @return VoteAccount\n */\n\n\n _createClass(VoteAccount, null, [{\n key: \"fromAccountData\",\n value: function fromAccountData(buffer) {\n var versionOffset = 4;\n var va = VoteAccountLayout.decode(toBuffer(buffer), versionOffset);\n var rootSlot = va.rootSlot;\n\n if (!va.rootSlotValid) {\n rootSlot = null;\n }\n\n return new VoteAccount({\n nodePubkey: new PublicKey(va.nodePubkey),\n authorizedWithdrawer: new PublicKey(va.authorizedWithdrawer),\n commission: va.commission,\n votes: va.votes,\n rootSlot: rootSlot,\n authorizedVoters: va.authorizedVoters.map(parseAuthorizedVoter),\n priorVoters: getPriorVoters(va.priorVoters),\n epochCredits: va.epochCredits,\n lastTimestamp: va.lastTimestamp\n });\n }\n }]);\n\n return VoteAccount;\n}();\n\nfunction parseAuthorizedVoter(_ref46) {\n var authorizedVoter = _ref46.authorizedVoter,\n epoch = _ref46.epoch;\n return {\n epoch: epoch,\n authorizedVoter: new PublicKey(authorizedVoter)\n };\n}\n\nfunction parsePriorVoters(_ref47) {\n var authorizedPubkey = _ref47.authorizedPubkey,\n epochOfLastAuthorizedSwitch = _ref47.epochOfLastAuthorizedSwitch,\n targetEpoch = _ref47.targetEpoch;\n return {\n authorizedPubkey: new PublicKey(authorizedPubkey),\n epochOfLastAuthorizedSwitch: epochOfLastAuthorizedSwitch,\n targetEpoch: targetEpoch\n };\n}\n\nfunction getPriorVoters(_ref48) {\n var buf = _ref48.buf,\n idx = _ref48.idx,\n isEmpty = _ref48.isEmpty;\n\n if (isEmpty) {\n return [];\n }\n\n return [].concat(_toConsumableArray(buf.slice(idx + 1).map(parsePriorVoters)), _toConsumableArray(buf.slice(0, idx).map(parsePriorVoters)));\n}\n\nvar endpoint = {\n http: {\n devnet: 'http://api.devnet.solana.com',\n testnet: 'http://api.testnet.solana.com',\n 'mainnet-beta': 'http://api.mainnet-beta.solana.com/'\n },\n https: {\n devnet: 'https://api.devnet.solana.com',\n testnet: 'https://api.testnet.solana.com',\n 'mainnet-beta': 'https://api.mainnet-beta.solana.com/'\n }\n};\n/**\n * Retrieves the RPC API URL for the specified cluster\n * @param {Cluster} [cluster=\"devnet\"] - The cluster name of the RPC API URL to use. Possible options: 'devnet' | 'testnet' | 'mainnet-beta'\n * @param {boolean} [tls=\"http\"] - Use TLS when connecting to cluster.\n *\n * @returns {string} URL string of the RPC endpoint\n */\n\nfunction clusterApiUrl(cluster, tls) {\n var key = tls === false ? 'http' : 'https';\n\n if (!cluster) {\n return endpoint[key]['devnet'];\n }\n\n var url = endpoint[key][cluster];\n\n if (!url) {\n throw new Error(\"Unknown \".concat(key, \" cluster: \").concat(cluster));\n }\n\n return url;\n}\n/**\n * Send and confirm a raw transaction\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Buffer} rawTransaction\n * @param {TransactionConfirmationStrategy} confirmationStrategy\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\n\n/**\n * @deprecated Calling `sendAndConfirmRawTransaction()` without a `confirmationStrategy`\n * is no longer supported and will be removed in a future version.\n */\n// eslint-disable-next-line no-redeclare\n// eslint-disable-next-line no-redeclare\n\n\nfunction sendAndConfirmRawTransaction(_x163, _x164, _x165, _x166) {\n return _sendAndConfirmRawTransaction.apply(this, arguments);\n}\n/**\n * There are 1-billion lamports in one SOL\n */\n\n\nfunction _sendAndConfirmRawTransaction() {\n _sendAndConfirmRawTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee110(connection, rawTransaction, confirmationStrategyOrConfirmOptions, maybeConfirmOptions) {\n var confirmationStrategy, options, sendOptions, signature, commitment, confirmationPromise, status;\n return _regeneratorRuntime().wrap(function _callee110$(_context110) {\n while (1) {\n switch (_context110.prev = _context110.next) {\n case 0:\n if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, 'lastValidBlockHeight')) {\n confirmationStrategy = confirmationStrategyOrConfirmOptions;\n options = maybeConfirmOptions;\n } else if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, 'nonceValue')) {\n confirmationStrategy = confirmationStrategyOrConfirmOptions;\n options = maybeConfirmOptions;\n } else {\n options = confirmationStrategyOrConfirmOptions;\n }\n\n sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n minContextSlot: options.minContextSlot\n };\n _context110.next = 4;\n return connection.sendRawTransaction(rawTransaction, sendOptions);\n\n case 4:\n signature = _context110.sent;\n commitment = options && options.commitment;\n confirmationPromise = confirmationStrategy ? connection.confirmTransaction(confirmationStrategy, commitment) : connection.confirmTransaction(signature, commitment);\n _context110.next = 9;\n return confirmationPromise;\n\n case 9:\n status = _context110.sent.value;\n\n if (!status.err) {\n _context110.next = 12;\n break;\n }\n\n throw new Error(\"Raw transaction \".concat(signature, \" failed (\").concat(JSON.stringify(status), \")\"));\n\n case 12:\n return _context110.abrupt(\"return\", signature);\n\n case 13:\n case \"end\":\n return _context110.stop();\n }\n }\n }, _callee110);\n }));\n return _sendAndConfirmRawTransaction.apply(this, arguments);\n}\n\nvar LAMPORTS_PER_SOL = 1000000000;\nvar index_browser_esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Account: Account,\n AddressLookupTableAccount: AddressLookupTableAccount,\n AddressLookupTableInstruction: AddressLookupTableInstruction,\n AddressLookupTableProgram: AddressLookupTableProgram,\n Authorized: Authorized,\n BLOCKHASH_CACHE_TIMEOUT_MS: BLOCKHASH_CACHE_TIMEOUT_MS,\n BPF_LOADER_DEPRECATED_PROGRAM_ID: BPF_LOADER_DEPRECATED_PROGRAM_ID,\n BPF_LOADER_PROGRAM_ID: BPF_LOADER_PROGRAM_ID,\n BpfLoader: BpfLoader,\n COMPUTE_BUDGET_INSTRUCTION_LAYOUTS: COMPUTE_BUDGET_INSTRUCTION_LAYOUTS,\n ComputeBudgetInstruction: ComputeBudgetInstruction,\n ComputeBudgetProgram: ComputeBudgetProgram,\n Connection: Connection,\n Ed25519Program: Ed25519Program,\n Enum: Enum,\n EpochSchedule: EpochSchedule,\n FeeCalculatorLayout: FeeCalculatorLayout,\n Keypair: Keypair,\n LAMPORTS_PER_SOL: LAMPORTS_PER_SOL,\n LOOKUP_TABLE_INSTRUCTION_LAYOUTS: LOOKUP_TABLE_INSTRUCTION_LAYOUTS,\n Loader: Loader,\n Lockup: Lockup,\n MAX_SEED_LENGTH: MAX_SEED_LENGTH,\n Message: Message,\n MessageAccountKeys: MessageAccountKeys,\n MessageV0: MessageV0,\n NONCE_ACCOUNT_LENGTH: NONCE_ACCOUNT_LENGTH,\n NonceAccount: NonceAccount,\n PACKET_DATA_SIZE: PACKET_DATA_SIZE,\n PUBLIC_KEY_LENGTH: PUBLIC_KEY_LENGTH,\n PublicKey: PublicKey,\n SIGNATURE_LENGTH_IN_BYTES: SIGNATURE_LENGTH_IN_BYTES,\n SOLANA_SCHEMA: SOLANA_SCHEMA,\n STAKE_CONFIG_ID: STAKE_CONFIG_ID,\n STAKE_INSTRUCTION_LAYOUTS: STAKE_INSTRUCTION_LAYOUTS,\n SYSTEM_INSTRUCTION_LAYOUTS: SYSTEM_INSTRUCTION_LAYOUTS,\n SYSVAR_CLOCK_PUBKEY: SYSVAR_CLOCK_PUBKEY,\n SYSVAR_EPOCH_SCHEDULE_PUBKEY: SYSVAR_EPOCH_SCHEDULE_PUBKEY,\n SYSVAR_INSTRUCTIONS_PUBKEY: SYSVAR_INSTRUCTIONS_PUBKEY,\n SYSVAR_RECENT_BLOCKHASHES_PUBKEY: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n SYSVAR_RENT_PUBKEY: SYSVAR_RENT_PUBKEY,\n SYSVAR_REWARDS_PUBKEY: SYSVAR_REWARDS_PUBKEY,\n SYSVAR_SLOT_HASHES_PUBKEY: SYSVAR_SLOT_HASHES_PUBKEY,\n SYSVAR_SLOT_HISTORY_PUBKEY: SYSVAR_SLOT_HISTORY_PUBKEY,\n SYSVAR_STAKE_HISTORY_PUBKEY: SYSVAR_STAKE_HISTORY_PUBKEY,\n Secp256k1Program: Secp256k1Program,\n SendTransactionError: SendTransactionError,\n SolanaJSONRPCError: SolanaJSONRPCError,\n SolanaJSONRPCErrorCode: SolanaJSONRPCErrorCode,\n StakeAuthorizationLayout: StakeAuthorizationLayout,\n StakeInstruction: StakeInstruction,\n StakeProgram: StakeProgram,\n Struct: Struct,\n SystemInstruction: SystemInstruction,\n SystemProgram: SystemProgram,\n Transaction: Transaction,\n TransactionExpiredBlockheightExceededError: TransactionExpiredBlockheightExceededError,\n TransactionExpiredNonceInvalidError: TransactionExpiredNonceInvalidError,\n TransactionExpiredTimeoutError: TransactionExpiredTimeoutError,\n TransactionInstruction: TransactionInstruction,\n TransactionMessage: TransactionMessage,\n TransactionStatus: TransactionStatus,\n VALIDATOR_INFO_KEY: VALIDATOR_INFO_KEY,\n VERSION_PREFIX_MASK: VERSION_PREFIX_MASK,\n VOTE_PROGRAM_ID: VOTE_PROGRAM_ID,\n ValidatorInfo: ValidatorInfo,\n VersionedMessage: VersionedMessage,\n VersionedTransaction: VersionedTransaction,\n VoteAccount: VoteAccount,\n VoteAuthorizationLayout: VoteAuthorizationLayout,\n VoteInit: VoteInit,\n VoteInstruction: VoteInstruction,\n VoteProgram: VoteProgram,\n clusterApiUrl: clusterApiUrl,\n sendAndConfirmRawTransaction: sendAndConfirmRawTransaction,\n sendAndConfirmTransaction: sendAndConfirmTransaction\n});\nvar require$$1 = /*@__PURE__*/getAugmentedNamespace(index_browser_esm);\nvar cjs = {};\nObject.defineProperty(cjs, '__esModule', {\n value: true\n}); // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\n\nvar SolanaMobileWalletAdapterErrorCode = {\n ERROR_ASSOCIATION_PORT_OUT_OF_RANGE: 'ERROR_ASSOCIATION_PORT_OUT_OF_RANGE',\n ERROR_FORBIDDEN_WALLET_BASE_URL: 'ERROR_FORBIDDEN_WALLET_BASE_URL',\n ERROR_SECURE_CONTEXT_REQUIRED: 'ERROR_SECURE_CONTEXT_REQUIRED',\n ERROR_SESSION_CLOSED: 'ERROR_SESSION_CLOSED',\n ERROR_SESSION_TIMEOUT: 'ERROR_SESSION_TIMEOUT',\n ERROR_WALLET_NOT_FOUND: 'ERROR_WALLET_NOT_FOUND'\n};\n\nvar SolanaMobileWalletAdapterError = /*#__PURE__*/function (_Error) {\n _inherits(SolanaMobileWalletAdapterError, _Error);\n\n var _super = _createSuper(SolanaMobileWalletAdapterError);\n\n function SolanaMobileWalletAdapterError() {\n var _this;\n\n _classCallCheck(this, SolanaMobileWalletAdapterError);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var code = args[0],\n message = args[1],\n data = args[2];\n _this = _super.call(this, message);\n _this.code = code;\n _this.data = data;\n _this.name = 'SolanaMobileWalletAdapterError';\n return _this;\n }\n\n return _createClass(SolanaMobileWalletAdapterError);\n}( /*#__PURE__*/_wrapNativeSuper(Error)); // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\n\n\nvar SolanaMobileWalletAdapterProtocolErrorCode = {\n // Keep these in sync with `mobilewalletadapter/common/ProtocolContract.java`.\n ERROR_AUTHORIZATION_FAILED: -1,\n ERROR_INVALID_PAYLOADS: -2,\n ERROR_NOT_SIGNED: -3,\n ERROR_NOT_SUBMITTED: -4,\n ERROR_TOO_MANY_PAYLOADS: -5,\n ERROR_ATTEST_ORIGIN_ANDROID: -100\n};\n\nvar SolanaMobileWalletAdapterProtocolError = /*#__PURE__*/function (_Error2) {\n _inherits(SolanaMobileWalletAdapterProtocolError, _Error2);\n\n var _super2 = _createSuper(SolanaMobileWalletAdapterProtocolError);\n\n function SolanaMobileWalletAdapterProtocolError() {\n var _this2;\n\n _classCallCheck(this, SolanaMobileWalletAdapterProtocolError);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var jsonRpcMessageId = args[0],\n code = args[1],\n message = args[2],\n data = args[3];\n _this2 = _super2.call(this, message);\n _this2.code = code;\n _this2.data = data;\n _this2.jsonRpcMessageId = jsonRpcMessageId;\n _this2.name = 'SolanaMobileWalletAdapterProtocolError';\n return _this2;\n }\n\n return _createClass(SolanaMobileWalletAdapterProtocolError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\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***************************************************************************** */\n\n\nfunction __awaiter$1(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction createHelloReq(ecdhPublicKey, associationKeypairPrivateKey) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var publicKeyBuffer, signatureBuffer, response;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return crypto.subtle.exportKey('raw', ecdhPublicKey);\n\n case 2:\n publicKeyBuffer = _context.sent;\n _context.next = 5;\n return crypto.subtle.sign({\n hash: 'SHA-256',\n name: 'ECDSA'\n }, associationKeypairPrivateKey, publicKeyBuffer);\n\n case 5:\n signatureBuffer = _context.sent;\n response = new Uint8Array(publicKeyBuffer.byteLength + signatureBuffer.byteLength);\n response.set(new Uint8Array(publicKeyBuffer), 0);\n response.set(new Uint8Array(signatureBuffer), publicKeyBuffer.byteLength);\n return _context.abrupt(\"return\", response);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n}\n\nvar SEQUENCE_NUMBER_BYTES = 4;\n\nfunction createSequenceNumberVector(sequenceNumber) {\n if (sequenceNumber >= 4294967296) {\n throw new Error('Outbound sequence number overflow. The maximum sequence number is 32-bytes.');\n }\n\n var byteArray = new ArrayBuffer(SEQUENCE_NUMBER_BYTES);\n var view = new DataView(byteArray);\n view.setUint32(0, sequenceNumber,\n /* littleEndian */\n false);\n return new Uint8Array(byteArray);\n}\n\nfunction generateAssociationKeypair() {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return crypto.subtle.generateKey({\n name: 'ECDSA',\n namedCurve: 'P-256'\n }, false\n /* extractable */\n , ['sign']\n /* keyUsages */\n );\n\n case 2:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n}\n\nfunction generateECDHKeypair() {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return crypto.subtle.generateKey({\n name: 'ECDH',\n namedCurve: 'P-256'\n }, false\n /* extractable */\n , ['deriveKey', 'deriveBits']\n /* keyUsages */\n );\n\n case 2:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n}\n\nvar INITIALIZATION_VECTOR_BYTES = 12;\n\nfunction encryptJsonRpcMessage(jsonRpcMessage, sharedSecret) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var plaintext, sequenceNumberVector, initializationVector, ciphertext, response;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n plaintext = JSON.stringify(jsonRpcMessage);\n sequenceNumberVector = createSequenceNumberVector(jsonRpcMessage.id);\n initializationVector = new Uint8Array(INITIALIZATION_VECTOR_BYTES);\n crypto.getRandomValues(initializationVector);\n _context4.next = 6;\n return crypto.subtle.encrypt(getAlgorithmParams(sequenceNumberVector, initializationVector), sharedSecret, new TextEncoder().encode(plaintext));\n\n case 6:\n ciphertext = _context4.sent;\n response = new Uint8Array(sequenceNumberVector.byteLength + initializationVector.byteLength + ciphertext.byteLength);\n response.set(new Uint8Array(sequenceNumberVector), 0);\n response.set(new Uint8Array(initializationVector), sequenceNumberVector.byteLength);\n response.set(new Uint8Array(ciphertext), sequenceNumberVector.byteLength + initializationVector.byteLength);\n return _context4.abrupt(\"return\", response);\n\n case 12:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n}\n\nfunction decryptJsonRpcMessage(message, sharedSecret) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var sequenceNumberVector, initializationVector, ciphertext, plaintextBuffer, plaintext, jsonRpcMessage;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n sequenceNumberVector = message.slice(0, SEQUENCE_NUMBER_BYTES);\n initializationVector = message.slice(SEQUENCE_NUMBER_BYTES, SEQUENCE_NUMBER_BYTES + INITIALIZATION_VECTOR_BYTES);\n ciphertext = message.slice(SEQUENCE_NUMBER_BYTES + INITIALIZATION_VECTOR_BYTES);\n _context5.next = 5;\n return crypto.subtle.decrypt(getAlgorithmParams(sequenceNumberVector, initializationVector), sharedSecret, ciphertext);\n\n case 5:\n plaintextBuffer = _context5.sent;\n plaintext = getUtf8Decoder().decode(plaintextBuffer);\n jsonRpcMessage = JSON.parse(plaintext);\n\n if (!Object.hasOwnProperty.call(jsonRpcMessage, 'error')) {\n _context5.next = 10;\n break;\n }\n\n throw new SolanaMobileWalletAdapterProtocolError(jsonRpcMessage.id, jsonRpcMessage.error.code, jsonRpcMessage.error.message);\n\n case 10:\n return _context5.abrupt(\"return\", jsonRpcMessage);\n\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n}\n\nfunction getAlgorithmParams(sequenceNumber, initializationVector) {\n return {\n additionalData: sequenceNumber,\n iv: initializationVector,\n name: 'AES-GCM',\n tagLength: 128 // 16 byte tag => 128 bits\n\n };\n}\n\nvar _utf8Decoder;\n\nfunction getUtf8Decoder() {\n if (_utf8Decoder === undefined) {\n _utf8Decoder = new TextDecoder('utf-8');\n }\n\n return _utf8Decoder;\n}\n\nfunction parseHelloRsp(payloadBuffer, // The X9.62-encoded wallet endpoint ephemeral ECDH public keypoint.\nassociationPublicKey, ecdhPrivateKey) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _yield$Promise$all, _yield$Promise$all2, associationPublicKeyBuffer, walletPublicKey, sharedSecret, ecdhSecretKey, aesKeyMaterialVal;\n\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return Promise.all([crypto.subtle.exportKey('raw', associationPublicKey), crypto.subtle.importKey('raw', payloadBuffer, {\n name: 'ECDH',\n namedCurve: 'P-256'\n }, false\n /* extractable */\n , []\n /* keyUsages */\n )]);\n\n case 2:\n _yield$Promise$all = _context6.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n associationPublicKeyBuffer = _yield$Promise$all2[0];\n walletPublicKey = _yield$Promise$all2[1];\n _context6.next = 8;\n return crypto.subtle.deriveBits({\n name: 'ECDH',\n \"public\": walletPublicKey\n }, ecdhPrivateKey, 256);\n\n case 8:\n sharedSecret = _context6.sent;\n _context6.next = 11;\n return crypto.subtle.importKey('raw', sharedSecret, 'HKDF', false\n /* extractable */\n , ['deriveKey']\n /* keyUsages */\n );\n\n case 11:\n ecdhSecretKey = _context6.sent;\n _context6.next = 14;\n return crypto.subtle.deriveKey({\n name: 'HKDF',\n hash: 'SHA-256',\n salt: new Uint8Array(associationPublicKeyBuffer),\n info: new Uint8Array()\n }, ecdhSecretKey, {\n name: 'AES-GCM',\n length: 128\n }, false\n /* extractable */\n , ['encrypt', 'decrypt']);\n\n case 14:\n aesKeyMaterialVal = _context6.sent;\n return _context6.abrupt(\"return\", aesKeyMaterialVal);\n\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n}\n\nfunction getRandomAssociationPort() {\n return assertAssociationPort(49152 + Math.floor(Math.random() * (65535 - 49152 + 1)));\n}\n\nfunction assertAssociationPort(port) {\n if (port < 49152 || port > 65535) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_ASSOCIATION_PORT_OUT_OF_RANGE, \"Association port number must be between 49152 and 65535. \".concat(port, \" given.\"), {\n port: port\n });\n }\n\n return port;\n} // https://stackoverflow.com/a/9458996/802047\n\n\nfunction arrayBufferToBase64String(buffer) {\n var binary = '';\n var bytes = new Uint8Array(buffer);\n var len = bytes.byteLength;\n\n for (var ii = 0; ii < len; ii++) {\n binary += String.fromCharCode(bytes[ii]);\n }\n\n return window.btoa(binary);\n}\n\nfunction getStringWithURLUnsafeCharactersReplaced(unsafeBase64EncodedString) {\n return unsafeBase64EncodedString.replace(/[/+=]/g, function (m) {\n return {\n '/': '_',\n '+': '-',\n '=': '.'\n }[m];\n });\n}\n\nvar INTENT_NAME = 'solana-wallet';\n\nfunction getPathParts(pathString) {\n return pathString // Strip leading and trailing slashes\n .replace(/(^\\/+|\\/+$)/g, '') // Return an array of directories\n .split('/');\n}\n\nfunction getIntentURL(methodPathname, intentUrlBase) {\n var baseUrl = null;\n\n if (intentUrlBase) {\n try {\n baseUrl = new URL(intentUrlBase);\n } catch (_a) {} // eslint-disable-line no-empty\n\n\n if ((baseUrl === null || baseUrl === void 0 ? void 0 : baseUrl.protocol) !== 'https:') {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_FORBIDDEN_WALLET_BASE_URL, 'Base URLs supplied by wallets must be valid `https` URLs');\n }\n }\n\n baseUrl || (baseUrl = new URL(\"\".concat(INTENT_NAME, \":/\")));\n var pathname = methodPathname.startsWith('/') ? // Method is an absolute path. Replace it wholesale.\n methodPathname : // Method is a relative path. Merge it with the existing one.\n [].concat(_toConsumableArray(getPathParts(baseUrl.pathname)), _toConsumableArray(getPathParts(methodPathname))).join('/');\n return new URL(pathname, baseUrl);\n}\n\nfunction getAssociateAndroidIntentURL(associationPublicKey, putativePort, associationURLBase) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n var associationPort, exportedKey, encodedKey, url;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n associationPort = assertAssociationPort(putativePort);\n _context7.next = 3;\n return crypto.subtle.exportKey('raw', associationPublicKey);\n\n case 3:\n exportedKey = _context7.sent;\n encodedKey = arrayBufferToBase64String(exportedKey);\n url = getIntentURL('v1/associate/local', associationURLBase);\n url.searchParams.set('association', getStringWithURLUnsafeCharactersReplaced(encodedKey));\n url.searchParams.set('port', \"\".concat(associationPort));\n return _context7.abrupt(\"return\", url);\n\n case 9:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n} // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\n\n\nvar Browser = {\n Firefox: 0,\n Other: 1\n};\n\nfunction getBrowser() {\n return navigator.userAgent.indexOf('Firefox/') !== -1 ? Browser.Firefox : Browser.Other;\n}\n\nfunction getDetectionPromise() {\n // Chrome and others silently fail if a custom protocol is not supported.\n // For these, we wait to see if the browser is navigated away from in\n // a reasonable amount of time (ie. the native wallet opened).\n return new Promise(function (resolve, reject) {\n function cleanup() {\n clearTimeout(timeoutId);\n window.removeEventListener('blur', handleBlur);\n }\n\n function handleBlur() {\n cleanup();\n resolve();\n }\n\n window.addEventListener('blur', handleBlur);\n var timeoutId = setTimeout(function () {\n cleanup();\n reject();\n }, 2000);\n });\n}\n\nvar _frame = null;\n\nfunction launchUrlThroughHiddenFrame(url) {\n if (_frame == null) {\n _frame = document.createElement('iframe');\n _frame.style.display = 'none';\n document.body.appendChild(_frame);\n } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n\n _frame.contentWindow.location.href = url.toString();\n}\n\nfunction startSession(associationPublicKey, associationURLBase) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var randomAssociationPort, associationUrl, browser, detectionPromise;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n randomAssociationPort = getRandomAssociationPort();\n _context8.next = 3;\n return getAssociateAndroidIntentURL(associationPublicKey, randomAssociationPort, associationURLBase);\n\n case 3:\n associationUrl = _context8.sent;\n\n if (!(associationUrl.protocol === 'https:')) {\n _context8.next = 8;\n break;\n } // The association URL is an Android 'App Link' or iOS 'Universal Link'.\n // These are regular web URLs that are designed to launch an app if it\n // is installed or load the actual target webpage if not.\n\n\n window.location.assign(associationUrl);\n _context8.next = 26;\n break;\n\n case 8:\n _context8.prev = 8;\n browser = getBrowser();\n _context8.t0 = browser;\n _context8.next = _context8.t0 === Browser.Firefox ? 13 : _context8.t0 === Browser.Other ? 15 : 20;\n break;\n\n case 13:\n // If a custom protocol is not supported in Firefox, it throws.\n launchUrlThroughHiddenFrame(associationUrl); // If we reached this line, it's supported.\n\n return _context8.abrupt(\"break\", 21);\n\n case 15:\n detectionPromise = getDetectionPromise();\n window.location.assign(associationUrl);\n _context8.next = 19;\n return detectionPromise;\n\n case 19:\n return _context8.abrupt(\"break\", 21);\n\n case 20:\n case 21:\n _context8.next = 26;\n break;\n\n case 23:\n _context8.prev = 23;\n _context8.t1 = _context8[\"catch\"](8);\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_WALLET_NOT_FOUND, 'Found no installed wallet that supports the mobile wallet protocol.');\n\n case 26:\n return _context8.abrupt(\"return\", randomAssociationPort);\n\n case 27:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, null, [[8, 23]]);\n }));\n}\n\nvar WEBSOCKET_CONNECTION_CONFIG = {\n /**\n * 300 milliseconds is a generally accepted threshold for what someone\n * would consider an acceptable response time for a user interface\n * after having performed a low-attention tapping task. We set the initial\n * interval at which we wait for the wallet to set up the websocket at\n * half this, as per the Nyquist frequency, with a progressive backoff\n * sequence from there. The total wait time is 30s, which allows for the\n * user to be presented with a disambiguation dialog, select a wallet, and\n * for the wallet app to subsequently start.\n */\n retryDelayScheduleMs: [150, 150, 200, 500, 500, 750, 750, 1000],\n timeoutMs: 30000\n};\nvar WEBSOCKET_PROTOCOL = 'com.solana.mobilewalletadapter.v1';\n\nfunction assertSecureContext() {\n if (typeof window === 'undefined' || window.isSecureContext !== true) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_SECURE_CONTEXT_REQUIRED, 'The mobile wallet adapter protocol must be used in a secure context (`https`).');\n }\n}\n\nfunction assertSecureEndpointSpecificURI(walletUriBase) {\n var url;\n\n try {\n url = new URL(walletUriBase);\n } catch (_a) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_FORBIDDEN_WALLET_BASE_URL, 'Invalid base URL supplied by wallet');\n }\n\n if (url.protocol !== 'https:') {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_FORBIDDEN_WALLET_BASE_URL, 'Base URLs supplied by wallets must be valid `https` URLs');\n }\n}\n\nfunction getSequenceNumberFromByteArray(byteArray) {\n var view = new DataView(byteArray);\n return view.getUint32(0,\n /* littleEndian */\n false);\n}\n\nfunction transact$2(callback, config) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {\n var _this3 = this;\n\n var associationKeypair, sessionPort, websocketURL, connectionStartTime, getNextRetryDelayMs, nextJsonRpcMessageId, lastKnownInboundSequenceNumber, state;\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n assertSecureContext();\n _context13.next = 3;\n return generateAssociationKeypair();\n\n case 3:\n associationKeypair = _context13.sent;\n _context13.next = 6;\n return startSession(associationKeypair.publicKey, config === null || config === void 0 ? void 0 : config.baseUri);\n\n case 6:\n sessionPort = _context13.sent;\n websocketURL = \"ws://localhost:\".concat(sessionPort, \"/solana-wallet\");\n\n getNextRetryDelayMs = function () {\n var schedule = _toConsumableArray(WEBSOCKET_CONNECTION_CONFIG.retryDelayScheduleMs);\n\n return function () {\n return schedule.length > 1 ? schedule.shift() : schedule[0];\n };\n }();\n\n nextJsonRpcMessageId = 1;\n lastKnownInboundSequenceNumber = 0;\n state = {\n __type: 'disconnected'\n };\n return _context13.abrupt(\"return\", new Promise(function (resolve, reject) {\n var socket; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var jsonRpcResponsePromises = {};\n\n var handleOpen = function handleOpen() {\n return __awaiter$1(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n var _state, associationKeypair, ecdhKeypair;\n\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n if (!(state.__type !== 'connecting')) {\n _context9.next = 3;\n break;\n }\n\n console.warn('Expected adapter state to be `connecting` at the moment the websocket opens. ' + \"Got `\".concat(state.__type, \"`.\"));\n return _context9.abrupt(\"return\");\n\n case 3:\n _state = state, associationKeypair = _state.associationKeypair;\n socket.removeEventListener('open', handleOpen);\n _context9.next = 7;\n return generateECDHKeypair();\n\n case 7:\n ecdhKeypair = _context9.sent;\n _context9.t0 = socket;\n _context9.next = 11;\n return createHelloReq(ecdhKeypair.publicKey, associationKeypair.privateKey);\n\n case 11:\n _context9.t1 = _context9.sent;\n\n _context9.t0.send.call(_context9.t0, _context9.t1);\n\n state = {\n __type: 'hello_req_sent',\n associationPublicKey: associationKeypair.publicKey,\n ecdhPrivateKey: ecdhKeypair.privateKey\n };\n\n case 14:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n };\n\n var handleClose = function handleClose(evt) {\n if (evt.wasClean) {\n state = {\n __type: 'disconnected'\n };\n } else {\n reject(new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_SESSION_CLOSED, \"The wallet session dropped unexpectedly (\".concat(evt.code, \": \").concat(evt.reason, \").\"), {\n closeEvent: evt\n }));\n }\n\n disposeSocket();\n };\n\n var handleError = function handleError(_evt) {\n return __awaiter$1(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n disposeSocket();\n\n if (!(Date.now() - connectionStartTime >= WEBSOCKET_CONNECTION_CONFIG.timeoutMs)) {\n _context10.next = 5;\n break;\n }\n\n reject(new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_SESSION_TIMEOUT, \"Failed to connect to the wallet websocket on port \".concat(sessionPort, \".\")));\n _context10.next = 8;\n break;\n\n case 5:\n _context10.next = 7;\n return new Promise(function (resolve) {\n var retryDelayMs = getNextRetryDelayMs();\n retryWaitTimeoutId = window.setTimeout(resolve, retryDelayMs);\n });\n\n case 7:\n attemptSocketConnection();\n\n case 8:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n };\n\n var handleMessage = function handleMessage(evt) {\n return __awaiter$1(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {\n var responseBuffer, sequenceNumberVector, sequenceNumber, jsonRpcMessage, responsePromise, _responsePromise, sharedSecret, wallet;\n\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return evt.data.arrayBuffer();\n\n case 2:\n responseBuffer = _context12.sent;\n _context12.t0 = state.__type;\n _context12.next = _context12.t0 === 'connected' ? 6 : _context12.t0 === 'hello_req_sent' ? 30 : 51;\n break;\n\n case 6:\n _context12.prev = 6;\n sequenceNumberVector = responseBuffer.slice(0, SEQUENCE_NUMBER_BYTES);\n sequenceNumber = getSequenceNumberFromByteArray(sequenceNumberVector);\n\n if (!(sequenceNumber !== lastKnownInboundSequenceNumber + 1)) {\n _context12.next = 11;\n break;\n }\n\n throw new Error('Encrypted message has invalid sequence number');\n\n case 11:\n lastKnownInboundSequenceNumber = sequenceNumber;\n _context12.next = 14;\n return decryptJsonRpcMessage(responseBuffer, state.sharedSecret);\n\n case 14:\n jsonRpcMessage = _context12.sent;\n responsePromise = jsonRpcResponsePromises[jsonRpcMessage.id];\n delete jsonRpcResponsePromises[jsonRpcMessage.id];\n responsePromise.resolve(jsonRpcMessage.result);\n _context12.next = 29;\n break;\n\n case 20:\n _context12.prev = 20;\n _context12.t1 = _context12[\"catch\"](6);\n\n if (!(_context12.t1 instanceof SolanaMobileWalletAdapterProtocolError)) {\n _context12.next = 28;\n break;\n }\n\n _responsePromise = jsonRpcResponsePromises[_context12.t1.jsonRpcMessageId];\n delete jsonRpcResponsePromises[_context12.t1.jsonRpcMessageId];\n\n _responsePromise.reject(_context12.t1);\n\n _context12.next = 29;\n break;\n\n case 28:\n throw _context12.t1;\n\n case 29:\n return _context12.abrupt(\"break\", 51);\n\n case 30:\n _context12.next = 32;\n return parseHelloRsp(responseBuffer, state.associationPublicKey, state.ecdhPrivateKey);\n\n case 32:\n sharedSecret = _context12.sent;\n state = {\n __type: 'connected',\n sharedSecret: sharedSecret\n };\n wallet = new Proxy({}, {\n get: function get(target, p) {\n if (target[p] == null) {\n var method = p.toString().replace(/[A-Z]/g, function (letter) {\n return \"_\".concat(letter.toLowerCase());\n }).toLowerCase();\n\n target[p] = function (params) {\n return __awaiter$1(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {\n var id;\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n id = nextJsonRpcMessageId++;\n _context11.t0 = socket;\n _context11.next = 4;\n return encryptJsonRpcMessage({\n id: id,\n jsonrpc: '2.0',\n method: method,\n params: params !== null && params !== void 0 ? params : {}\n }, sharedSecret);\n\n case 4:\n _context11.t1 = _context11.sent;\n\n _context11.t0.send.call(_context11.t0, _context11.t1);\n\n return _context11.abrupt(\"return\", new Promise(function (_resolve, reject) {\n jsonRpcResponsePromises[id] = {\n resolve: function resolve(result) {\n switch (p) {\n case 'authorize':\n case 'reauthorize':\n {\n var wallet_uri_base = result.wallet_uri_base;\n\n if (wallet_uri_base != null) {\n try {\n assertSecureEndpointSpecificURI(wallet_uri_base);\n } catch (e) {\n reject(e);\n return;\n }\n }\n\n break;\n }\n }\n\n _resolve(result);\n },\n reject: reject\n };\n }));\n\n case 7:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n };\n }\n\n return target[p];\n },\n defineProperty: function defineProperty() {\n return false;\n },\n deleteProperty: function deleteProperty() {\n return false;\n }\n });\n _context12.prev = 35;\n _context12.t2 = resolve;\n _context12.next = 39;\n return callback(wallet);\n\n case 39:\n _context12.t3 = _context12.sent;\n (0, _context12.t2)(_context12.t3);\n _context12.next = 46;\n break;\n\n case 43:\n _context12.prev = 43;\n _context12.t4 = _context12[\"catch\"](35);\n reject(_context12.t4);\n\n case 46:\n _context12.prev = 46;\n disposeSocket();\n socket.close();\n return _context12.finish(46);\n\n case 50:\n return _context12.abrupt(\"break\", 51);\n\n case 51:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, null, [[6, 20], [35, 43, 46, 50]]);\n }));\n };\n\n var disposeSocket;\n var retryWaitTimeoutId;\n\n var attemptSocketConnection = function attemptSocketConnection() {\n if (disposeSocket) {\n disposeSocket();\n }\n\n state = {\n __type: 'connecting',\n associationKeypair: associationKeypair\n };\n\n if (connectionStartTime === undefined) {\n connectionStartTime = Date.now();\n }\n\n socket = new WebSocket(websocketURL, [WEBSOCKET_PROTOCOL]);\n socket.addEventListener('open', handleOpen);\n socket.addEventListener('close', handleClose);\n socket.addEventListener('error', handleError);\n socket.addEventListener('message', handleMessage);\n\n disposeSocket = function disposeSocket() {\n window.clearTimeout(retryWaitTimeoutId);\n socket.removeEventListener('open', handleOpen);\n socket.removeEventListener('close', handleClose);\n socket.removeEventListener('error', handleError);\n socket.removeEventListener('message', handleMessage);\n };\n };\n\n attemptSocketConnection();\n }));\n\n case 13:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n}\n\ncjs.SolanaMobileWalletAdapterError = SolanaMobileWalletAdapterError;\ncjs.SolanaMobileWalletAdapterErrorCode = SolanaMobileWalletAdapterErrorCode;\ncjs.SolanaMobileWalletAdapterProtocolError = SolanaMobileWalletAdapterProtocolError;\ncjs.SolanaMobileWalletAdapterProtocolErrorCode = SolanaMobileWalletAdapterProtocolErrorCode;\ncjs.transact = transact$2; // Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n\nfunction base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n\n var BASE_MAP = new Uint8Array(256);\n\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n\n BASE_MAP[xc] = i;\n }\n\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n\n function encode(source) {\n if (source instanceof Uint8Array) ;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\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n\n if (source.length === 0) {\n return '';\n } // Skip & count leading zeroes.\n\n\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n } // Allocate enough space in big-endian base58 representation.\n\n\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size); // Process the bytes.\n\n while (pbegin !== pend) {\n var carry = source[pbegin]; // Apply \"b58 = b58 * 256 + ch\".\n\n var i = 0;\n\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\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n\n length = i;\n pbegin++;\n } // Skip leading zeroes in base58 result.\n\n\n var it2 = size - length;\n\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n } // Translate the result into a string.\n\n\n var str = LEADER.repeat(zeroes);\n\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n\n return str;\n }\n\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n\n if (source.length === 0) {\n return new Uint8Array();\n }\n\n var psz = 0; // Skip and count leading '1's.\n\n var zeroes = 0;\n var length = 0;\n\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n } // Allocate enough space in big-endian base256 representation.\n\n\n var size = (source.length - psz) * FACTOR + 1 >>> 0; // log(58) / log(256), rounded up.\n\n var b256 = new Uint8Array(size); // Process the characters.\n\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]; // Invalid character\n\n if (carry === 255) {\n return;\n }\n\n var i = 0;\n\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\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n\n length = i;\n psz++;\n } // Skip leading zeroes in b256.\n\n\n var it4 = size - length;\n\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n\n return vch;\n }\n\n function decode(string) {\n var buffer = decodeUnsafe(string);\n\n if (buffer) {\n return buffer;\n }\n\n throw new Error('Non-base' + BASE + ' character');\n }\n\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\n\nvar src = base;\nvar basex = src;\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nvar bs58$2 = basex(ALPHABET);\nObject.defineProperty(cjs$1, '__esModule', {\n value: true\n});\nvar web3_js = require$$1;\nvar mobileWalletAdapterProtocol = cjs;\nvar bs58$1 = bs58$2;\n\nfunction _interopDefaultLegacy(e) {\n return e && _typeof$1(e) === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\n\nvar bs58__default = /*#__PURE__*/_interopDefaultLegacy(bs58$1);\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***************************************************************************** */\n\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") 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])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction fromUint8Array(byteArray) {\n var _String$fromCharCode;\n\n return window.btoa((_String$fromCharCode = String.fromCharCode).call.apply(_String$fromCharCode, [null].concat(_toConsumableArray(byteArray))));\n}\n\nfunction toUint8Array(base64EncodedByteArray) {\n return new Uint8Array(window.atob(base64EncodedByteArray).split('').map(function (c) {\n return c.charCodeAt(0);\n }));\n}\n\nfunction getPayloadFromTransaction(transaction) {\n var serializedTransaction = 'version' in transaction ? transaction.serialize() : transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false\n });\n var payload = fromUint8Array(serializedTransaction);\n return payload;\n}\n\nfunction getTransactionFromWireMessage(byteArray) {\n var numSignatures = byteArray[0];\n var messageOffset = numSignatures * web3_js.SIGNATURE_LENGTH_IN_BYTES + 1;\n var version = web3_js.VersionedMessage.deserializeMessageVersion(byteArray.slice(messageOffset, byteArray.length));\n\n if (version === 'legacy') {\n return web3_js.Transaction.from(byteArray);\n } else {\n return web3_js.VersionedTransaction.deserialize(byteArray);\n }\n}\n\nfunction transact$1(callback, config) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n var augmentedCallback;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n augmentedCallback = function augmentedCallback(wallet) {\n var augmentedAPI = new Proxy({}, {\n get: function get(target, p) {\n if (target[p] == null) {\n switch (p) {\n case 'signAndSendTransactions':\n target[p] = function (_a) {\n var minContextSlot = _a.minContextSlot,\n transactions = _a.transactions,\n rest = __rest(_a, [\"minContextSlot\", \"transactions\"]);\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var payloads, _yield$wallet$signAnd, base64EncodedSignatures, signatures;\n\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n payloads = transactions.map(getPayloadFromTransaction);\n _context.next = 3;\n return wallet.signAndSendTransactions(Object.assign(Object.assign(Object.assign({}, rest), minContextSlot != null ? {\n options: {\n min_context_slot: minContextSlot\n }\n } : null), {\n payloads: payloads\n }));\n\n case 3:\n _yield$wallet$signAnd = _context.sent;\n base64EncodedSignatures = _yield$wallet$signAnd.signatures;\n signatures = base64EncodedSignatures.map(toUint8Array).map(bs58__default[\"default\"].encode);\n return _context.abrupt(\"return\", signatures);\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n };\n\n break;\n\n case 'signMessages':\n target[p] = function (_a) {\n var payloads = _a.payloads,\n rest = __rest(_a, [\"payloads\"]);\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var base64EncodedPayloads, _yield$wallet$signMes, base64EncodedSignedMessages, signedMessages;\n\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n base64EncodedPayloads = payloads.map(fromUint8Array);\n _context2.next = 3;\n return wallet.signMessages(Object.assign(Object.assign({}, rest), {\n payloads: base64EncodedPayloads\n }));\n\n case 3:\n _yield$wallet$signMes = _context2.sent;\n base64EncodedSignedMessages = _yield$wallet$signMes.signed_payloads;\n signedMessages = base64EncodedSignedMessages.map(toUint8Array);\n return _context2.abrupt(\"return\", signedMessages);\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n };\n\n break;\n\n case 'signTransactions':\n target[p] = function (_a) {\n var transactions = _a.transactions,\n rest = __rest(_a, [\"transactions\"]);\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n var payloads, _yield$wallet$signTra, base64EncodedCompiledTransactions, compiledTransactions, signedTransactions;\n\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n payloads = transactions.map(getPayloadFromTransaction);\n _context3.next = 3;\n return wallet.signTransactions(Object.assign(Object.assign({}, rest), {\n payloads: payloads\n }));\n\n case 3:\n _yield$wallet$signTra = _context3.sent;\n base64EncodedCompiledTransactions = _yield$wallet$signTra.signed_payloads;\n compiledTransactions = base64EncodedCompiledTransactions.map(toUint8Array);\n signedTransactions = compiledTransactions.map(getTransactionFromWireMessage);\n return _context3.abrupt(\"return\", signedTransactions);\n\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n };\n\n break;\n\n default:\n {\n target[p] = wallet[p];\n break;\n }\n }\n }\n\n return target[p];\n },\n defineProperty: function defineProperty() {\n return false;\n },\n deleteProperty: function deleteProperty() {\n return false;\n }\n });\n return callback(augmentedAPI);\n };\n\n _context4.next = 3;\n return mobileWalletAdapterProtocol.transact(augmentedCallback, config);\n\n case 3:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n}\n\ncjs$1.transact = transact$1;\nvar Layout$1 = {};\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\n\nvar Layout = /*#__PURE__*/function () {\n function Layout(span, property) {\n _classCallCheck(this, Layout);\n\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n\n\n this.span = span;\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n\n this.property = property;\n }\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n\n\n _createClass(Layout, [{\n key: \"makeDestinationObject\",\n value: function makeDestinationObject() {\n return {};\n }\n /**\n * Decode from a Buffer into an JavaScript value.\n *\n * @param {Buffer} b - the buffer from which encoded data is read.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {(Number|Array|Object)} - the value of the decoded data.\n *\n * @abstract\n */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n throw new Error('Layout is abstract');\n }\n /**\n * Encode a JavaScript value into a Buffer.\n *\n * @param {(Number|Array|Object)} src - the value to be encoded into\n * the buffer. The type accepted depends on the (sub-)type of {@link\n * Layout}.\n *\n * @param {Buffer} b - the buffer into which encoded data will be\n * written.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {Number} - the number of bytes encoded, including the\n * space skipped for internal padding, but excluding data such as\n * {@link Sequence#count|lengths} when stored {@link\n * ExternalLayout|externally}. This is the adjustment to `offset`\n * producing the offset where data for the next layout would be\n * written.\n *\n * @abstract\n */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n throw new Error('Layout is abstract');\n }\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Buffer} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n\n }, {\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n\n return this.span;\n }\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n\n }, {\n key: \"replicate\",\n value: function replicate(property) {\n var rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n\n }, {\n key: \"fromArray\",\n value: function fromArray(values) {\n return undefined;\n }\n }]);\n\n return Layout;\n}();\n\nLayout$1.Layout = Layout;\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\n\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n\n return name;\n}\n\nLayout$1.nameWithProperty = nameWithProperty;\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\n\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n\n if (Class.hasOwnProperty('layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n\n if (!(layout && layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (layout.hasOwnProperty('boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n\n layout.makeDestinationObject = function () {\n return new Class();\n };\n\n Object.defineProperty(Class.prototype, 'encode', {\n value: function value(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true\n });\n Object.defineProperty(Class, 'decode', {\n value: function value(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true\n });\n}\n\nLayout$1.bindConstructorLayout = bindConstructorLayout;\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\n\nvar ExternalLayout = /*#__PURE__*/function (_Layout) {\n _inherits(ExternalLayout, _Layout);\n\n var _super = _createSuper(ExternalLayout);\n\n function ExternalLayout() {\n _classCallCheck(this, ExternalLayout);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ExternalLayout, [{\n key: \"isCount\",\n value:\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n function isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n }]);\n\n return ExternalLayout;\n}(Layout);\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\n\n\nvar GreedyCount = /*#__PURE__*/function (_ExternalLayout) {\n _inherits(GreedyCount, _ExternalLayout);\n\n var _super2 = _createSuper(GreedyCount);\n\n function GreedyCount(elementSpan, property) {\n var _this;\n\n _classCallCheck(this, GreedyCount);\n\n if (undefined === elementSpan) {\n elementSpan = 1;\n }\n\n if (!Number.isInteger(elementSpan) || 0 >= elementSpan) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n\n _this = _super2.call(this, -1, property);\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n\n _this.elementSpan = elementSpan;\n return _this;\n }\n /** @override */\n\n\n _createClass(GreedyCount, [{\n key: \"isCount\",\n value: function isCount() {\n return true;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n return 0;\n }\n }]);\n\n return GreedyCount;\n}(ExternalLayout);\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\n\n\nvar OffsetLayout = /*#__PURE__*/function (_ExternalLayout2) {\n _inherits(OffsetLayout, _ExternalLayout2);\n\n var _super3 = _createSuper(OffsetLayout);\n\n function OffsetLayout(layout, offset, property) {\n var _this2;\n\n _classCallCheck(this, OffsetLayout);\n\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (undefined === offset) {\n offset = 0;\n } else if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n\n _this2 = _super3.call(this, layout.span, property || layout.property);\n /** The subordinated layout. */\n\n _this2.layout = layout;\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Buffer\n * being accessed. */\n\n _this2.offset = offset;\n return _this2;\n }\n /** @override */\n\n\n _createClass(OffsetLayout, [{\n key: \"isCount\",\n value: function isCount() {\n return this.layout instanceof UInt || this.layout instanceof UIntBE;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return this.layout.decode(b, offset + this.offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return this.layout.encode(src, b, offset + this.offset);\n }\n }]);\n\n return OffsetLayout;\n}(ExternalLayout);\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar UInt = /*#__PURE__*/function (_Layout2) {\n _inherits(UInt, _Layout2);\n\n var _super4 = _createSuper(UInt);\n\n function UInt(span, property) {\n var _this3;\n\n _classCallCheck(this, UInt);\n\n _this3 = _super4.call(this, span, property);\n\n if (6 < _this3.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this3;\n }\n /** @override */\n\n\n _createClass(UInt, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readUIntLE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeUIntLE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return UInt;\n}(Layout);\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar UIntBE = /*#__PURE__*/function (_Layout3) {\n _inherits(UIntBE, _Layout3);\n\n var _super5 = _createSuper(UIntBE);\n\n function UIntBE(span, property) {\n var _this4;\n\n _classCallCheck(this, UIntBE);\n\n _this4 = _super5.call(this, span, property);\n\n if (6 < _this4.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this4;\n }\n /** @override */\n\n\n _createClass(UIntBE, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readUIntBE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeUIntBE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return UIntBE;\n}(Layout);\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Int = /*#__PURE__*/function (_Layout4) {\n _inherits(Int, _Layout4);\n\n var _super6 = _createSuper(Int);\n\n function Int(span, property) {\n var _this5;\n\n _classCallCheck(this, Int);\n\n _this5 = _super6.call(this, span, property);\n\n if (6 < _this5.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this5;\n }\n /** @override */\n\n\n _createClass(Int, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readIntLE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeIntLE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return Int;\n}(Layout);\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar IntBE = /*#__PURE__*/function (_Layout5) {\n _inherits(IntBE, _Layout5);\n\n var _super7 = _createSuper(IntBE);\n\n function IntBE(span, property) {\n var _this6;\n\n _classCallCheck(this, IntBE);\n\n _this6 = _super7.call(this, span, property);\n\n if (6 < _this6.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n\n return _this6;\n }\n /** @override */\n\n\n _createClass(IntBE, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readIntBE(offset, this.span);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeIntBE(src, offset, this.span);\n return this.span;\n }\n }]);\n\n return IntBE;\n}(Layout);\n\nvar V2E32 = Math.pow(2, 32);\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\n\nfunction divmodInt64(src) {\n var hi32 = Math.floor(src / V2E32);\n var lo32 = src - hi32 * V2E32;\n return {\n hi32: hi32,\n lo32: lo32\n };\n}\n/* Reconstruct Number from quotient and non-negative remainder */\n\n\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\n\nvar NearUInt64 = /*#__PURE__*/function (_Layout6) {\n _inherits(NearUInt64, _Layout6);\n\n var _super8 = _createSuper(NearUInt64);\n\n function NearUInt64(property) {\n _classCallCheck(this, NearUInt64);\n\n return _super8.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearUInt64, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var lo32 = b.readUInt32LE(offset);\n var hi32 = b.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n }]);\n\n return NearUInt64;\n}(Layout);\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\n\nvar NearUInt64BE = /*#__PURE__*/function (_Layout7) {\n _inherits(NearUInt64BE, _Layout7);\n\n var _super9 = _createSuper(NearUInt64BE);\n\n function NearUInt64BE(property) {\n _classCallCheck(this, NearUInt64BE);\n\n return _super9.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearUInt64BE, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var hi32 = b.readUInt32BE(offset);\n var lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var split = divmodInt64(src);\n b.writeUInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n }]);\n\n return NearUInt64BE;\n}(Layout);\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\n\nvar NearInt64 = /*#__PURE__*/function (_Layout8) {\n _inherits(NearInt64, _Layout8);\n\n var _super10 = _createSuper(NearInt64);\n\n function NearInt64(property) {\n _classCallCheck(this, NearInt64);\n\n return _super10.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearInt64, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var lo32 = b.readUInt32LE(offset);\n var hi32 = b.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n }]);\n\n return NearInt64;\n}(Layout);\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\n\n\nvar NearInt64BE = /*#__PURE__*/function (_Layout9) {\n _inherits(NearInt64BE, _Layout9);\n\n var _super11 = _createSuper(NearInt64BE);\n\n function NearInt64BE(property) {\n _classCallCheck(this, NearInt64BE);\n\n return _super11.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(NearInt64BE, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var hi32 = b.readInt32BE(offset);\n var lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var split = divmodInt64(src);\n b.writeInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n }]);\n\n return NearInt64BE;\n}(Layout);\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Float = /*#__PURE__*/function (_Layout10) {\n _inherits(Float, _Layout10);\n\n var _super12 = _createSuper(Float);\n\n function Float(property) {\n _classCallCheck(this, Float);\n\n return _super12.call(this, 4, property);\n }\n /** @override */\n\n\n _createClass(Float, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readFloatLE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeFloatLE(src, offset);\n return 4;\n }\n }]);\n\n return Float;\n}(Layout);\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar FloatBE = /*#__PURE__*/function (_Layout11) {\n _inherits(FloatBE, _Layout11);\n\n var _super13 = _createSuper(FloatBE);\n\n function FloatBE(property) {\n _classCallCheck(this, FloatBE);\n\n return _super13.call(this, 4, property);\n }\n /** @override */\n\n\n _createClass(FloatBE, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readFloatBE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeFloatBE(src, offset);\n return 4;\n }\n }]);\n\n return FloatBE;\n}(Layout);\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Double = /*#__PURE__*/function (_Layout12) {\n _inherits(Double, _Layout12);\n\n var _super14 = _createSuper(Double);\n\n function Double(property) {\n _classCallCheck(this, Double);\n\n return _super14.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(Double, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readDoubleLE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeDoubleLE(src, offset);\n return 8;\n }\n }]);\n\n return Double;\n}(Layout);\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar DoubleBE = /*#__PURE__*/function (_Layout13) {\n _inherits(DoubleBE, _Layout13);\n\n var _super15 = _createSuper(DoubleBE);\n\n function DoubleBE(property) {\n _classCallCheck(this, DoubleBE);\n\n return _super15.call(this, 8, property);\n }\n /** @override */\n\n\n _createClass(DoubleBE, [{\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.readDoubleBE(offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n b.writeDoubleBE(src, offset);\n return 8;\n }\n }]);\n\n return DoubleBE;\n}(Layout);\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Sequence = /*#__PURE__*/function (_Layout14) {\n _inherits(Sequence, _Layout14);\n\n var _super16 = _createSuper(Sequence);\n\n function Sequence(elementLayout, count, property) {\n var _this7;\n\n _classCallCheck(this, Sequence);\n\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n\n if (!(count instanceof ExternalLayout && count.isCount() || Number.isInteger(count) && 0 <= count)) {\n throw new TypeError('count must be non-negative integer ' + 'or an unsigned integer ExternalLayout');\n }\n\n var span = -1;\n\n if (!(count instanceof ExternalLayout) && 0 < elementLayout.span) {\n span = count * elementLayout.span;\n }\n\n _this7 = _super16.call(this, span, property);\n /** The layout for individual elements of the sequence. */\n\n _this7.elementLayout = elementLayout;\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n\n _this7.count = count;\n return _this7;\n }\n /** @override */\n\n\n _createClass(Sequence, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n\n if (undefined === offset) {\n offset = 0;\n }\n\n var span = 0;\n var count = this.count;\n\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n } else {\n var idx = 0;\n\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n\n return span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var rv = [];\n var i = 0;\n var count = this.count;\n\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n\n return rv;\n }\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var elo = this.elementLayout;\n var span = src.reduce(function (span, v) {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n\n return span;\n }\n }]);\n\n return Sequence;\n}(Layout);\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\n\n\nvar Structure = /*#__PURE__*/function (_Layout15) {\n _inherits(Structure, _Layout15);\n\n var _super17 = _createSuper(Structure);\n\n function Structure(fields, property, decodePrefixes) {\n var _this8;\n\n _classCallCheck(this, Structure);\n\n if (!(Array.isArray(fields) && fields.reduce(function (acc, v) {\n return acc && v instanceof Layout;\n }, true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n\n if ('boolean' === typeof property && undefined === decodePrefixes) {\n decodePrefixes = property;\n property = undefined;\n }\n /* Verify absence of unnamed variable-length fields. */\n\n\n var _iterator = _createForOfIteratorHelper(fields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var fd = _step.value;\n\n if (0 > fd.span && undefined === fd.property) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var span = -1;\n\n try {\n span = fields.reduce(function (span, fd) {\n return span + fd.getSpan();\n }, 0);\n } catch (e) {}\n\n _this8 = _super17.call(this, span, property);\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n\n _this8.fields = fields;\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n\n _this8.decodePrefixes = !!decodePrefixes;\n return _this8;\n }\n /** @override */\n\n\n _createClass(Structure, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n\n if (undefined === offset) {\n offset = 0;\n }\n\n var span = 0;\n\n try {\n span = this.fields.reduce(function (span, fd) {\n var fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n } catch (e) {\n throw new RangeError('indeterminate span');\n }\n\n return span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var dest = this.makeDestinationObject();\n\n var _iterator2 = _createForOfIteratorHelper(this.fields),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var fd = _step2.value;\n\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n\n offset += fd.getSpan(b, offset);\n\n if (this.decodePrefixes && b.length === offset) {\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var firstOffset = offset;\n var lastOffset = 0;\n var lastWrote = 0;\n\n var _iterator3 = _createForOfIteratorHelper(this.fields),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var fd = _step3.value;\n var span = fd.span;\n lastWrote = 0 < span ? span : 0;\n\n if (undefined !== fd.property) {\n var fv = src[fd.property];\n\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return lastOffset + lastWrote - firstOffset;\n }\n /** @override */\n\n }, {\n key: \"fromArray\",\n value: function fromArray(values) {\n var dest = this.makeDestinationObject();\n\n var _iterator4 = _createForOfIteratorHelper(this.fields),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var fd = _step4.value;\n\n if (undefined !== fd.property && 0 < values.length) {\n dest[fd.property] = values.shift();\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return dest;\n }\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n\n }, {\n key: \"layoutFor\",\n value: function layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n\n var _iterator5 = _createForOfIteratorHelper(this.fields),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var fd = _step5.value;\n\n if (fd.property === property) {\n return fd;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n\n }, {\n key: \"offsetOf\",\n value: function offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n\n var offset = 0;\n\n var _iterator6 = _createForOfIteratorHelper(this.fields),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var fd = _step6.value;\n\n if (fd.property === property) {\n return offset;\n }\n\n if (0 > fd.span) {\n offset = -1;\n } else if (0 <= offset) {\n offset += fd.span;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }]);\n\n return Structure;\n}(Layout);\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\n\n\nvar UnionDiscriminator = /*#__PURE__*/function () {\n function UnionDiscriminator(property) {\n _classCallCheck(this, UnionDiscriminator);\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n\n\n this.property = property;\n }\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n\n\n _createClass(UnionDiscriminator, [{\n key: \"decode\",\n value: function decode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n\n }, {\n key: \"encode\",\n value: function encode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n }]);\n\n return UnionDiscriminator;\n}();\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\n\n\nvar UnionLayoutDiscriminator = /*#__PURE__*/function (_UnionDiscriminator) {\n _inherits(UnionLayoutDiscriminator, _UnionDiscriminator);\n\n var _super18 = _createSuper(UnionLayoutDiscriminator);\n\n function UnionLayoutDiscriminator(layout, property) {\n var _this9;\n\n _classCallCheck(this, UnionLayoutDiscriminator);\n\n if (!(layout instanceof ExternalLayout && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n\n _this9 = _super18.call(this, property || layout.property || 'variant');\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n\n _this9.layout = layout;\n return _this9;\n }\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n\n\n _createClass(UnionLayoutDiscriminator, [{\n key: \"decode\",\n value: function decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n }]);\n\n return UnionLayoutDiscriminator;\n}(UnionDiscriminator);\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Union = /*#__PURE__*/function (_Layout16) {\n _inherits(Union, _Layout16);\n\n var _super19 = _createSuper(Union);\n\n function Union(discr, defaultLayout, property) {\n var _this10;\n\n _classCallCheck(this, Union);\n\n var upv = discr instanceof UInt || discr instanceof UIntBE;\n\n if (upv) {\n discr = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n } else if (discr instanceof ExternalLayout && discr.isCount()) {\n discr = new UnionLayoutDiscriminator(discr);\n } else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator ' + 'or an unsigned integer layout');\n }\n\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n\n if (!(null === defaultLayout || defaultLayout instanceof Layout)) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n\n\n var span = -1;\n\n if (defaultLayout) {\n span = defaultLayout.span;\n\n if (0 <= span && upv) {\n span += discr.layout.span;\n }\n }\n\n _this10 = _super19.call(this, span, property);\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n\n _this10.discriminator = discr;\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n\n _this10.usesPrefixDiscriminator = upv;\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n\n _this10.defaultLayout = defaultLayout;\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n\n _this10.registry = {};\n /* Private variable used when invoking getSourceVariant */\n\n var boundGetSourceVariant = _this10.defaultGetSourceVariant.bind(_assertThisInitialized(_this10));\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n\n\n _this10.getSourceVariant = function (src) {\n return boundGetSourceVariant(src);\n };\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n\n\n _this10.configGetSourceVariant = function (gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n\n return _this10;\n }\n /** @override */\n\n\n _createClass(Union, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n\n if (undefined === offset) {\n offset = 0;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n\n\n var vlo = this.getVariant(b, offset);\n\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n\n return vlo.getSpan(b, offset);\n }\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisified rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n\n }, {\n key: \"defaultGetSourceVariant\",\n value: function defaultGetSourceVariant(src) {\n if (src.hasOwnProperty(this.discriminator.property)) {\n if (this.defaultLayout && src.hasOwnProperty(this.defaultLayout.property)) {\n return undefined;\n }\n\n var vlo = this.registry[src[this.discriminator.property]];\n\n if (vlo && (!vlo.layout || src.hasOwnProperty(vlo.property))) {\n return vlo;\n }\n } else {\n for (var tag in this.registry) {\n var _vlo = this.registry[tag];\n\n if (src.hasOwnProperty(_vlo.property)) {\n return _vlo;\n }\n }\n }\n\n throw new Error('unable to infer src variant');\n }\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var dest;\n var dlo = this.discriminator;\n var discr = dlo.decode(b, offset);\n var clo = this.registry[discr];\n\n if (undefined === clo) {\n var contentOffset = 0;\n clo = this.defaultLayout;\n\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n dest[clo.property] = this.defaultLayout.decode(b, offset + contentOffset);\n } else {\n dest = clo.decode(b, offset);\n }\n\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var vlo = this.getSourceVariant(src);\n\n if (undefined === vlo) {\n var dlo = this.discriminator;\n var clo = this.defaultLayout;\n var contentOffset = 0;\n\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n\n dlo.encode(src[dlo.property], b, offset);\n return contentOffset + clo.encode(src[clo.property], b, offset + contentOffset);\n }\n\n return vlo.encode(src, b, offset);\n }\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n\n }, {\n key: \"addVariant\",\n value: function addVariant(variant, layout, property) {\n var rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Buffer)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Buffer}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n\n }, {\n key: \"getVariant\",\n value: function getVariant(vb, offset) {\n var variant = vb;\n\n if (Buffer$1.isBuffer(vb)) {\n if (undefined === offset) {\n offset = 0;\n }\n\n variant = this.discriminator.decode(vb, offset);\n }\n\n return this.registry[variant];\n }\n }]);\n\n return Union;\n}(Layout);\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\n\n\nvar VariantLayout = /*#__PURE__*/function (_Layout17) {\n _inherits(VariantLayout, _Layout17);\n\n var _super20 = _createSuper(VariantLayout);\n\n function VariantLayout(union, variant, layout, property) {\n var _this11;\n\n _classCallCheck(this, VariantLayout);\n\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n\n if (!Number.isInteger(variant) || 0 > variant) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n\n if ('string' === typeof layout && undefined === property) {\n property = layout;\n layout = null;\n }\n\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (null !== union.defaultLayout && 0 <= layout.span && layout.span > union.defaultLayout.span) {\n throw new Error('variant span exceeds span of containing union');\n }\n\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n\n var span = union.span;\n\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n\n if (0 <= span && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n\n _this11 = _super20.call(this, span, property);\n /** The {@link Union} to which this variant belongs. */\n\n _this11.union = union;\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n\n _this11.variant = variant;\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n\n _this11.layout = layout || null;\n return _this11;\n }\n /** @override */\n\n\n _createClass(VariantLayout, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n\n if (undefined === offset) {\n offset = 0;\n }\n\n var contentOffset = 0;\n\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n\n\n return contentOffset + this.layout.getSpan(b, offset + contentOffset);\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n var dest = this.makeDestinationObject();\n\n if (undefined === offset) {\n offset = 0;\n }\n\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n\n var contentOffset = 0;\n\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n } else if (this.property) {\n dest[this.property] = true;\n } else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n\n return dest;\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var contentOffset = 0;\n\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n\n if (this.layout && !src.hasOwnProperty(this.property)) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n\n this.union.discriminator.encode(this.variant, b, offset);\n var span = contentOffset;\n\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n\n if (0 <= this.union.span && span > this.union.span) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n\n return span;\n }\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n\n }, {\n key: \"fromArray\",\n value: function fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n }\n }]);\n\n return VariantLayout;\n}(Layout);\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\n\n\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n\n return v;\n}\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar BitStructure = /*#__PURE__*/function (_Layout18) {\n _inherits(BitStructure, _Layout18);\n\n var _super21 = _createSuper(BitStructure);\n\n function BitStructure(word, msb, property) {\n var _this12;\n\n _classCallCheck(this, BitStructure);\n\n if (!(word instanceof UInt || word instanceof UIntBE)) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n\n if ('string' === typeof msb && undefined === property) {\n property = msb;\n msb = undefined;\n }\n\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n\n _this12 = _super21.call(this, word.span, property);\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n\n _this12.word = word;\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n\n _this12.msb = !!msb;\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n\n _this12.fields = [];\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n\n var value = 0;\n\n _this12._packedSetValue = function (v) {\n value = fixBitwiseResult(v);\n return this;\n };\n\n _this12._packedGetValue = function () {\n return value;\n };\n\n return _this12;\n }\n /** @override */\n\n\n _createClass(BitStructure, [{\n key: \"decode\",\n value: function decode(b, offset) {\n var dest = this.makeDestinationObject();\n\n if (undefined === offset) {\n offset = 0;\n }\n\n var value = this.word.decode(b, offset);\n\n this._packedSetValue(value);\n\n var _iterator7 = _createForOfIteratorHelper(this.fields),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var fd = _step7.value;\n\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(value);\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var value = this.word.decode(b, offset);\n\n this._packedSetValue(value);\n\n var _iterator8 = _createForOfIteratorHelper(this.fields),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var fd = _step8.value;\n\n if (undefined !== fd.property) {\n var fv = src[fd.property];\n\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n\n }, {\n key: \"addField\",\n value: function addField(bits, property) {\n var bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n\n }, {\n key: \"addBoolean\",\n value: function addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n // eslint-disable-next-line no-new-wrappers\n var bf = new Boolean$1(this, property);\n this.fields.push(bf);\n return bf;\n }\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n\n }, {\n key: \"fieldFor\",\n value: function fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n\n var _iterator9 = _createForOfIteratorHelper(this.fields),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var fd = _step9.value;\n\n if (fd.property === property) {\n return fd;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n }\n }]);\n\n return BitStructure;\n}(Layout);\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\n\n\nvar BitField = /*#__PURE__*/function () {\n function BitField(container, bits, property) {\n _classCallCheck(this, BitField);\n\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n\n if (!Number.isInteger(bits) || 0 >= bits) {\n throw new TypeError('bits must be positive integer');\n }\n\n var totalBits = 8 * container.span;\n var usedBits = container.fields.reduce(function (sum, fd) {\n return sum + fd.bits;\n }, 0);\n\n if (bits + usedBits > totalBits) {\n throw new Error('bits too long for span remainder (' + (totalBits - usedBits) + ' of ' + totalBits + ' remain)');\n }\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n\n\n this.container = container;\n /** The span of this value in bits. */\n\n this.bits = bits;\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n\n this.valueMask = (1 << bits) - 1;\n\n if (32 === bits) {\n // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n\n\n this.start = usedBits;\n\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n\n\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n\n this.property = property;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n\n\n _createClass(BitField, [{\n key: \"decode\",\n value: function decode() {\n var word = this.container._packedGetValue();\n\n var wordValue = fixBitwiseResult(word & this.wordMask);\n var value = wordValue >>> this.start;\n return value;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n\n }, {\n key: \"encode\",\n value: function encode(value) {\n if (!Number.isInteger(value) || value !== fixBitwiseResult(value & this.valueMask)) {\n throw new TypeError(nameWithProperty('BitField.encode', this) + ' value must be integer not exceeding ' + this.valueMask);\n }\n\n var word = this.container._packedGetValue();\n\n var wordValue = fixBitwiseResult(value << this.start);\n\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask) | wordValue);\n }\n }]);\n\n return BitField;\n}();\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n\n/* eslint-disable no-extend-native */\n\n\nvar Boolean$1 = /*#__PURE__*/function (_BitField) {\n _inherits(Boolean, _BitField);\n\n var _super22 = _createSuper(Boolean);\n\n function Boolean(container, property) {\n _classCallCheck(this, Boolean);\n\n return _super22.call(this, container, 1, property);\n }\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n\n\n _createClass(Boolean, [{\n key: \"decode\",\n value: function decode(b, offset) {\n return !!BitField.prototype.decode.call(this, b, offset);\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n\n return BitField.prototype.encode.call(this, value);\n }\n }]);\n\n return Boolean;\n}(BitField);\n/* eslint-enable no-extend-native */\n\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Buffer.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Blob = /*#__PURE__*/function (_Layout19) {\n _inherits(Blob, _Layout19);\n\n var _super23 = _createSuper(Blob);\n\n function Blob(length, property) {\n var _this13;\n\n _classCallCheck(this, Blob);\n\n if (!(length instanceof ExternalLayout && length.isCount() || Number.isInteger(length) && 0 <= length)) {\n throw new TypeError('length must be positive integer ' + 'or an unsigned integer ExternalLayout');\n }\n\n var span = -1;\n\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n\n _this13 = _super23.call(this, span, property);\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n\n _this13.length = length;\n return _this13;\n }\n /** @override */\n\n\n _createClass(Blob, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n var span = this.span;\n\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n\n return span;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var span = this.span;\n\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n\n return b.slice(offset, offset + span);\n }\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n var span = this.length;\n\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n\n if (!(Buffer$1.isBuffer(src) && span === src.length)) {\n throw new TypeError(nameWithProperty('Blob.encode', this) + ' requires (length ' + span + ') Buffer as src');\n }\n\n if (offset + span > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n\n b.write(src.toString('hex'), offset, span, 'hex');\n\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n\n return span;\n }\n }]);\n\n return Blob;\n}(Layout);\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar CString = /*#__PURE__*/function (_Layout20) {\n _inherits(CString, _Layout20);\n\n var _super24 = _createSuper(CString);\n\n function CString(property) {\n _classCallCheck(this, CString);\n\n return _super24.call(this, -1, property);\n }\n /** @override */\n\n\n _createClass(CString, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (!Buffer$1.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n\n if (undefined === offset) {\n offset = 0;\n }\n\n var idx = offset;\n\n while (idx < b.length && 0 !== b[idx]) {\n idx += 1;\n }\n\n return 1 + idx - offset;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var span = this.getSpan(b, offset);\n return b.slice(offset, offset + span - 1).toString('utf-8');\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n\n\n if ('string' !== typeof src) {\n src = src.toString();\n }\n\n var srcb = new Buffer$1(src, 'utf8');\n var span = srcb.length;\n\n if (offset + span > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n\n srcb.copy(b, offset);\n b[offset + span] = 0;\n return span + 1;\n }\n }]);\n\n return CString;\n}(Layout);\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar UTF8 = /*#__PURE__*/function (_Layout21) {\n _inherits(UTF8, _Layout21);\n\n var _super25 = _createSuper(UTF8);\n\n function UTF8(maxSpan, property) {\n var _this14;\n\n _classCallCheck(this, UTF8);\n\n if ('string' === typeof maxSpan && undefined === property) {\n property = maxSpan;\n maxSpan = undefined;\n }\n\n if (undefined === maxSpan) {\n maxSpan = -1;\n } else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n\n _this14 = _super25.call(this, -1, property);\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n\n _this14.maxSpan = maxSpan;\n return _this14;\n }\n /** @override */\n\n\n _createClass(UTF8, [{\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n if (!Buffer$1.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n\n if (undefined === offset) {\n offset = 0;\n }\n\n return b.length - offset;\n }\n /** @override */\n\n }, {\n key: \"decode\",\n value: function decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n\n var span = this.getSpan(b, offset);\n\n if (0 <= this.maxSpan && this.maxSpan < span) {\n throw new RangeError('text length exceeds maxSpan');\n }\n\n return b.slice(offset, offset + span).toString('utf-8');\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n\n\n if ('string' !== typeof src) {\n src = src.toString();\n }\n\n var srcb = new Buffer$1(src, 'utf8');\n var span = srcb.length;\n\n if (0 <= this.maxSpan && this.maxSpan < span) {\n throw new RangeError('text length exceeds maxSpan');\n }\n\n if (offset + span > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n\n srcb.copy(b, offset);\n return span;\n }\n }]);\n\n return UTF8;\n}(Layout);\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\n\n\nvar Constant = /*#__PURE__*/function (_Layout22) {\n _inherits(Constant, _Layout22);\n\n var _super26 = _createSuper(Constant);\n\n function Constant(value, property) {\n var _this15;\n\n _classCallCheck(this, Constant);\n\n _this15 = _super26.call(this, 0, property);\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n\n _this15.value = value;\n return _this15;\n }\n /** @override */\n\n\n _createClass(Constant, [{\n key: \"decode\",\n value: function decode(b, offset, dest) {\n return this.value;\n }\n /** @override */\n\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n }]);\n\n return Constant;\n}(Layout);\n\nLayout$1.ExternalLayout = ExternalLayout;\nLayout$1.GreedyCount = GreedyCount;\nLayout$1.OffsetLayout = OffsetLayout;\nLayout$1.UInt = UInt;\nLayout$1.UIntBE = UIntBE;\nLayout$1.Int = Int;\nLayout$1.IntBE = IntBE;\nLayout$1.Float = Float;\nLayout$1.FloatBE = FloatBE;\nLayout$1.Double = Double;\nLayout$1.DoubleBE = DoubleBE;\nLayout$1.Sequence = Sequence;\nLayout$1.Structure = Structure;\nLayout$1.UnionDiscriminator = UnionDiscriminator;\nLayout$1.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\nLayout$1.Union = Union;\nLayout$1.VariantLayout = VariantLayout;\nLayout$1.BitStructure = BitStructure;\nLayout$1.BitField = BitField;\nLayout$1.Boolean = Boolean$1;\nLayout$1.Blob = Blob;\nLayout$1.CString = CString;\nLayout$1.UTF8 = UTF8;\nLayout$1.Constant = Constant;\n/** Factory for {@link GreedyCount}. */\n\nLayout$1.greedy = function (elementSpan, property) {\n return new GreedyCount(elementSpan, property);\n};\n/** Factory for {@link OffsetLayout}. */\n\n\nvar offset = Layout$1.offset = function (layout, offset, property) {\n return new OffsetLayout(layout, offset, property);\n};\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\n\n\nLayout$1.u8 = function (property) {\n return new UInt(1, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\n\n\nLayout$1.u16 = function (property) {\n return new UInt(2, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\n\n\nLayout$1.u24 = function (property) {\n return new UInt(3, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\n\n\nLayout$1.u32 = function (property) {\n return new UInt(4, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\n\n\nLayout$1.u40 = function (property) {\n return new UInt(5, property);\n};\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\n\n\nLayout$1.u48 = function (property) {\n return new UInt(6, property);\n};\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\n\n\nvar nu64 = Layout$1.nu64 = function (property) {\n return new NearUInt64(property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\n\n\nLayout$1.u16be = function (property) {\n return new UIntBE(2, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\n\n\nLayout$1.u24be = function (property) {\n return new UIntBE(3, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\n\n\nLayout$1.u32be = function (property) {\n return new UIntBE(4, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\n\n\nLayout$1.u40be = function (property) {\n return new UIntBE(5, property);\n};\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\n\n\nLayout$1.u48be = function (property) {\n return new UIntBE(6, property);\n};\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\n\n\nLayout$1.nu64be = function (property) {\n return new NearUInt64BE(property);\n};\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\n\n\nLayout$1.s8 = function (property) {\n return new Int(1, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\n\n\nLayout$1.s16 = function (property) {\n return new Int(2, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\n\n\nLayout$1.s24 = function (property) {\n return new Int(3, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\n\n\nLayout$1.s32 = function (property) {\n return new Int(4, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\n\n\nLayout$1.s40 = function (property) {\n return new Int(5, property);\n};\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\n\n\nLayout$1.s48 = function (property) {\n return new Int(6, property);\n};\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\n\n\nLayout$1.ns64 = function (property) {\n return new NearInt64(property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\n\n\nLayout$1.s16be = function (property) {\n return new IntBE(2, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\n\n\nLayout$1.s24be = function (property) {\n return new IntBE(3, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\n\n\nLayout$1.s32be = function (property) {\n return new IntBE(4, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\n\n\nLayout$1.s40be = function (property) {\n return new IntBE(5, property);\n};\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\n\n\nLayout$1.s48be = function (property) {\n return new IntBE(6, property);\n};\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\n\n\nLayout$1.ns64be = function (property) {\n return new NearInt64BE(property);\n};\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\n\n\nLayout$1.f32 = function (property) {\n return new Float(property);\n};\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\n\n\nLayout$1.f32be = function (property) {\n return new FloatBE(property);\n};\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\n\n\nLayout$1.f64 = function (property) {\n return new Double(property);\n};\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\n\n\nLayout$1.f64be = function (property) {\n return new DoubleBE(property);\n};\n/** Factory for {@link Structure} values. */\n\n\nLayout$1.struct = function (fields, property, decodePrefixes) {\n return new Structure(fields, property, decodePrefixes);\n};\n/** Factory for {@link BitStructure} values. */\n\n\nLayout$1.bits = function (word, msb, property) {\n return new BitStructure(word, msb, property);\n};\n/** Factory for {@link Sequence} values. */\n\n\nvar seq = Layout$1.seq = function (elementLayout, count, property) {\n return new Sequence(elementLayout, count, property);\n};\n/** Factory for {@link Union} values. */\n\n\nLayout$1.union = function (discr, defaultLayout, property) {\n return new Union(discr, defaultLayout, property);\n};\n/** Factory for {@link UnionLayoutDiscriminator} values. */\n\n\nLayout$1.unionLayoutDiscriminator = function (layout, property) {\n return new UnionLayoutDiscriminator(layout, property);\n};\n/** Factory for {@link Blob} values. */\n\n\nvar blob = Layout$1.blob = function (length, property) {\n return new Blob(length, property);\n};\n/** Factory for {@link CString} values. */\n\n\nLayout$1.cstr = function (property) {\n return new CString(property);\n};\n/** Factory for {@link UTF8} values. */\n\n\nLayout$1.utf8 = function (maxSpan, property) {\n return new UTF8(maxSpan, property);\n};\n/** Factory for {@link Constant} values. */\n\n\nLayout$1[\"const\"] = function (value, property) {\n return new Constant(value, property);\n};\n\nvar lib = {};\nvar bn = {\n exports: {}\n};\n\n(function (module) {\n (function (module, exports) {\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\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; // Reduction context\n\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\n if (_typeof$1(module) === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require$$1$1.Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && _typeof$1(num) === 'object' && 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$1(number) === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\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\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\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\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\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\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\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\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\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this._strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // '0' - '9'\n\n if (c >= 48 && c <= 57) {\n return c - 48; // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55; // '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\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\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\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\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\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\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\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\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n b = c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa; // '0' - '9'\n } else {\n b = c;\n }\n\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\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; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\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\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\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\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\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype._strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\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\n return this;\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\n\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 var zeros = [];\n var groupSizes = [];\n var groupBases = [];\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 = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\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\n if (off >= 26) {\n off -= 26;\n i--;\n }\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\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\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\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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\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\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\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 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 res[position++] = word & 0xff;\n\n if (position < res.length) {\n res[position++] = word >> 8 & 0xff;\n }\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\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 res[position--] = word & 0xff;\n\n if (position >= 0) {\n res[position--] = word >> 8 & 0xff;\n }\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\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\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\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 var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\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 w[bit] = num.words[off] >>> wbit & 0x01;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\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\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\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\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 }; // Or `num` with `this` in-place\n\n\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 }; // Or `num` with `this`\n\n\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 }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\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 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 }; // And `num` with `this`\n\n\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 }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\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 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 }; // Xor `num` with `this`\n\n\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 }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this._strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\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 }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\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(); // 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 } // a.length > b.length\n\n\n var a, b;\n\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\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\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\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // 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 }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\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 return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\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(); // -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 } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\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\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\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 } // Copy rest of the words\n\n\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 }; // Subtract `num` from `this`\n\n\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; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\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\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\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\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\n\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 out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\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 var carry = 0;\n var hncarry = 0;\n\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\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 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 hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\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\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 }; // Cooley-Tukey algorithm for FFT\n\n\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 }; // Multiply employing FFT\n\n\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 }; // In-place Multiplication\n\n\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 assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\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; // NOTE: lo is 27bit maximum\n\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 }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\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 res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\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 }; // 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\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\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 h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) ;else if (this.length > s) {\n this.length -= s;\n\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 var carry = 0;\n\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 } // Push carried bits as a mask\n\n\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 }; // Shift-left\n\n\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 }; // Shift-right\n\n\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 }; // Test if n bit is set\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\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 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\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 }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\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 } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\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 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\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\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(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\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\n this.negative = 1;\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\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\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\n if (diff.negative === 0) {\n a = diff;\n\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 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q._strip();\n }\n\n a._strip(); // Denormalize\n\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\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\n\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\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\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\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\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 }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\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 }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\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 assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\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 }; // WARNING: DEPRECATED\n\n\n BN.prototype.modn = function modn(num) {\n return this.modrn(num);\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var carry = 0;\n\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\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 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 } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\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 ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\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 }; // 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\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\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 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 ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\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\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 var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\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\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\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 }; // Invert number in the field F(num)\n\n\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 }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\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\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\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 if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n\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 var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\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 var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\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 var res = 0;\n\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 if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\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 // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\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 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\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(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\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\n prev >>>= 22;\n input.words[i - 10] = prev;\n\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; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\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 } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\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 num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\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\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\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, '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 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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\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 var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\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\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\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\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 var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\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\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\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\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 res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\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 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 // Montgomery method engine\n //\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 this.shift = this.m.bitLength();\n\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 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\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 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\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 })(module, commonjsGlobal);\n})(bn);\n\n(function (exports) {\n var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.map = exports.array = exports.rustEnum = exports.str = exports.vecU8 = exports.tagged = exports.vec = exports.bool = exports.option = exports.publicKey = exports.i128 = exports.u128 = exports.i64 = exports.u64 = exports.struct = exports.f64 = exports.f32 = exports.i32 = exports.u32 = exports.i16 = exports.u16 = exports.i8 = exports.u8 = void 0;\n var buffer_layout_1 = Layout$1;\n var web3_js_1 = require$$1;\n\n var bn_js_1 = __importDefault(bn.exports);\n\n var buffer_layout_2 = Layout$1;\n Object.defineProperty(exports, \"u8\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.u8;\n }\n });\n Object.defineProperty(exports, \"i8\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.s8;\n }\n });\n Object.defineProperty(exports, \"u16\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.u16;\n }\n });\n Object.defineProperty(exports, \"i16\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.s16;\n }\n });\n Object.defineProperty(exports, \"u32\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.u32;\n }\n });\n Object.defineProperty(exports, \"i32\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.s32;\n }\n });\n Object.defineProperty(exports, \"f32\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.f32;\n }\n });\n Object.defineProperty(exports, \"f64\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.f64;\n }\n });\n Object.defineProperty(exports, \"struct\", {\n enumerable: true,\n get: function get() {\n return buffer_layout_2.struct;\n }\n });\n\n var BNLayout = /*#__PURE__*/function (_buffer_layout_1$Layo) {\n _inherits(BNLayout, _buffer_layout_1$Layo);\n\n var _super = _createSuper(BNLayout);\n\n function BNLayout(span, signed, property) {\n var _this;\n\n _classCallCheck(this, BNLayout);\n\n _this = _super.call(this, span, property);\n _this.blob = buffer_layout_1.blob(span);\n _this.signed = signed;\n return _this;\n }\n\n _createClass(BNLayout, [{\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var num = new bn_js_1[\"default\"](this.blob.decode(b, offset), 10, 'le');\n\n if (this.signed) {\n return num.fromTwos(this.span * 8).clone();\n }\n\n return num;\n }\n }, {\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (this.signed) {\n src = src.toTwos(this.span * 8);\n }\n\n return this.blob.encode(src.toArrayLike(Buffer$1, 'le', this.span), b, offset);\n }\n }]);\n\n return BNLayout;\n }(buffer_layout_1.Layout);\n\n function u64(property) {\n return new BNLayout(8, false, property);\n }\n\n exports.u64 = u64;\n\n function i64(property) {\n return new BNLayout(8, true, property);\n }\n\n exports.i64 = i64;\n\n function u128(property) {\n return new BNLayout(16, false, property);\n }\n\n exports.u128 = u128;\n\n function i128(property) {\n return new BNLayout(16, true, property);\n }\n\n exports.i128 = i128;\n\n var WrappedLayout = /*#__PURE__*/function (_buffer_layout_1$Layo2) {\n _inherits(WrappedLayout, _buffer_layout_1$Layo2);\n\n var _super2 = _createSuper(WrappedLayout);\n\n function WrappedLayout(layout, decoder, encoder, property) {\n var _this2;\n\n _classCallCheck(this, WrappedLayout);\n\n _this2 = _super2.call(this, layout.span, property);\n _this2.layout = layout;\n _this2.decoder = decoder;\n _this2.encoder = encoder;\n return _this2;\n }\n\n _createClass(WrappedLayout, [{\n key: \"decode\",\n value: function decode(b, offset) {\n return this.decoder(this.layout.decode(b, offset));\n }\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n return this.layout.encode(this.encoder(src), b, offset);\n }\n }, {\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n return this.layout.getSpan(b, offset);\n }\n }]);\n\n return WrappedLayout;\n }(buffer_layout_1.Layout);\n\n function publicKey(property) {\n return new WrappedLayout(buffer_layout_1.blob(32), function (b) {\n return new web3_js_1.PublicKey(b);\n }, function (key) {\n return key.toBuffer();\n }, property);\n }\n\n exports.publicKey = publicKey;\n\n var OptionLayout = /*#__PURE__*/function (_buffer_layout_1$Layo3) {\n _inherits(OptionLayout, _buffer_layout_1$Layo3);\n\n var _super3 = _createSuper(OptionLayout);\n\n function OptionLayout(layout, property) {\n var _this3;\n\n _classCallCheck(this, OptionLayout);\n\n _this3 = _super3.call(this, -1, property);\n _this3.layout = layout;\n _this3.discriminator = buffer_layout_1.u8();\n return _this3;\n }\n\n _createClass(OptionLayout, [{\n key: \"encode\",\n value: function encode(src, b) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (src === null || src === undefined) {\n return this.discriminator.encode(0, b, offset);\n }\n\n this.discriminator.encode(1, b, offset);\n return this.layout.encode(src, b, offset + 1) + 1;\n }\n }, {\n key: \"decode\",\n value: function decode(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var discriminator = this.discriminator.decode(b, offset);\n\n if (discriminator === 0) {\n return null;\n } else if (discriminator === 1) {\n return this.layout.decode(b, offset + 1);\n }\n\n throw new Error('Invalid option ' + this.property);\n }\n }, {\n key: \"getSpan\",\n value: function getSpan(b) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var discriminator = this.discriminator.decode(b, offset);\n\n if (discriminator === 0) {\n return 1;\n } else if (discriminator === 1) {\n return this.layout.getSpan(b, offset + 1) + 1;\n }\n\n throw new Error('Invalid option ' + this.property);\n }\n }]);\n\n return OptionLayout;\n }(buffer_layout_1.Layout);\n\n function option(layout, property) {\n return new OptionLayout(layout, property);\n }\n\n exports.option = option;\n\n function bool(property) {\n return new WrappedLayout(buffer_layout_1.u8(), decodeBool, encodeBool, property);\n }\n\n exports.bool = bool;\n\n function decodeBool(value) {\n if (value === 0) {\n return false;\n } else if (value === 1) {\n return true;\n }\n\n throw new Error('Invalid bool: ' + value);\n }\n\n function encodeBool(value) {\n return value ? 1 : 0;\n }\n\n function vec(elementLayout, property) {\n var length = buffer_layout_1.u32('length');\n var layout = buffer_layout_1.struct([length, buffer_layout_1.seq(elementLayout, buffer_layout_1.offset(length, -length.span), 'values')]);\n return new WrappedLayout(layout, function (_ref) {\n var values = _ref.values;\n return values;\n }, function (values) {\n return {\n values: values\n };\n }, property);\n }\n\n exports.vec = vec;\n\n function tagged(tag, layout, property) {\n var wrappedLayout = buffer_layout_1.struct([u64('tag'), layout.replicate('data')]);\n\n function decodeTag(_ref2) {\n var receivedTag = _ref2.tag,\n data = _ref2.data;\n\n if (!receivedTag.eq(tag)) {\n throw new Error('Invalid tag, expected: ' + tag.toString('hex') + ', got: ' + receivedTag.toString('hex'));\n }\n\n return data;\n }\n\n return new WrappedLayout(wrappedLayout, decodeTag, function (data) {\n return {\n tag: tag,\n data: data\n };\n }, property);\n }\n\n exports.tagged = tagged;\n\n function vecU8(property) {\n var length = buffer_layout_1.u32('length');\n var layout = buffer_layout_1.struct([length, buffer_layout_1.blob(buffer_layout_1.offset(length, -length.span), 'data')]);\n return new WrappedLayout(layout, function (_ref3) {\n var data = _ref3.data;\n return data;\n }, function (data) {\n return {\n data: data\n };\n }, property);\n }\n\n exports.vecU8 = vecU8;\n\n function str(property) {\n return new WrappedLayout(vecU8(), function (data) {\n return data.toString('utf-8');\n }, function (s) {\n return Buffer$1.from(s, 'utf-8');\n }, property);\n }\n\n exports.str = str;\n\n function rustEnum(variants, property, discriminant) {\n var unionLayout = buffer_layout_1.union(discriminant !== null && discriminant !== void 0 ? discriminant : buffer_layout_1.u8(), property);\n variants.forEach(function (variant, index) {\n return unionLayout.addVariant(index, variant, variant.property);\n });\n return unionLayout;\n }\n\n exports.rustEnum = rustEnum;\n\n function array(elementLayout, length, property) {\n var layout = buffer_layout_1.struct([buffer_layout_1.seq(elementLayout, length, 'values')]);\n return new WrappedLayout(layout, function (_ref4) {\n var values = _ref4.values;\n return values;\n }, function (values) {\n return {\n values: values\n };\n }, property);\n }\n\n exports.array = array;\n\n var MapEntryLayout = /*#__PURE__*/function (_buffer_layout_1$Layo4) {\n _inherits(MapEntryLayout, _buffer_layout_1$Layo4);\n\n var _super4 = _createSuper(MapEntryLayout);\n\n function MapEntryLayout(keyLayout, valueLayout, property) {\n var _this4;\n\n _classCallCheck(this, MapEntryLayout);\n\n _this4 = _super4.call(this, keyLayout.span + valueLayout.span, property);\n _this4.keyLayout = keyLayout;\n _this4.valueLayout = valueLayout;\n return _this4;\n }\n\n _createClass(MapEntryLayout, [{\n key: \"decode\",\n value: function decode(b, offset) {\n offset = offset || 0;\n var key = this.keyLayout.decode(b, offset);\n var value = this.valueLayout.decode(b, offset + this.keyLayout.getSpan(b, offset));\n return [key, value];\n }\n }, {\n key: \"encode\",\n value: function encode(src, b, offset) {\n offset = offset || 0;\n var keyBytes = this.keyLayout.encode(src[0], b, offset);\n var valueBytes = this.valueLayout.encode(src[1], b, offset + keyBytes);\n return keyBytes + valueBytes;\n }\n }, {\n key: \"getSpan\",\n value: function getSpan(b, offset) {\n return this.keyLayout.getSpan(b, offset) + this.valueLayout.getSpan(b, offset);\n }\n }]);\n\n return MapEntryLayout;\n }(buffer_layout_1.Layout);\n\n function map(keyLayout, valueLayout, property) {\n var length = buffer_layout_1.u32('length');\n var layout = buffer_layout_1.struct([length, buffer_layout_1.seq(new MapEntryLayout(keyLayout, valueLayout), buffer_layout_1.offset(length, -length.span), 'values')]);\n return new WrappedLayout(layout, function (_ref5) {\n var values = _ref5.values;\n return new Map(values);\n }, function (values) {\n return {\n values: Array.from(values.entries())\n };\n }, property);\n }\n\n exports.map = map;\n})(lib);\n\nvar Web3MobileWallet = cjs$1.Web3MobileWallet;\nvar transact = cjs$1.transact;\nvar Buffer = require$$1$1.Buffer;\nvar BN = bn$1.exports;\nvar bs58 = bs58$2;\nvar ACCOUNT_LAYOUT = lib.struct([lib.publicKey('mint'), lib.publicKey('owner'), lib.u64('amount'), lib.u32('delegateOption'), lib.publicKey('delegate'), lib.u8('state'), lib.u32('isNativeOption'), lib.u64('isNative'), lib.u64('delegatedAmount'), lib.u32('closeAuthorityOption'), lib.publicKey('closeAuthority')]);\nvar array$1 = lib.array;\nvar bool = lib.bool;\nvar i128 = lib.i128;\nvar i16 = lib.i16;\nvar i32 = lib.i32;\nvar i64 = lib.i64;\nvar i8 = lib.i8;\nvar map = lib.map;\nvar option = lib.option;\nvar publicKey$1 = lib.publicKey;\nvar rustEnum = lib.rustEnum;\nvar str = lib.str;\nvar struct$1 = lib.struct;\nvar tagged = lib.tagged;\nvar u128 = lib.u128;\nvar u16$1 = lib.u16;\nvar u32$2 = lib.u32;\nvar u64$3 = lib.u64;\nvar u8$1 = lib.u8;\nvar vec = lib.vec;\nvar vecU8 = lib.vecU8;\nexport { ACCOUNT_LAYOUT, AddressLookupTableProgram, BN, Buffer, Connection, Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, TransactionInstruction, TransactionMessage, VersionedTransaction, Web3MobileWallet, array$1 as array, blob, bool, bs58, i128, i16, i32, i64, i8, map, nu64, offset, option, publicKey$1 as publicKey, rustEnum, seq, str, struct$1 as struct, tagged, transact, u128, u16$1 as u16, u32$2 as u32, u64$3 as u64, u8$1 as u8, vec, vecU8 };","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version); ///////////////////////////////\n\nfunction isHexable(value) {\n return !!value.toHexString;\n}\n\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n\n array.slice = function () {\n var args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n\n return array;\n}\n\nexport function isBytesLike(value) {\n return isHexString(value) && !(value.length % 2) || isBytes(value);\n}\n\nfunction isInteger(value) {\n return typeof value === \"number\" && value == value && value % 1 === 0;\n}\n\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n\n if (value.constructor === Uint8Array) {\n return true;\n }\n\n if (typeof value === \"string\") {\n return false;\n }\n\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n\n for (var i = 0; i < value.length; i++) {\n var v = value[i];\n\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof value === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n var result = [];\n\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n\n if (result.length === 0) {\n result.push(0);\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof value === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) {\n value = value.toHexString();\n }\n\n if (isHexString(value)) {\n var hex = value.substring(2);\n\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n var _result = [];\n\n for (var i = 0; i < hex.length; i += 2) {\n _result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(_result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n var objects = items.map(function (item) {\n return arrayify(item);\n });\n var length = objects.reduce(function (accum, item) {\n return accum + item.length;\n }, 0);\n var result = new Uint8Array(length);\n objects.reduce(function (offset, object) {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n var result = arrayify(value);\n\n if (result.length === 0) {\n return result;\n } // Find the first non-zero entry\n\n\n var start = 0;\n\n while (start < result.length && result[start] === 0) {\n start++;\n } // If we started with zeros, strip them\n\n\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n var 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\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n\n return true;\n}\nvar HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof value === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n var hex = \"\";\n\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof value === \"bigint\") {\n value = value.toString(16);\n\n if (value.length % 2) {\n return \"0x0\" + value;\n }\n\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof value === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) {\n return value.toHexString();\n }\n\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n return value.toLowerCase();\n }\n\n if (isBytes(value)) {\n var result = \"0x\";\n\n for (var i = 0; i < value.length; i++) {\n var v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n\n return result;\n }\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*/\n\nexport function hexDataLength(data) {\n if (typeof data !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || data.length % 2) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof data !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || data.length % 2) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n var result = \"0x\";\n items.forEach(function (item) {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n var trimmed = hexStripZeros(hexlify(value, {\n hexPad: \"left\"\n }));\n\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof value !== \"string\") {\n value = hexlify(value);\n }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n value = value.substring(2);\n var offset = 0;\n\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof value !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\nexport function splitSignature(signature) {\n var result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n var bytes = arrayify(signature); // Get the r, s and v\n\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 } 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 } else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n } // Allow a recid to be used as the v\n\n\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n } // Compute recoveryParam from v\n\n\n result.recoveryParam = 1 - result.v % 2; // Compute _vs from recoveryParam and s\n\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n\n result._vs = hexlify(bytes.slice(32, 64));\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; // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n\n if (result._vs != null) {\n var _vs2 = zeroPad(arrayify(result._vs), 32);\n\n result._vs = hexlify(_vs2); // Set or check the recid\n\n var recoveryParam = _vs2[0] >= 128 ? 1 : 0;\n\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n } // Set or check the s\n\n\n _vs2[0] &= 0x7f;\n var s = hexlify(_vs2);\n\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n } // Use recid and v to populate each other\n\n\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - result.v % 2;\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n var recId = result.v === 0 || result.v === 1 ? result.v : 1 - result.v % 2;\n\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n var vs = arrayify(result.s);\n\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n\n var _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n\n result._vs = hexZeroPad(result._vs, 32);\n } // Set or check the _vs\n\n\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\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([signature.r, signature.s, signature.recoveryParam ? \"0x1c\" : \"0x1b\"]));\n}","export var version = \"bytes/5.7.0\";","var logo$a = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0yOTkuMyAyMzcuNSA1MDAgMTIybDIwMC43IDExNS41LTczLjUgNDIuNkw1MDAgMjA4LjJsLTEyNy4xIDcxLjktNzMuNi00Mi42em00MDEuNCAxNDYtNzMuNS00Mi42LTEyNy4xIDczTDM3MyAzNDAuNGwtNzMuNSA0My4xdjg1LjdsMTI3LjEgNzN2MTQ1LjRsNzMuNSA0My4xIDczLjUtNDMuMVY1NDIuMWwxMjcuMS03M3YtODUuNnptMCAyMzIuMXYtODUuN2wtNzMuNSA0Mi42djg1LjdjLS4xLS42IDczLjUtNDIuNiA3My41LTQyLjZ6bTUxLjkgMjkuMy0xMjcuMSA3M3Y4NS43TDgyNi4xIDY4OFY0NTYuNGwtNzMuNSA0My4xdjE0NS40em0tNzMuNS0zMzQuNCA3My41IDQzLjF2ODUuN2w3My41LTQzLjF2LTg1LjdsLTczLjUtNDMuMS03My41IDQzLjF6TTQyNi41IDc0OS40djg1LjdsNzMuNSA0My4xIDczLjUtNDMuMXYtODUuN2wtNzMuNSA0Mi03My41LTQyek0yOTkuMyA2MTUuNmw3My41IDQzLjF2LTg2LjJMMjk5LjMgNTMwdjg1LjZ6bTEyNy4yLTMwNS4xIDczLjUgNDMuMSA3My41LTQzLjEtNzMuNS00Mi42YzAtLjUtNzMuNSA0Mi42LTczLjUgNDIuNnptLTE3OS4xIDQzLjEgNzMuNS00My4xLTczLjUtNDMuMS03My41IDQzLjF2ODUuN2w3My41IDQzLjF2LTg1Ljd6bTAgMTQ1LjQtNzMuNS00Mi42VjY4OGwyMDAuNyAxMTUuNXYtODUuN2wtMTI3LjEtNzNjLS4xLjEtLjEtMTQ1LjgtLjEtMTQ1Ljh6IiBmaWxsPSIjZjBiOTBiIi8+PC9zdmc+';\nvar currencyLogo$6 = \"https://assets.trustwalletapp.com/blockchains/smartchain/info/logo.png\";\nvar wrappedLogo$5 = \"https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c/logo.png\";\nvar bsc = {\n name: 'bsc',\n id: '0x38',\n networkId: '56',\n namespace: 'eip155',\n platform: 'evm',\n label: 'BNB Smart Chain',\n fullName: 'BNB Smart Chain Mainnet',\n logo: logo$a,\n logoBackgroundColor: '#000000',\n logoWhiteBackground: logo$a,\n currency: {\n name: 'BNB',\n symbol: 'BNB',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: currencyLogo$6\n },\n wrapped: {\n address: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\n logo: wrappedLogo$5\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d', '0x55d398326f99059fF775485246999027B3197955']\n },\n explorer: 'https://bscscan.com',\n explorerUrlFor: function explorerUrlFor(_ref) {\n var transaction = _ref.transaction,\n token = _ref.token,\n address = _ref.address;\n\n if (transaction) {\n return \"https://bscscan.com/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://bscscan.com/token/\".concat(token);\n }\n\n if (address) {\n return \"https://bscscan.com/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://binance.llamarpc.com', 'https://bsc-rpc.publicnode.com', 'https://bsc.rpc.blxrbdn.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"BNB\",\n \"name\": \"Binance Coin\",\n \"decimals\": 18,\n \"logo\": currencyLogo$6,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n \"symbol\": \"WBNB\",\n \"name\": \"Wrapped BNB\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/smartchain/assets/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x55d398326f99059fF775485246999027B3197955\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether USD\",\n \"decimals\": 18,\n \"logo\": \"https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x55d398326f99059fF775485246999027B3197955/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 18,\n \"logo\": \"https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x2170Ed0880ac9A755fd29B2688956BD959F933F8\",\n \"symbol\": \"ETH\",\n \"name\": \"Ethereum Token\",\n \"decimals\": 18,\n \"logo\": \"https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x2170Ed0880ac9A755fd29B2688956BD959F933F8/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82\",\n \"symbol\": \"Cake\",\n \"name\": \"PancakeSwap Token\",\n \"decimals\": 18,\n \"logo\": \"https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c\",\n \"symbol\": \"BTCB\",\n \"name\": \"BTCB Token\",\n \"decimals\": 18,\n \"logo\": \"https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xa0bEd124a09ac2Bd941b10349d8d224fe3c955eb\",\n \"symbol\": \"DEPAY\",\n \"name\": \"DePay\",\n \"decimals\": 18,\n \"logo\": \"https://depay.com/favicon.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 3000 // 3s\n\n};\nvar logo$9 = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlPi5zdDB7ZmlsbC1vcGFjaXR5Oi42MDJ9LnN0MCwuc3Qxe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01MTEuNCA3My4zdjMxNS41TDc3OCA1MDggNTExLjQgNzMuM3oiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNTExLjQgNzMuMyAyNDQuNyA1MDhsMjY2LjYtMTE5LjJWNzMuM3oiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTExLjQgNzEyLjN2MjE0LjVsMjY2LjgtMzY5LjEtMjY2LjggMTU0LjZ6Ii8+PHBhdGggY2xhc3M9InN0MSIgZD0iTTUxMS40IDkyNi43VjcxMi4zTDI0NC43IDU1Ny42bDI2Ni43IDM2OS4xeiIvPjxwYXRoIGQ9Ik01MTEuNCA2NjIuNyA3NzggNTA4IDUxMS40IDM4OC44djI3My45eiIgZmlsbD0iI2ZmZiIgZmlsbC1vcGFjaXR5PSIuMiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Im0yNDQuNyA1MDggMjY2LjYgMTU0LjdWMzg4LjhMMjQ0LjcgNTA4eiIvPjwvc3ZnPgo=';\nvar currencyLogo$5 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAADxdJREFUeJztXVtzFMcVplwuP8VVeYmf7HJ+RKqSl/AQP6X8H+yqXUEIjhMnQY5jO9oVCIzA5mowdzAYG4xAGAyWLC5G3IyDL8gOASUYKrarYGZWC7qi23b6692VV6uZ7e6ZnT3di07VV6JUaLfnnG+6z+lz+vScOXUoL6SzP52/2PtlQ9p7piHlLU2k3P2JJqcjkXLO8589/OdN/tPjvx8VEP8Wv+sp/J8O/A3+Fp+Bz8JnUj/XrPjIwjT7ybxm57fJlLsy2eR2cwPe4QZksYB/Nr4D34XvxHdTP/8DJ+k0e4S/lb9Jpr2WZJNzgRtjPDaDS4DvFmPgY8GYMDZq/dStNKQzv0qmnA1c6RkqgysQIoMxYqzU+qoLWZDO/jyZdl7lir1ObdwQZLiOseMZqPVonSTS7i+4AtsTTW6O2pDR4ebEs/Bnotar8dKw2Pk1n0I76Y0W16zgdOIZqfVsnCSbvaeEB2+AkWpCBEQS/Jmp9U4u3Fl6nIdWB6gNQgb+7NABtR1qLjxcejiZdhfxKXGA3AjUswHXAXQBnVDbpSbCPeO5fAr8hlrxpgE6gW6o7ROb5N96Z3l9ePZxgUcMXEd1NxssbMk8kWxyztEr2A5AV3XjGySb3acTSLYYoFjL4EF31PYLLXwaeyiZcltnp/woEJtIrdAltT21BEkR7tnuo1dgfQC6tCbRlGh1H02k3C5qpalg/bt3WdOGDPk4lACdct1S27eiLEgPPMbDmcvkylLAgiUOc/sm2LHuITavmX48KoBun1828DNqO/tKsiX7JF+zeqmVpIqPzg2xyckc++Sfw2ImoB6POtxe6Jra3tMEb75Nxv/Hmxk2MZGbIsCpz4bZn1d45OPSIQF0Tm13IViXbJn2i+i9NcYgRQIA+zsGyMelA6Fzap8AnqktDl8RO9r7WVFKCQAs3dJHPj4tcN2TRQcizrcs1Hv+NZf1D04GEqDj/JBwDqnHqYNCiFj7fYL8Jg+9AnTQfXmYlUo5AYAtbffIx6lNAm6L2hpfbO/atcO3dGsfy+VyUgIAL66yySEE3FzNto2R2ElYtrffkHbYd7fHWbkEEeDQyUHk6cnHrQkPtonV+CKla2FWDx6+nwQRAFi5K0s+bl3ANrGmkvP5fPoH1cFfX/fYyP2cNgG6Lg6z55a55OPXJgG3UVzGn2vbug98fvW+r/FlBADePtJPPn59iKKS6lYW5ad++8q4Vu+5G2h8FQIAr663JFlUAtiqqksBZ1Uj9UPp4neLHeb0TUQmwNEzg2xemv559OE2VsX4KE2ysXoXhpOJCgGAdXttShblAZtVpayMe5Zt1A+ji5fXZdj4uL/jF4YApy4NsxdaLXQIue2iGb/Ze4r6IcLg6rejUuPrEAB47yO7kkVTJIhyAsnG41rYylUVHQIAizdZlixqyh9DC2V8HGKkHrwuELffHZiUWz4kAVBEAueS+jl1EepAqo2ndLFW64guAYBNB2xMFjmdWsbHWXbqQesC0zMMGjcBgEVv2JYs4tDpT5BvzmDAoBWBxM2tH8a0jB+FAAe77EsWwaZKxkdLE9u2fPce65dbu4oEAFp32JYscnNK7WrQ14Z+sOpAMefwiLrjVy0CdF0cYguX2rU3ANtKCWBTdS9wqWcklPGjEgDYcdiuZBEaV1U0PtqbUQ9SB6/vyoY2fjUIALy81q5kUcUWduhxRz1AVcxvdthtb2aVT60JcOT0oKg4otaHKmBjX+OLA50GN2Esx+FT8mRPLQgAIO1MrQ91ArgZ31JytDqlHpwqXlrjsbExvZg/TgKcvDTM/rjcHocQtp45/ae9FuqBqeLr/6gle2pFAAChKLVeVAFbzyRAk3OBemAq2LhfPdlTSwIA6Y12JItg62nGR9tzyq7bqljY4rK+e5WrfCgJcPzskHBOqfUkJQC39bRW9+h9Tz0oFXx8Yahqxo+DAMCGfXY4hLB5SfjnrqQekAypjRntZA8FAU5/NixK0an1JQNsXrL+m1/4ceM7/WRPJcExsas3Rtn7nQNVJ8GBj82vHppWKBLrNStVAOrzqyWjPHzEWQGEbjBW81t9bPn2LNt9tF/UE1SLBMu2Ge4QcpsL4+MyJPLBVADi68HhcMmeUrnbP8kufDUyw8ggQBHoD7Dt4D3WyX2NqASAv/L7Fnr9VYK4CAs3YlEPpBLOfxk+2QP5wRlnZy7ztTnAUKUEKGLJpj72JnfmUFoehQTbDpldPQTb8/Xfe5Z6IEHA1BxWem+N8rdd/ib7EaAUq/dkxZoelgTYtaTWYxBwJR7y/8uoB+IHnMbB26sjY+M59uU1vr5/qj6FywhQxIodWfbOh/2ioZQOAZCzMLV6CLafU7hUkXww5Wjr8j/S7Sdo+3LxyojSGx+WAFN+wtY+tp1P7V0afsIbbxtaPcRtb2T1b+Mqj90flcf8t91x1v158PoeBwGKWLy5j23kfsIxBT/h5KfDoj8RtV7LIaqFTcwBfHUt+Eg35L//G2WnqxSyhSVAKdZwP+FgV2U/Yc9R85JFIieQwH25BgymCHTt9JPxiRy7ch3xe/QQrdoEKGLlzqzICgb5CQb2Je6ZU7g0mXogAmjR5mWnJ3uwB3Dp65nxu4kEKGIZ9xN2tN9jJy5OJ6txfYm57TEDGNPwCdm0otzJTLCzX+T31uMwfJwEmNpP2NLHNu2/y453/0gEw/oSe3MK16dTD2Sqf+/N78diN3qtCDDlMG7qY2v33mWHTg6Y1ZeY294YAhw7Ozi1P19L1IIA0/yEXdxpfMeQWUAQwJAlAClUtHOrdwL8fW3GpBPGnlFOIIDp8lh3dT19EwiAJe4PprWdKziBRoWBALaB1/JpEhsothMAdYJY8w3dDhZh4HkDBuIL7J7t+qDfWgKg57BRYV85uO0xA3SQD0SCl9ZkRP9eWwjwyrqM8bUABXQYkwySpU0xhb62Lcs6z5u7E4idPpUDIn8ypeOYSAYZkg5esTPLPr0yIu2+gd1CnA3QTcvGSYA0B6IY2TpfXNLQxo5a30BDyluKI2HPUA+kCHj/qNlDDl0WKsGxevd49LAxqvGxPM2XjBV+AJpNYp/DpJ1AURBiUkkYvP9i9S9yAnjTZX+DaffoJ+H9g7CGR1j3nEKDCIS12OLGd6HGwaRoQJSEmVYU+rfVHhu+/2MR6LWbo+JMQGUmO6Lo4kSIsDFMWKfSNRRLWWnJOdrPm3aAVBSFmlgWXt7sEQc4kB+QKRBv5Pb2e7ERAIUqssbROL629eDMMSzZbFiZeLEs3NSDISjhLpeh4Umx7ssaMiD+bpMUaOgQAE6b7DYxjAkdS7ouzoxScFUdtT7LMe1giIlHw/AmORn/g6AoFlWps0OdP7p7hiUA/AuVUi74A+gU4vf5KC2XOYkkBCg9Gmbq4VBMm0gRBwkqgGX7B1A+PO+ggpKgsO4vK+VhHXwBVAAFkQuhqqk3kE07HGry8XDU5FcStIWHl40Zo9LnwH9AXZ6MAHBCZUe8EaLiFLBsL2LVbjOrgWccDze5QQTeQpX27zj6tV3hJM4r6zPsg5Lpemr7lv9eRiIA5V4dCruR+wxuLz+jQYTpLWIwHQ8MqZ0P/Pb7MdYiuQMYpMLOI87vIcRU2ZrFUnPwhNp+A7arTb5xzLdFjOlNorCTpio4+o0zhSBOpc+EZy+LKJDD33lYLyNpYPXvNPg2ibKhTRzqA3QE9wUiHAzTtgXx/po9+jUJpreTD2wTlw8HzW4UCY/e7wpYmSCc1NmDRxQQpioJOQzTbxgLbBSZXwbMbxWLmDtsj8B/3RiteA8gMnr7QtYlItEjW3JMQMVWsflZwL1OPUgZEM6FFWwrI2dQWp+H4o3NB/S2kMuBo+zUepFB2ixaEMCSdvFf/Lvy+UGZIKpAW5hiNBDF+Cae+/MlgEq7eFsujMAWbdSegdXoEoZNKFmewAwoXhhRWAasuDIGTRuitI57kNrFK18ZA7Hp0qgPz4RvHhmVACZV90ihc2lUfhYwr3GEHxrS4XsIRiEAchQmVfdUgva1cRCbLo58sayKKG4CIOdvWnVPxZckzMWRYhYwsFAkCDpXxkYlgHHVPRUQ+upYQQDLLo/W7SkYhgAoOaN+Ti0CRLk8GpJIOQeoH0IVSOfeCagiqgYBUH1sYnVPILjtIhkf0pDOPM6diAHyh1EEpufxClVEYQmA4o9Gi66Mhc1gu8gEgCTT7iLqB9KBrIooDAGM7fUXRABus6oYH5JOs4e5M/EN9UNpsF+0gq8WAd4zuLrH9/m5rWCzqhEAkkw7c23YIi4CmTl0EI1KAFHdY9UVsW4Otqqq8UtIsJz+AdWBJhNRCYD0M/Vz6AA2isX4kPxS4JyjfkgdVKoikhHgrfctC/m4bao+9ZfLwpbMEwlDGkupoFIVUSUCtJ80v7qnDB5sE6vxi5Jsdp+2yR9AFdCoTxVREAEwaxjTy08JfN3nNqmJ8adIkHJb6R9cHbt9qoiCCIBOJNTj1QFsUVPjQ/ha8xCPNfdRP7wOcFmUjAC7j9hR3TNlfG4D2KLmBCiQ4JFEyu2iVoIqyquIyglgT3VPAVz3gSXetZJEq/tossm9TK4MRbSWVBGVEwDtXqjHpwqhc657UuMXZUF64DHuiPRSK0UVOLJdTgCcPKIelzrcXuic2u7TJNmSfdIWEhSriIoEsKm6BzqGrqnt7StgpS3LAc7to+MIqntMvM/HD9CtcW9+uWBdssUxxDk+dPGiHocSoFNT1nyZiIOmloWIJqMQ6tF6+7oi9gnEZpE9O4bmwc1Bh2RxfjUkv21sT+7AIHg1396NS5CksC2LSAnoqmaJnVqJSCWLeoLZJSEYophjeewpXUpBtYpN5WW1AnQSWyWPaQKGc7Y32lRtHJvhhQ7cxrp+64NElJw3OW3URqB76522qpVu2yw4vWLTMbTohne7I5/YqUfBIUZbTiWHMjx/ttAHNR8kwVn2fJOKeogYxGZOu/b5/FnJt6vJ9yyyI8tYZvhejF25LcusVBa0N0OPO5ObWWJsGKO0FdushBckRdDqFP1u0fSYsss5vluMgY8FY7IuYVMPgrbn6H2PCxBEJBHn9Tf8s4UHz78L3zmj5fqsmCG4DAk3YiWbvGfFvYgpdz888EJL/J7Chdkerk8XEP8Wv+vJzyo8EsHf8L/FZ+Czpi5YqjP5P2ey0rAsl+yGAAAAAElFTkSuQmCC\";\nvar wrappedLogo$4 = \"https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png\";\nvar ethereum = {\n name: 'ethereum',\n id: '0x1',\n networkId: '1',\n namespace: 'eip155',\n platform: 'evm',\n label: 'Ethereum',\n fullName: 'Ethereum Mainnet',\n logo: logo$9,\n logoBackgroundColor: '#5683ec',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgdGV4dC1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4PSIwIiB5PSIwIiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MXtmaWxsOiM4YzhjOGN9PC9zdHlsZT48cGF0aCBkPSJtNDk5LjggNzcuNS01LjUgMTl2NTU5LjFsNS41IDUuNSAyNTkuNy0xNTMuNUw0OTkuOCA3Ny41eiIgZmlsbD0iIzM0MzQzNCIvPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Im00OTkuOCA3Ny41LTI1OS4zIDQzMEw0OTkuOCA2NjFWNzcuNXoiLz48cGF0aCBkPSJtNDk5LjggNzEwLjMtMi45IDR2MTk5LjFsMi45IDkuMSAyNTkuNy0zNjUuOC0yNTkuNyAxNTMuNnoiIGZpbGw9IiMzYzNjM2IiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDk5LjggOTIyLjVWNzEwLjNMMjQwLjUgNTU2LjdsMjU5LjMgMzY1Ljh6Ii8+PHBhdGggZD0ibTQ5OS44IDY2MSAyNTkuNy0xNTMuNS0yNTkuNy0xMTcuOFY2NjF6IiBmaWxsPSIjMTQxNDE0Ii8+PHBhdGggZD0iTTI0MC41IDUwNy41IDQ5OS44IDY2MVYzODkuN0wyNDAuNSA1MDcuNXoiIGZpbGw9IiMzOTM5MzkiLz48L3N2Zz4K',\n currency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: currencyLogo$5\n },\n wrapped: {\n address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n logo: wrappedLogo$4,\n logoBackgroundColor: '#FFFFFF'\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', '0xdAC17F958D2ee523a2206206994597C13D831ec7']\n },\n explorer: 'https://etherscan.io',\n explorerUrlFor: function explorerUrlFor(_ref2) {\n var transaction = _ref2.transaction,\n token = _ref2.token,\n address = _ref2.address;\n\n if (transaction) {\n return \"https://etherscan.io/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://etherscan.io/token/\".concat(token);\n }\n\n if (address) {\n return \"https://etherscan.io/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://eth.llamarpc.com', 'https://ethereum.publicnode.com', 'https://eth.rpc.blxrbdn.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"ETH\",\n \"name\": \"Ether\",\n \"decimals\": 18,\n \"logo\": currencyLogo$5,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"name\": \"Wrapped Ether\",\n \"decimals\": 18,\n \"logo\": wrappedLogo$4,\n \"type\": \"20\"\n }, {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c\",\n \"symbol\": \"EUROC\",\n \"name\": \"EURO Coin\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/ethereum/assets/0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether USD\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x6B175474E89094C44Da98b954EedeAC495271d0F\",\n \"symbol\": \"DAI\",\n \"name\": \"Dai Stablecoin\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x853d955aCEf822Db058eb8505911ED77F175b99e\",\n \"symbol\": \"FRAX\",\n \"name\": \"Frax\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x853d955aCEf822Db058eb8505911ED77F175b99e/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x956F47F50A910163D8BF957Cf5846D573E7f87CA\",\n \"symbol\": \"FEI\",\n \"name\": \"Fei USD\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x956F47F50A910163D8BF957Cf5846D573E7f87CA/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\n \"symbol\": \"WBTC\",\n \"name\": \"Wrapped BTC\",\n \"decimals\": 8,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xa0bEd124a09ac2Bd941b10349d8d224fe3c955eb\",\n \"symbol\": \"DEPAY\",\n \"name\": \"DePay\",\n \"decimals\": 18,\n \"logo\": \"https://depay.com/favicon.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 12000 // 12s\n\n};\nvar logo$8 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik00NjcgMTM1LjVjMTgtOS4zIDQ1LjEtOS4zIDYzIDBsMTgzLjQgOTdjMTAuNyA2LjEgMTYuNiAxNCAxOCAyMy4zdjQ4Ni42YzAgOS4zLTYuMSAxOS4yLTE4IDI1LjJsLTE4My4yIDk3Yy0xOCA5LjMtNDUuMSA5LjMtNjMgMGwtMTgzLjMtOTdjLTExLjktNi4xLTE3LjItMTUuOS0xOC0yNS4yVjI1NS43Yy43LTguNyA2LjctMTcuMiAxNy4yLTIzLjNMNDY3IDEzNS41em0yMzUuOCAzODkuNy0xNzIuNiA5MC45Yy0xOCA5LjMtNDUuMSA5LjMtNjMgMGwtMTcxLjktOTAuM3YyMTQuNGwxNzEuOSA5MC4zYzEwIDUuMyAyMC42IDEwLjcgMzEuMiAxMS4zaC43YzEwIDAgMjAtNS4zIDMwLjUtMTBsMTc0LTkyLjMtLjgtMjE0LjN6TTIzNy4zIDczMS4xYzAgMTguNiAyIDMxLjIgNi43IDM5LjggMy4zIDcuMyA4LjcgMTIuNiAxOC42IDE5LjJsLjcuN2MyIDEuNCA0LjcgMi42IDcuMyA0LjdsMy4zIDIgMTAuNyA2LjEtMTQuNiAyNC42LTExLjMtNy4zLTItMS40Yy0zLjMtMi02LjEtNC04LjctNS4zLTI3LjktMTguNi0zNy44LTM5LjItMzcuOC04MS42di0xLjRoMjcuMXpNNDg1IDM5Ni40Yy0xLjQuNy0yLjYuNy00IDEuNGwtMTgzLjIgOTYuOWgtLjcuN2wxODMuMyA5N2MxLjQuNyAyLjYgMS40IDQgMS40bC0uMS0xOTYuN3ptMjkuMyAwdjE5Ny44YzEuNC0uNyAyLjYtLjcgNC0xLjRsMTgzLjMtOTdoLjctLjdsLTE4My4zLTk4LjJjLTEuNC0uNS0yLjgtMS4yLTQtMS4yem0xODguNS0xMDctMTY0LjcgODYuMyAxNjQuNyA4Ni40VjI4OS40em0tNDA3LjcgMHYxNzMuM2wxNjQuNy04Ni4zLTE2NC43LTg3em0yMjIuNS0xMjhjLTkuMy01LjMtMjYuNS01LjMtMzYuNiAwbC0xODMuMiA5N2gtLjcuN2wxODMuMyA5N2M5LjMgNS4zIDI2LjUgNS4zIDM2LjYgMGwxODMuMy05N2guNy0uN2wtMTgzLjQtOTd6bTIxMi41IDkuMyAxMS4zIDcuMyAyIDEuNGMzLjMgMiA2LjEgNCA4LjcgNS4zIDI3LjkgMTguNiAzNy44IDM5LjIgMzcuOCA4MS42djEuNGgtMjguN2MwLTE4LjYtMi0zMS4yLTYuNy0zOS44LTMuMy03LjMtOC43LTEyLjYtMTguNi0xOS4ybC0uNy0uN2MtMi0xLjQtNC43LTIuNi03LjMtNC43bC0zLjMtMi0xMC43LTYuMSAxNi4yLTI0LjV6IiBmaWxsPSIjZmZmIi8+PC9zdmc+';\nvar currencyLogo$4 = \"https://assets.trustwalletapp.com/blockchains/fantom/info/logo.png\";\nvar wrappedLogo$3 = \"https://assets.trustwalletapp.com/blockchains/fantom/assets/0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83/logo.png\";\nvar fantom = {\n name: 'fantom',\n id: '0xfa',\n networkId: '250',\n namespace: 'eip155',\n label: 'Fantom',\n fullName: 'Fantom Opera',\n logo: logo$8,\n logoBackgroundColor: '#226efb',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxjaXJjbGUgY3g9IjUwMCIgY3k9IjUwMCIgcj0iNDI1IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzE5NjlmZiIvPjxwYXRoIGQ9Ik00NzQuMSAyMTAuM2MxNC4zLTcuNCAzNS45LTcuNCA1MC4yIDBsMTQ1LjkgNzcuMmM4LjUgNC44IDEzLjIgMTEuMSAxNC4zIDE4LjV2Mzg3LjVjMCA3LjQtNC44IDE1LjMtMTQuMyAyMC4xbC0xNDUuOSA3Ny4yYy0xNC4zIDcuNC0zNS45IDcuNC01MC4yIDBsLTE0NS45LTc3LjJjLTkuNS00LjgtMTMuNy0xMi43LTE0LjMtMjAuMVYzMDZjLjUtNi45IDUuMy0xMy43IDEzLjctMTguNS4xIDAgMTQ2LjUtNzcuMiAxNDYuNS03Ny4yem0xODcuNyAzMTAuM0w1MjQuMyA1OTNjLTE0LjMgNy40LTM1LjkgNy40LTUwLjIgMGwtMTM2LjktNzEuOXYxNzAuN2wxMzYuOSA3MS45YzcuOSA0LjIgMTYuNCA4LjUgMjQuOCA5aC41YzcuOSAwIDE1LjktNC4yIDI0LjMtNy45bDEzOC41LTczLjVWNTIwLjZoLS40ek0yOTEuMiA2ODQuNWMwIDE0LjggMS42IDI0LjggNS4zIDMxLjcgMi42IDUuOCA2LjkgMTAgMTQuOCAxNS4zbC41LjVjMS42IDEuMSAzLjcgMi4xIDUuOCAzLjdsMi42IDEuNiA4LjUgNC44LTExLjYgMTkuNi05LTUuOC0xLjYtMS4xYy0yLjYtMS42LTQuOC0zLjItNi45LTQuMi0yMi4yLTE0LjgtMzAuMS0zMS4yLTMwLjEtNjV2LTEuMWgyMS43em0xOTcuMi0yNjYuNGMtMS4xLjUtMi4xLjUtMy4yIDEuMWwtMTQ1LjkgNzcuMmgtLjUuNWwxNDUuOSA3Ny4yYzEuMS41IDIuMSAxLjEgMy4yIDEuMVY0MTguMXptMjMuMiAwdjE1Ny41YzEuMS0uNSAyLjEtLjUgMy4yLTEuMWwxNDUuOS03Ny4yaC41LS41bC0xNDUuOS03OC4yYy0xLjEtLjUtMi4xLTEtMy4yLTF6TTY2MS44IDMzM2wtMTMxLjEgNjguNyAxMzEuMSA2OC43VjMzM3ptLTMyNC42IDB2MTM4bDEzMS4xLTY4LjdjMC0uMS0xMzEuMS02OS4zLTEzMS4xLTY5LjN6bTE3Ny4xLTEwMi4xYy03LjQtNC4yLTIxLjEtNC4yLTI5LjEgMGwtMTQ1LjkgNzcuMmgtLjUuNWwxNDUuOSA3Ny4yYzcuNCA0LjIgMjEuMSA0LjIgMjkuMSAwbDE0NS45LTc3LjJoLjUtLjVsLTE0NS45LTc3LjJ6bTE2OS4xIDcuNCA5IDUuOCAxLjYgMS4xYzIuNiAxLjYgNC44IDMuMiA2LjkgNC4yIDIyLjIgMTQuOCAzMC4xIDMxLjIgMzAuMSA2NXYxLjFoLTIyLjdjMC0xNC44LTEuNi0yNC44LTUuMy0zMS43LTIuNi01LjgtNi45LTEwLTE0LjgtMTUuM2wtLjUtLjVjLTEuNi0xLjEtMy43LTIuMS01LjgtMy43bC0yLjYtMS42LTguNS00LjggMTIuNi0xOS42eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==',\n currency: {\n name: 'Fantom',\n symbol: 'FTM',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: currencyLogo$4\n },\n wrapped: {\n address: '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83',\n logo: wrappedLogo$3\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x28a92dde19D9989F39A49905d7C9C2FAc7799bDf', '0x1B6382DBDEa11d97f24495C9A90b7c88469134a4']\n },\n explorer: 'https://ftmscan.com',\n explorerUrlFor: function explorerUrlFor(_ref3) {\n var transaction = _ref3.transaction,\n token = _ref3.token,\n address = _ref3.address;\n\n if (transaction) {\n return \"https://ftmscan.com/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://ftmscan.com/token/\".concat(token);\n }\n\n if (address) {\n return \"https://ftmscan.com/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://rpc.fantom.network', 'https://fantom.publicnode.com', 'https://rpc2.fantom.network'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"FTM\",\n \"name\": \"Fantom\",\n \"decimals\": 18,\n \"logo\": currencyLogo$4,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83\",\n \"symbol\": \"WFTM\",\n \"name\": \"Wrapped Fantom\",\n \"decimals\": 18,\n \"logo\": wrappedLogo$3,\n \"type\": \"20\"\n }, {\n \"address\": \"0x28a92dde19D9989F39A49905d7C9C2FAc7799bDf\",\n \"symbol\": \"lzUSDC\",\n \"name\": \"LayerZero USDC\",\n \"decimals\": 6,\n \"logo\": \"https://ftmscan.com/token/images/axlusdc_32.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x1B6382DBDEa11d97f24495C9A90b7c88469134a4\",\n \"symbol\": \"axlUSDC\",\n \"name\": \"Axelar Wrapped USDC\",\n \"decimals\": 6,\n \"logo\": \"https://ftmscan.com/token/images/axlusdc_32.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 1000 // 1s\n\n};\nvar logo$7 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0xMzEuNSA0NTkuM2MtMTQuNCA5LjYtMjQgMjQtMjQgNDMuMnYxOTQuNGMwIDE5LjIgOS42IDM2IDI0IDQzLjJsMTY1LjYgOTZjMTQuNCA5LjYgMzMuNiA5LjYgNDggMGwxNjUuNi05NmMxNC40LTkuNiAyNC0yNCAyNC00My4ydi02OS42bC03Ni44LTQzLjJ2NjQuOGMwIDE5LjItOS42IDM2LTI0IDQzLjJsLTg2LjQgNTIuOGMtMTQuNCA5LjYtMzMuNiA5LjYtNDggMGwtODYuNC01MC40Yy0xNC40LTkuNi0yNC0yNC0yNC00My4yVjU1MC41YzAtMTkuMiA5LjYtMzYgMjQtNDMuMmw4OC44LTUwLjRjMTQuNC05LjYgMzMuNi05LjYgNDggMGwxMTIuOCA2NC44IDc2LjggNDUuNiAxMTIuOCA2NC44YzE0LjQgOS42IDMzLjYgOS42IDQ4IDBsMTY4LTk2YzE0LjQtOS42IDI0LTI0IDI0LTQzLjJ2LTE5MmMwLTE0LjQtOS42LTMxLjItMjQtNDAuOGwtMTY4LTk2Yy0xNC40LTkuNi0zMy42LTkuNi00OCAwbC0xNjUuNiA5NmMtMTQuNCA5LjYtMjQgMjQtMjQgNDMuMnY2OS42bDc2LjggNDUuNnYtNjkuNmMwLTE5LjIgOS42LTM2IDI0LTQzLjJsODguOC01Mi44YzE0LjQtOS42IDMzLjYtOS42IDQ4IDBsODguOCA1MC40YzE0LjQgOS42IDI0IDI0IDI0IDQzLjJ2MTAwLjhjMCAxOS4yLTEyIDM2LTI0IDQzLjJsLTg4LjggNTIuOGMtMTQuNCA5LjYtMzMuNiA5LjYtNDggMGwtMTEyLjgtNjkuNi03OS4yLTQzLjItMTE3LjYtNjkuNmMtMTQuNC05LjYtMzMuNi05LjYtNDggMCAwIDIuNC0xNjAuOCA5OC40LTE2My4yIDk4LjR6IiBmaWxsPSIjZmZmIi8+PC9zdmc+';\nvar currencyLogo$3 = \"https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/polygon/info/logo.png\";\nvar wrappedLogo$2 = \"https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/polygon/assets/0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270/logo.png\";\nvar polygon = {\n name: 'polygon',\n id: '0x89',\n networkId: '137',\n namespace: 'eip155',\n label: 'Polygon (POS)',\n fullName: 'Polygon (POS) Mainnet',\n logo: logo$7,\n logoBackgroundColor: '#824ee2',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0xMDkuNyA0NTljLTE2LjQgOS40LTI1LjggMjUuOC0yNS44IDQ2Ljl2MjA2LjNjMCAyMS4xIDkuNCAzNy41IDI1LjggNDYuOWwxNzUuOCAxMDMuMWMxNi40IDkuNCAzNS4yIDkuNCA1MS42IDBsMTc1LjgtMTAzLjFjMTYuNC05LjQgMjUuOC0yNS44IDI1LjgtNDYuOXYtNzIuN2wtODItNDYuOXY2OGMwIDIxLjEtOS40IDM3LjUtMjUuOCA0Ni45TDMzNyA3NjEuNGMtMTYuNCA5LjQtMzUuMiA5LjQtNTEuNiAwTDE5NCA3MDcuNWMtMTYuNC05LjQtMjUuOC0yNS44LTI1LjgtNDYuOVY1NTIuOGMwLTIxLjEgOS40LTM3LjUgMjUuOC00Ni45bDkzLjgtNTMuOWMxNC4xLTkuNCAzNS4yLTkuNCA1MS42IDBsMTE5LjUgNjggODIgNDkuMiAxMTkuNSA2OGMxNi40IDkuNCAzNS4yIDkuNCA1MS42IDBMODkwLjIgNTM0YzE2LjQtOS40IDI1LjgtMjUuOCAyNS44LTQ2LjlWMjgzLjJjMC0xNi40LTkuNC0zMi44LTI1LjgtNDIuMkw3MTIuMSAxMzcuOWMtMTYuNC05LjQtMzUuMi05LjQtNTEuNiAwTDQ4NC43IDI0MWMtMTYuNCA5LjQtMjUuOCAyNS44LTI1LjggNDYuOXY3NWw4MiA0OS4ydi03Mi43YzAtMjEuMSA5LjQtMzcuNSAyNS44LTQ2LjlsOTMuOC01Ni4zYzE2LjQtOS40IDM1LjItOS40IDUxLjYgMGw5My44IDUzLjljMTQuMSA5LjQgMjUuOCAyNS44IDI1LjggNDYuOXYxMDhjMCAyMS4xLTExLjcgMzcuNS0yNS44IDQ2LjlsLTkzLjggNTYuM2MtMTQuMSA5LjQtMzUuMiA5LjQtNTEuNiAwTDU0MSA0NzUuNGwtODItNDYuOS0xMjQuMi03Mi43Yy0xNC4xLTkuNC0zNS4yLTkuNC01MS42IDAtLjEuMS0xNzEuMiAxMDMuMi0xNzMuNSAxMDMuMnoiIGZpbGw9IiM4MjQ3ZTUiLz48L3N2Zz4=',\n currency: {\n name: 'Polygon',\n symbol: 'MATIC',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: currencyLogo$3\n },\n wrapped: {\n address: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',\n logo: wrappedLogo$2\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', '0xc2132D05D31c914a87C6611C10748AEb04B58e8F']\n },\n explorer: 'https://polygonscan.com',\n explorerUrlFor: function explorerUrlFor(_ref4) {\n var transaction = _ref4.transaction,\n token = _ref4.token,\n address = _ref4.address;\n\n if (transaction) {\n return \"https://polygonscan.com/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://polygonscan.com/token/\".concat(token);\n }\n\n if (address) {\n return \"https://polygonscan.com/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://polygon-bor-rpc.publicnode.com', 'https://polygon.llamarpc.com', 'https://polygon-bor.publicnode.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"MATIC\",\n \"name\": \"Polygon\",\n \"decimals\": 18,\n \"logo\": currencyLogo$3,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n \"symbol\": \"WMATIC\",\n \"name\": \"Wrapped Matic\",\n \"decimals\": 18,\n \"logo\": wrappedLogo$2,\n \"type\": \"20\"\n }, {\n \"address\": \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether USD\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063\",\n \"symbol\": \"DAI\",\n \"name\": \"Dai Stablecoin\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619\",\n \"symbol\": \"WETH\",\n \"name\": \"Wrapped Ether\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6\",\n \"symbol\": \"WBTC\",\n \"name\": \"Wrapped BTC\",\n \"decimals\": 8,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xf6261529C6C2fBEB313aB25cDEcD243613b40EB5\",\n \"symbol\": \"DEPAY\",\n \"name\": \"DePay\",\n \"decimals\": 18,\n \"logo\": \"https://depay.com/favicon.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 2000 // 2s\n\n};\nvar logo$6 = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlPi5zdDF7ZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDE5Njc2ODQzODE5NzI3MzAwODIwMDAwMDA1OTQ3NjMyODMzODYxMjM4OTE3Xyl9LnN0MntmaWxsOnVybCgjU1ZHSURfMDAwMDAwNjQzMjA1MjE4MTcxODM4NzM1NjAwMDAwMDMxNzkyNDIxNTkzMzkwODM5NjdfKX08L3N0eWxlPjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODE1Ljg1NiIgeTE9IjcwLjgyNCIgeDI9IjM4OC4zMzYiIHkyPSItNzQ4LjA1MiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDE5MS40MzUpIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwMGZmYTMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNkYzFmZmYiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Ik0yMzcuOSA2NTcuOWM0LjktNC45IDEyLjItNy4zIDE3LjEtNy4zaDYxOS43YzEyLjIgMCAxNy4xIDE0LjcgOS44IDIyTDc2Mi4xIDc5NS4xYy00LjkgNC45LTEyLjIgNy4zLTE3LjEgNy4zSDEyNS4zYy0xMi4yIDAtMTcuMS0xNC43LTkuOC0yNC41bDEyMi40LTEyMHoiIGZpbGw9InVybCgjU1ZHSURfMV8pIi8+PGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE1MDgxNTQ0MzI2NzI2OTc2MDQ0MDAwMDAxMzQ2MDgyNDM3MDQwMzE3MjU0M18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNjI4LjQ4MSIgeTE9IjE2NC4xMzQiIHgyPSIyMDAuOTYyIiB5Mj0iLTY1NC43NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDE5MS40MzUpIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwMGZmYTMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNkYzFmZmYiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGQ9Ik0yMzcuOSAyMDQuOGM0LjktNC45IDEyLjItNy4zIDE3LjEtNy4zaDYxOS43YzEyLjIgMCAxNy4xIDE0LjcgOS44IDIyTDc2Mi4xIDM0MmMtNC45IDQuOS0xMi4yIDcuMy0xNy4xIDcuM0gxMjUuM2MtMTIuMiAwLTE3LjEtMTQuNy05LjgtMjJsMTIyLjQtMTIyLjV6IiBmaWxsPSJ1cmwoI1NWR0lEXzAwMDAwMTUwODE1NDQzMjY3MjY5NzYwNDQwMDAwMDEzNDYwODI0MzcwNDAzMTcyNTQzXykiLz48bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDA3NDA5ODc3MzYzMTA0OTgxNjMwMDAwMDE1MTMzNzA1NTcwNjgwMDk3NzA5XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI3MjAuOTIzIiB5MT0iMTE1Ljg3IiB4Mj0iMjkzLjQwNiIgeTI9Ii03MDMuMDAzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMTkxLjQzNSkiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzAwZmZhMyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2RjMWZmZiIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0iTTc2Mi4xIDQzMC4xYy00LjktNC45LTEyLjItNy4zLTE3LjEtNy4zSDEyNS4zYy0xMi4yIDAtMTcuMSAxNC43LTkuOCAyMkwyMzggNTY3LjNjNC45IDQuOSAxMi4yIDcuMyAxNy4xIDcuM2g2MTkuN2MxMi4yIDAgMTcuMS0xNC43IDkuOC0yMkw3NjIuMSA0MzAuMXoiIGZpbGw9InVybCgjU1ZHSURfMDAwMDAwMDc0MDk4NzczNjMxMDQ5ODE2MzAwMDAwMTUxMzM3MDU1NzA2ODAwOTc3MDlfKSIvPjwvc3ZnPgo=';\nvar currencyLogo$2 = 'https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png';\nvar solana = {\n name: 'solana',\n networkId: 'solana',\n namespace: 'solana',\n label: 'Solana',\n fullName: 'Solana Mainnet Beta',\n logo: logo$6,\n logoBackgroundColor: '#000000',\n logoWhiteBackground: logo$6,\n currency: {\n name: 'Solana',\n symbol: 'SOL',\n decimals: 9,\n address: '11111111111111111111111111111111',\n logo: currencyLogo$2\n },\n wrapped: {\n address: 'So11111111111111111111111111111111111111112',\n logo: currencyLogo$2\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB']\n },\n explorer: 'https://solscan.io',\n explorerUrlFor: function explorerUrlFor(_ref5) {\n var transaction = _ref5.transaction,\n token = _ref5.token,\n address = _ref5.address;\n\n if (transaction) {\n return \"https://solscan.io/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://solscan.io/token/\".concat(token);\n }\n\n if (address) {\n return \"https://solscan.io/address/\".concat(address);\n }\n },\n endpoints: ['https://solana-mainnet.g.alchemy.com/v2/demo', 'https://solana-rpc.publicnode.com', 'https://endpoints.omniatech.io/v1/sol/mainnet/public', String.fromCharCode(104, 116, 116, 112, 115, 58, 47, 47, 115, 111, 108, 97, 110, 97, 45, 97, 112, 105, 46, 105, 110, 115, 116, 97, 110, 116, 110, 111, 100, 101, 115, 46, 105, 111, 47, 116, 111, 107, 101, 110, 45, 120, 65, 55, 115, 53, 55, 69, 97, 102, 112, 72, 107, 51, 116, 106, 56, 83, 98, 86, 101, 105, 57, 101, 65, 122, 109, 75, 74, 52, 105, 117, 57)],\n sockets: ['wss://solana.drpc.org', 'wss://mainnet-beta.solflare.network', 'wss://solana-rpc.publicnode.com'],\n tokens: [// only major tokens\n {\n \"address\": \"11111111111111111111111111111111\",\n \"symbol\": \"SOL\",\n \"name\": \"Solana\",\n \"decimals\": 9,\n \"logo\": currencyLogo$2,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": \"https://img.raydium.io/icon/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.png\",\n \"type\": \"SPL\"\n }, {\n \"address\": \"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\",\n \"symbol\": \"USDT\",\n \"name\": \"USDT\",\n \"decimals\": 6,\n \"logo\": \"https://img.raydium.io/icon/Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB.png\",\n \"type\": \"SPL\"\n }, {\n \"address\": \"7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj\",\n \"symbol\": \"stSOL\",\n \"name\": \"Lido Staked SOL\",\n \"decimals\": 9,\n \"logo\": \"https://img.raydium.io/icon/7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj.png\",\n \"type\": \"SPL\"\n }, {\n \"address\": \"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263\",\n \"symbol\": \"BONK\",\n \"name\": \"BONK\",\n \"decimals\": 5,\n \"logo\": \"https://img.raydium.io/icon/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263.png\",\n \"type\": \"SPL\"\n }, {\n \"address\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\",\n \"symbol\": \"SAMO\",\n \"name\": \"Samoyed Coin\",\n \"decimals\": 9,\n \"logo\": \"https://img.raydium.io/icon/7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU.png\",\n \"type\": \"SPL\"\n }, {\n \"address\": \"DePay1miDBPWXs6PVQrdC5Vch2jemgEPaiyXLNLLa2NF\",\n \"symbol\": \"DEPAY\",\n \"name\": \"DePay\",\n \"decimals\": 9,\n \"logo\": \"https://depay.com/favicon.png\",\n \"type\": \"SPL\"\n }],\n zero: '0',\n maxInt: '340282366920938463463374607431768211455',\n permit2: undefined,\n blockTime: 500 // 0.5s\n\n};\nvar logo$5 = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlPi5zdDF7ZmlsbDojMjEzMTQ3fTwvc3R5bGU+PHBhdGggZD0iTTkyIDkyaDgxNnY4MTZIOTJWOTJ6IiBmaWxsPSJub25lIi8+PHBhdGggY2xhc3M9InN0MSIgZD0iTTE2NS44IDM0MC4xVjY2MGMwIDIwLjYgMTAuOCAzOS4yIDI4LjcgNDkuNmwyNzcuMSAxNTkuOWMxNy42IDEwLjEgMzkuNSAxMC4xIDU3LjEgMGwyNzcuMS0xNTkuOWMxNy42LTEwLjEgMjguNy0yOSAyOC43LTQ5LjZWMzQwLjFjMC0yMC42LTEwLjgtMzkuMi0yOC43LTQ5LjZsLTI3Ny4xLTE2MGMtMTcuNi0xMC4xLTM5LjUtMTAuMS01Ny4xIDBsLTI3Ny4xIDE2MGMtMTcuNiAxMC4xLTI4LjQgMjktMjguNCA0OS42aC0uM3oiLz48cGF0aCBkPSJtNTYwLjQgNTYyLTM5LjUgMTA4LjRjLTEgMi45LTEgNi4yIDAgOS41bDY3LjkgMTg2LjQgNzguNi00NS40LTk0LjMtMjU4LjhjLTIuMy02LTEwLjQtNi0xMi43LS4xem03OS4zLTE4Mi4xYy0yLjMtNS45LTEwLjQtNS45LTEyLjcgMGwtMzkuNSAxMDguNGMtMSAyLjktMSA2LjIgMCA5LjVMNjk4LjggODAzbDc4LjYtNDUuNC0xMzcuNy0zNzcuNHYtLjN6IiBmaWxsPSIjMTJhYWZmIi8+PHBhdGggZD0iTTUwMCAxNDIuNmMyIDAgMy45LjYgNS41IDEuNmwyOTkuNiAxNzNjMy42IDIgNS41IDUuOSA1LjUgOS44djM0NmMwIDMuOS0yLjMgNy44LTUuNSA5LjhsLTI5OS42IDE3M2MtMS42IDEtMy42IDEuNi01LjUgMS42cy0zLjktLjYtNS41LTEuNmwtMjk5LjYtMTczYy0zLjYtMi01LjUtNS45LTUuNS05LjhWMzI2LjdjMC0zLjkgMi4zLTcuOCA1LjUtOS44bDI5OS42LTE3M2MxLjYtMSAzLjYtMS42IDUuNS0xLjZ2LjN6bTAtNTAuNmMtMTAuOCAwLTIxLjIgMi42LTMxIDguMmwtMjk5LjYgMTczYy0xOS4yIDExLjEtMzEgMzEuMy0zMSA1My41djM0NmMwIDIyLjIgMTEuOCA0Mi40IDMxIDUzLjVsMjk5LjYgMTczYzkuNSA1LjUgMjAuMiA4LjIgMzEgOC4yczIxLjItMi42IDMxLTguMmwyOTkuNi0xNzNjMTkuMi0xMS4xIDMxLTMxLjMgMzEtNTMuNXYtMzQ2YzAtMjIuMi0xMS44LTQyLjQtMzEtNTMuNWwtMjk5LjktMTczYy05LjUtNS41LTIwLjItOC4yLTMxLTguMmguM3oiIGZpbGw9IiM5ZGNjZWQiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJtMzAxLjUgODAzLjIgMjcuOC03NS43IDU1LjUgNDYtNTEuOSA0Ny43LTMxLjQtMTh6Ii8+PHBhdGggZD0iTTQ3NC41IDMwMi4yaC03Ni4xYy01LjUgMC0xMC44IDMuNi0xMi43IDguOEwyMjIuOSA3NTcuNWw3OC42IDQ1LjRMNDgxLjEgMzExYzEuNi00LjYtMS42LTkuMS02LjItOS4xbC0uNC4zem0xMzMuMiAwaC03Ni4xYy01LjUgMC0xMC44IDMuNi0xMi43IDguOGwtMTg2IDUwOS44IDc4LjYgNDUuNEw2MTMuOSAzMTFjMS42LTQuNi0xLjYtOS4xLTYuMi05LjF2LjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+Cg==';\nvar arbitrum = {\n name: 'arbitrum',\n id: '0xa4b1',\n networkId: '42161',\n namespace: 'eip155',\n platform: 'evm',\n label: 'Arbitrum',\n fullName: 'Arbitrum One',\n logo: logo$5,\n logoBackgroundColor: '#2b354d',\n logoWhiteBackground: logo$5,\n currency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: ethereum.currency.logo\n },\n wrapped: {\n address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n logo: ethereum.wrapped.logo\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0xaf88d065e77c8cC2239327C5EDb3A432268e5831', '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9']\n },\n explorer: 'https://arbiscan.io',\n explorerUrlFor: function explorerUrlFor(_ref6) {\n var transaction = _ref6.transaction,\n token = _ref6.token,\n address = _ref6.address;\n\n if (transaction) {\n return \"https://arbiscan.io/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://arbiscan.io/token/\".concat(token);\n }\n\n if (address) {\n return \"https://arbiscan.io/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://arbitrum.llamarpc.com', 'https://arbitrum-one.publicnode.com', 'https://arbitrum.rpc.thirdweb.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"ETH\",\n \"name\": \"Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.currency.logo,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n \"symbol\": \"WETH\",\n \"name\": \"Wrapped Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.wrapped.logo,\n \"type\": \"20\"\n }, {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/arbitrum/assets/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/arbitrum/assets/0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1\",\n \"symbol\": \"DAI\",\n \"name\": \"Dai Stablecoin\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/arbitrum/assets/0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x912CE59144191C1204E64559FE8253a0e49E6548\",\n \"symbol\": \"ARB\",\n \"name\": \"Arbitrum\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/arbitrum/assets/0x912CE59144191C1204E64559FE8253a0e49E6548/logo.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 250 // 0.25s\n\n};\nvar logo$4 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0zNTkuMSA3NTEuMWgtOTUuM2MtMjAgMC0yOS45IDAtMzYtMy44LTYuNi00LjMtMTAuNC0xMS4zLTEwLjktMTguOS0uMy03LjEgNC42LTE1LjggMTQuNC0zM2wyMzUtNDE0LjNjMTAuMS0xNy42IDE1LjEtMjYuNCAyMS40LTI5LjYgNi45LTMuNSAxNS4xLTMuNSAyMS45IDAgNi40IDMuMyAxMS40IDEyIDIxLjQgMjkuNmw0OC40IDg0LjMuMi41YzEwLjggMTguOSAxNi4zIDI4LjUgMTguNiAzOC41IDIuNiAxMC45IDIuNiAyMi42IDAgMzMuNS0yLjQgMTAuMS03LjggMTkuOC0xOC44IDM4LjlMNDU2LjIgNjk0LjlsLS4zLjVjLTEwLjggMTktMTYuMyAyOC43LTI0LjEgMzYtOC4zIDgtMTguMyAxMy43LTI5LjMgMTYuOS05LjkgMi44LTIxLjEgMi44LTQzLjQgMi44em0yNDAuMyAwaDEzNi40YzIwLjIgMCAzMC4yIDAgMzYuMy00IDYuNi00LjMgMTAuNi0xMS4zIDEwLjktMTkuMS4zLTYuOS00LjUtMTUuMi0xMy45LTMxLjZsLTEtMS43TDY5OS44IDU3OGwtLjgtMS4yYy05LjYtMTYuMy0xNC40LTI0LjUtMjAuNy0yNy42LTYuOS0zLjYtMTUtMy42LTIxLjcgMC02LjIgMy4zLTExLjMgMTEuOC0yMS4zIDI5bC02OC4xIDExNi45LS4yLjNjLTEwLjEgMTcuMi0xNSAyNS44LTE0LjUgMzIuOC41IDcuNyA0LjUgMTQuOSAxMC45IDE5IDUuNyAzLjkgMTUuOCAzLjkgMzYgMy45eiIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNmZmYiLz48L3N2Zz4=';\nvar currencyLogo$1 = \"https://traderjoexyz.com/static/media/avalanche.7c81486190237e87e238c029fd746008.svg\";\nvar wrappedLogo$1 = \"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/logos/0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7/logo.png\";\nvar avalanche = {\n name: 'avalanche',\n id: '0xa86a',\n networkId: '43114',\n namespace: 'eip155',\n platform: 'evm',\n label: 'Avalanche',\n fullName: 'Avalanche C-Chain',\n logo: logo$4,\n logoBackgroundColor: '#E84142',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik0yMzUuNiAyNTkuNWg1MjguOXY0ODFIMjM1LjZ2LTQ4MXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOTI4IDUwMGMwIDIzNi40LTE5MS42IDQyOC00MjggNDI4UzcyIDczNi40IDcyIDUwMCAyNjMuNiA3MiA1MDAgNzJzNDI4IDE5MS42IDQyOCA0Mjh6TTM3OC43IDY3MC4zaC04My4xYy0xNy41IDAtMjYuMSAwLTMxLjMtMy40LTUuNy0zLjctOS4xLTkuOC05LjYtMTYuNS0uMy02LjIgNC0xMy44IDEyLjYtMjguOUw0NzIuNSAyNjBjOC43LTE1LjQgMTMuMS0yMyAxOC43LTI1LjkgNi0zIDEzLjEtMyAxOS4xIDAgNS42IDIuOCAxMCAxMC41IDE4LjcgMjUuOWw0Mi4yIDczLjYuMi40YzkuNCAxNi41IDE0LjIgMjQuOCAxNi4zIDMzLjYgMi4zIDkuNiAyLjMgMTkuNiAwIDI5LjItMi4xIDguOC02LjggMTcuMi0xNi40IDM0TDQ2My42IDYyMS4ybC0uMy41Yy05LjUgMTYuNi0xNC4zIDI1LTIxIDMxLjQtNy4zIDYuOS0xNiAxMi0yNS41IDE0LjgtOC43IDIuNC0xOC41IDIuNC0zOC4xIDIuNHptMjA5LjggMGgxMTljMTcuNiAwIDI2LjQgMCAzMS43LTMuNSA1LjctMy43IDkuMi05LjkgOS42LTE2LjYuMy02LTMuOS0xMy4zLTEyLjItMjcuNWwtLjktMS41LTU5LjYtMTAyLS43LTEuMWMtOC40LTE0LjItMTIuNi0yMS4zLTE4LTI0LjEtNi0zLTEzLjEtMy0xOSAwLTUuNSAyLjgtOS45IDEwLjMtMTguNiAyNS4zbC01OS40IDEwMi0uMi40Yy04LjcgMTUtMTMgMjIuNS0xMi43IDI4LjcuNCA2LjcgMy45IDEyLjkgOS42IDE2LjYgNSAzLjMgMTMuOCAzLjMgMzEuNCAzLjN6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI2U4NDE0MiIvPjwvc3ZnPg==',\n currency: {\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: currencyLogo$1\n },\n wrapped: {\n address: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n logo: wrappedLogo$1\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7', '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E']\n },\n explorer: 'https://snowtrace.io',\n explorerUrlFor: function explorerUrlFor(_ref7) {\n var transaction = _ref7.transaction,\n token = _ref7.token,\n address = _ref7.address;\n\n if (transaction) {\n return \"https://snowtrace.io/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://snowtrace.io/token/\".concat(token);\n }\n\n if (address) {\n return \"https://snowtrace.io/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://avalanche-c-chain-rpc.publicnode.com', 'https://avalanche-c-chain.publicnode.com', 'https://avalanche-api.flare.network/ext/bc/C/rpc'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"AVAX\",\n \"name\": \"Avalanche\",\n \"decimals\": 18,\n \"logo\": currencyLogo$1,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7\",\n \"symbol\": \"WAVAX\",\n \"name\": \"Wrapped AVAX\",\n \"decimals\": 18,\n \"logo\": wrappedLogo$1,\n \"type\": \"20\"\n }, {\n \"address\": \"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/avalanchec/assets/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/avalanchec/assets/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70\",\n \"symbol\": \"DAI\",\n \"name\": \"Dai Stablecoin\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/avalanchec/assets/0xd586E7F844cEa2F87f50152665BCbc2C279D8d70/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xC891EB4cbdEFf6e073e859e987815Ed1505c2ACD\",\n \"symbol\": \"EUROC\",\n \"name\": \"EURO Coin\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/avalanchec/assets/0xC891EB4cbdEFf6e073e859e987815Ed1505c2ACD/logo.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 2000 // 2s\n\n};\nvar logo$3 = 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlPi5zdDB7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTMzMS45IDU1Ni41YzIzLjUgMCA0Ni40LTcuOCA2NS0yMi4yTDI0OCAzODUuNGMtMzUuOSA0Ni40LTI3LjQgMTEyLjkgMTguOSAxNDguOCAxOC42IDE0IDQxLjUgMjEuOSA2NSAyMS45di40em00NDIuMy0xMDYuMWMwLTIzLjUtNy44LTQ2LjQtMjIuMi02NUw2MDMuMiA1MzQuMmM0Ni40IDM1LjkgMTEyLjkgMjcuNCAxNDguOC0xOC45IDE0LjMtMTguNiAyMi4yLTQxLjQgMjIuMi02NC45eiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Im04NDkuMiAyODguNS02NS45IDY1LjljNTIuOSA2My42IDQ0LjcgMTU4LTE4LjkgMjExLjItNTUuNiA0Ni43LTEzNi42IDQ2LjctMTkyLjIgMEw1MDAgNjM3LjdsLTcyLjEtNzIuMWMtNjMuNiA1Mi45LTE1OCA0NC43LTIxMS4yLTE4LjktNDYuNy01NS42LTQ2LjctMTM2LjYgMC0xOTIuMmwtMzMuNi0zMy42LTMyLTMyLjNDMTEyLjMgMzUyLjIgOTIgNDI1LjMgOTIgNTAwYzAgMjI1LjIgMTgyLjggNDA4IDQwOCA0MDhzNDA4LTE4Mi44IDQwOC00MDhjLjMtNzQuNC0yMC42LTE0Ny44LTU4LjgtMjExLjV6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTc5NS4xIDIxOC4zYy0xNTUuNC0xNjIuOC00MTMuNi0xNjktNTc2LjQtMTMuNy00LjkgNC42LTkuNSA5LjEtMTMuNyAxMy43LTEwLjEgMTAuOC0xOS42IDIxLjktMjguNyAzMy4zTDUwMCA1NzUuNGwzMjMuOC0zMjMuOGMtOC44LTExLjctMTguNi0yMi44LTI4LjctMzMuM3pNNTAwIDE0NS4yYzk1LjMgMCAxODQuMSAzNi45IDI1MSAxMDMuOEw1MDAgNTAwIDI0OSAyNDljNjYuNi02Ny4yIDE1NS43LTEwMy44IDI1MS0xMDMuOHoiLz48L3N2Zz4K';\nvar currencyLogo = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALsAAAC7CAMAAAAKTh9YAAAAYFBMVEVHcEz////////////////////////////////////j++ma6qVj5nsl5lAK4zpA6mXO79aD8Zyr87uCvq0J2TkItEkOhl4EeVsKzSwLrxMNtQpjsZG42dEeuxyF2oU6wzjPwJjeAAAACnRSTlMAEUB9r9j/YO+Kf6/iMwAABD1JREFUeAHU1EESQjEMAlBIAq33v7ArV7+OLss7AZOB4IDVI/kW0nQRf+Ca7QvNwg/s7VtpGJP8oPFNybdT4aidoPHEcYZn6ymnEEOjH8KPk0zeTI+DLacpfMhpxKTGnFtDB9o8/Jisw8uxh1/OtGIrYw9Ah9pEOVWhnaoxTvWCnErR2Z3rzX59JMYOAkEYXr1gRJfIzP1PalbOpZm2aEf+tcKnCCz7bS37si/7si/7si/7si/7srvRHAE5kJHdbV4wkn076Q9RMMLu04fYnceT/An9JnhMkr19Ezwvvvee73ieOL1dfdN15yQlwas2S7vbgTn4iLfaDO0emIPPeLtgZt+AOfhcQHJGdieYg88VLG9k98AUfG7gBRu7YAo+9wpeNLEnYAY+915wkIndQ4Xn9IajgoV9hwbP6b3iqGRhF5zH537VHi3swGl87tft3tB+Ap/7Z9lFhef0z3hndmjwnP4Z32qEAs/po4//Rwao8JzeC3hiMyeACs/ppnMCUlThOf3wxjurObAKz+kHNz5arT0CNHhO5zde7NZ8UYXn9N4K2Utnt8NzOsFL+Kuz2+EJneA5nduN8bmTWsXzKqNzuyX+FZ3rL43Sud0Un/txtV7KqNY+6Hq7Kb71Gxt0W7seX5od/Z6a+8BuGASCMMwraRK4103A9z9leq+Q3zCYC+h7oy7tbr6d4zGd2zme04Ed4AEd2AEe0Kmd4wGd2jke0Kmd4wGd2jke0Kmd4wGd2jke0Kmd4wGd2Tl+B+jQzvH7j/ThnNub4Xd7Rud2gLc9pyM7wO9sz+nEDvA7e8G/0vX2IeTan/DXPdWL+cwD/hl/c3r2lT2u7XbWk31aYt9vesp9yD5Xn1ZPx7svtNtMYwfX9/hqjwAvuq8awIufZwzgxc+RZgAvfn43gBe/N5lxPLAD+sTs2HgnS53jnS51jHfC1CneKVOHeCdNneGdNnWEd+LUCd6pUwd4p04d4J06dYB3tekAL64nSAAvr+PgeGYHdI6ndkDneGoHdI4HdkAvxw/V7IsiegU8sIdSejk+VbIvyumveBY8twdQh51A8PL691x8PBf3HRD8oO33QPhR2mfD8EnZ3wTxXthXRvFe18+H8anbPsqkOVfnnJ6DF/RmPdE5vs69aQiYnoH3rXuzXukcP6jmE3C8734uxAgfgSvM4+D4RcV37SmgZ+BT6/kz0yd6KT5+kcex9bel+fDPupXP+MOs8byl6esGYfRxbDPnanG0OVf+8ODeH9Ks5f+mE50vJlp37d23EQQhFATRr6Yg/4RPuSe9o6tmIni7gN2222677bbbbrvttttuu5sw/7EP1j7kfhO6m5Wbak90Jw7d54NeGsV9jb0y1B+f+P5qpHB08XvD8M4zrq9N7pqje/L8jj/twXa8XOl4uSoe4/363RnvlyOo/LE1R8JnZfywrB7pGLY0Xa/gV5AhY9e5oJHCAAAAAElFTkSuQmCC';\nvar wrappedLogo = 'data:image/png;base64,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';\nvar gnosis = {\n name: 'gnosis',\n id: '0x64',\n networkId: '100',\n namespace: 'eip155',\n label: 'Gnosis',\n fullName: 'Gnosis Chain',\n logo: logo$3,\n logoBackgroundColor: '#406958',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlPi5zdDB7ZmlsbDojM2U2OTU3fTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTMyNC4yIDU1OS4xYzI0LjYgMCA0OC41LTguMiA2Ny45LTIzLjJMMjM2LjUgMzgwLjJjLTM3LjUgNDguNS0yOC43IDExOC4xIDE5LjggMTU1LjYgMTkuNSAxNC43IDQzLjMgMjIuOSA2Ny45IDIyLjl2LjR6TTc4Ni43IDQ0OC4xYzAtMjQuNi04LjItNDguNS0yMy4yLTY3LjlMNjA3LjkgNTM1LjhjNDguNSAzNy41IDExOC4xIDI4LjcgMTU1LjYtMTkuOCAxNS0xOS40IDIzLjItNDMuMyAyMy4yLTY3Ljl6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0ibTg2NS4yIDI3OC44LTY4LjkgNjguOWM1NS4zIDY2LjYgNDYuOCAxNjUuMi0xOS44IDIyMC44LTU4LjQgNDguOC0xNDIuNyA0OC44LTIwMSAwTDUwMCA2NDRsLTc1LjQtNzUuNGMtNjYuNiA1NS4zLTE2NS4yIDQ2LjgtMjIwLjgtMTkuOC00OC44LTU4LjQtNDguOC0xNDIuNyAwLTIwMWwtMzUuMi0zNS4yLTMzLjQtMzMuOGMtNDAuNiA2Ni42LTYxLjggMTQzLTYxLjggMjIxLjIgMCAyMzUuNSAxOTEuMSA0MjYuNiA0MjYuNiA0MjYuNlM5MjYuNiA3MzUuNSA5MjYuNiA1MDBjLjQtNzcuOC0yMS41LTE1NC42LTYxLjQtMjIxLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgwOC42IDIwNS41QzY0Ni4xIDM1LjEgMzc2LjEgMjguNyAyMDUuOCAxOTEuMWMtNS4xIDQuOC05LjkgOS42LTE0LjMgMTQuMy0xMC42IDExLjMtMjAuNSAyMi45LTMwIDM0LjhMNTAwIDU3OC44bDMzOC42LTMzOC42Yy05LjItMTIuMi0xOS41LTIzLjgtMzAtMzQuN3pNNTAwIDEyOWM5OS43IDAgMTkyLjUgMzguNiAyNjIuNSAxMDguNUw1MDAgNTAwIDIzNy41IDIzNy41QzMwNy4yIDE2Ny4yIDQwMC4zIDEyOSA1MDAgMTI5eiIvPjwvc3ZnPgo=',\n currency: {\n name: 'xDAI',\n symbol: 'xDAI',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: currencyLogo\n },\n wrapped: {\n address: '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d',\n logo: wrappedLogo\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83']\n },\n explorer: 'https://gnosisscan.io',\n explorerUrlFor: function explorerUrlFor(_ref8) {\n var transaction = _ref8.transaction,\n token = _ref8.token,\n address = _ref8.address;\n\n if (transaction) {\n return \"https://gnosisscan.io/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://gnosisscan.io/token/\".concat(token);\n }\n\n if (address) {\n return \"https://gnosisscan.io/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://rpc.gnosis.gateway.fm', 'https://rpc.gnosischain.com', 'https://gnosis-rpc.publicnode.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"xDAI\",\n \"name\": \"xDAI\",\n \"decimals\": 18,\n \"logo\": currencyLogo,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d\",\n \"symbol\": \"WXDAI\",\n \"name\": \"Wrapped XDAI\",\n \"decimals\": 18,\n \"logo\": wrappedLogo,\n \"type\": \"20\"\n }, {\n \"address\": \"0x4ECaBa5870353805a9F068101A40E0f32ed605C6\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether\",\n \"decimals\": 6,\n \"logo\": 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png',\n \"type\": \"20\"\n }, {\n \"address\": \"0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png',\n \"type\": \"20\"\n }, {\n \"address\": \"0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb\",\n \"symbol\": \"GNO\",\n \"name\": \"Gnosis\",\n \"decimals\": 18,\n \"logo\": 'https://cdn.sushi.com/image/upload/f_auto,c_limit,w_16,q_auto/tokens/100/0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb.jpg',\n \"type\": \"20\"\n }, {\n \"address\": \"0xD057604A14982FE8D88c5fC25Aac3267eA142a08\",\n \"symbol\": \"HOPR\",\n \"name\": \"HOPR\",\n \"decimals\": 18,\n \"logo\": 'https://hoprnet.org/assets/icons/hopr_icon.svg',\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 5000 // 5s\n\n};\nvar logo$2 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik00ODcuMSAzOTUuN2MtNS4yLTE1LjgtMTMuMi0zMS43LTI2LjQtNDIuMi0xMy4yLTEwLjUtMjYuNC0yMS4yLTQ0LjktMjYuNC0xOC41LTUuMi0zNy04LTU4LjEtOC00Ny41IDAtODcuMSAxMC41LTExNi4xIDM0LjQtMjkgMjMuOC00Ny41IDU4LjEtNjAuNyAxMDIuOS0yLjYgMTUuOC04IDI5LTEwLjUgNDQuOS0yLjYgMTMuMi01LjIgMjktOCA0Mi4yLTIuNiAyMy44LTIuNiA0Mi4yIDIuNiA2MC43IDUuMiAxNS44IDEzLjIgMzEuNyAyNi40IDQyLjIgMTMuMiAxMC41IDI2LjQgMjEuMiA0NC45IDI2LjQgMTguNCA1LjIgMzcgOCA1OC4xIDggNDcuNSAwIDg3LjEtMTAuNSAxMTYuMS0zNC40czQ3LjUtNTguMSA2MC43LTEwMi45YzIuNi0xMy4yIDUuMi0yOSAxMC41LTQyLjIgMi42LTEzLjIgNS4yLTI5IDgtNDQuOSAyLjgtMjMuOCAyLjgtNDQuOC0yLjYtNjAuN3ptLTkyLjQgNjAuOGMtMi42IDEzLjItNS4yIDI2LjQtOCAzOS41LTIuNiAxMy4yLTUuMiAyNi40LTEwLjUgNDIuMi01LjIgMjMuOC0xNS44IDM5LjUtMjkgNTAuMi0xMy4yIDEwLjUtMjkgMTUuOC00Ny41IDE1LjgtMTguNCAwLTMxLjctNS4yLTM5LjUtMTUuOC04LTEwLjUtMTAuNS0yOS01LjItNTAuMiAyLjYtMTUuOCA1LjItMjkgOC00Mi4yIDIuNi0xMy4yIDUuMi0yNi40IDEwLjUtMzkuNSA1LjItMjMuOCAxNS44LTM5LjUgMjktNTAuMiAxMy4yLTEwLjUgMjktMTUuOCA0Ny41LTE1LjggMTguNCAwIDMxLjcgNS4yIDM5LjUgMTUuOCA3LjkgMTAuNiAxMC41IDI2LjMgNS4yIDUwLjJ6bTQ0MC45LTY4LjZjLTUuMi0xNS44LTEzLjItMjYuNC0yMy44LTM3cy0yMy44LTE1LjgtNDIuMi0yMS4yYy0xNS44LTUuMi0zNC40LTgtNTUuNC04SDU3OS43Yy0yLjYgMC01LjIgMC0xMC41IDIuNi0yLjYgMi42LTUuMiA1LjItNS4yIDhsLTY4LjYgMzI3LjRjMCAyLjYgMCA4IDIuNiA4IDIuNiAyLjYgNS4yIDIuNiA4IDIuNmg2OC42YzIuNiAwIDggMCAxMC41LTIuNnM1LjItNS4yIDUuMi04bDIzLjgtMTEwLjloNjguNmM0Mi4yIDAgNzYuNi04IDEwMi45LTI2LjQgMjYuNC0xOC40IDQyLjItNDcuNSA1MC4yLTg0LjYgNS4xLTE4LjQgNS4xLTM2LjctLjItNDkuOXpNNzQzLjEgNDM4Yy0yLjYgMTUuOC0xMC41IDI2LjQtMjEuMiAzNC40cy0yMy44IDEwLjUtMzcgMTAuNWgtNTguMWwxOC40LTg5LjdoNjAuN2MxMy4yIDAgMjEuMiAyLjYgMjYuNCA1LjIgNS4yIDUuMiAxMC41IDEwLjUgMTAuNSAxNS44IDMgNS4yIDMgMTMuMi4zIDIzLjh6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==';\nvar optimism = {\n name: 'optimism',\n id: '0xa',\n networkId: '10',\n namespace: 'eip155',\n label: 'Optimism',\n fullName: 'Optimism',\n logo: logo$2,\n logoBackgroundColor: '#FF0420',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxjaXJjbGUgY3g9IjUwMCIgY3k9IjUwMCIgcj0iMzk2LjYiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNTAwIDg5Ni42YzIxOS4xIDAgMzk2LjYtMTc3LjYgMzk2LjYtMzk2LjZTNzE5LjEgMTAzLjQgNTAwIDEwMy40IDEwMy40IDI4MC45IDEwMy40IDUwMCAyODAuOSA4OTYuNiA1MDAgODk2LjZ6TTM1MC43IDYwOWMxMC45IDMuNCAyMi42IDUuMSAzNS4zIDUuMSAyOS4xIDAgNTIuNC02LjcgNjkuNi0yMC4yIDE3LjMtMTMuNyAyOS4zLTM0LjMgMzYuMi02MS44IDItOC42IDMuOS0xNy4zIDUuNy0yNS45IDItOC42IDMuNy0xNy40IDUuMS0yNi4yIDIuNC0xMy43IDItMjUuNi0xLjItMzUuOS0zLTEwLjItOC4zLTE4LjktMTYtMjUuOS03LjQtNy0xNi42LTEyLjMtMjcuNC0xNS43LTEwLjctMy42LTIyLjMtNS40LTM1LTUuNC0yOS4zIDAtNTIuNyA3LTY5LjkgMjEuMXMtMjkuMiAzNC43LTM1LjkgNjEuOGMtMiA4LjgtNCAxNy42LTYgMjYuMi0xLjggOC42LTMuNSAxNy4zLTUuMSAyNS45LTIuMiAxMy43LTEuOCAyNS42IDEuMiAzNS45IDMuMiAxMC4yIDguNSAxOC44IDE2IDI1LjYgNy40IDYuOCAxNi42IDExLjkgMjcuNCAxNS40em02Ny44LTQ4Yy04LjIgNi40LTE3LjggOS42LTI4LjYgOS42LTExLjEgMC0xOS0zLjItMjMuOC05LjYtNC44LTYuNC02LTE2LjctMy42LTMwLjcgMS42LTguOCAzLjItMTcuMiA0LjgtMjUgMS44LTcuOCAzLjgtMTYgNi0yNC40IDMuNC0xNC4xIDkuMS0yNC4zIDE3LjItMzAuNyA4LjItNi40IDE3LjgtOS42IDI4LjYtOS42czE4LjggMy4yIDIzLjggOS42IDYuMiAxNi43IDMuNiAzMC43Yy0xLjQgOC40LTMgMTYuNi00LjggMjQuNC0xLjYgNy44LTMuNSAxNi4yLTUuNyAyNS0zLjQgMTQtOS4yIDI0LjMtMTcuNSAzMC43em05MS43IDQ4YzEuMiAxLjQgMi44IDIuMSA0LjggMi4xaDQxYzIuMiAwIDQuMS0uNyA1LjctMi4xIDEuOC0xLjQgMi45LTMuMiAzLjMtNS40bDEzLjktNjZoNDAuN2MyNS45IDAgNDYuNS01LjUgNjEuOC0xNi42IDE1LjUtMTEuMSAyNS43LTI4LjEgMzAuNy01MS4yIDIuNC0xMS43IDIuMy0yMS44LS4zLTMwLjQtMi42LTguOC03LjItMTYuMi0xMy45LTIyLTYuNi01LjgtMTUtMTAuMS0yNS0xMy05LjgtMi44LTIwLjktNC4yLTMzLjItNC4yaC04MC4yYy0yIDAtMy45LjctNS43IDIuMS0xLjggMS40LTIuOSAzLjItMy4zIDUuNEw1MDkgNjAzLjVjLS40IDIuMiAwIDQgMS4yIDUuNXptMTExLjItMTEzLjFoLTM0LjdsMTEuOC01NGgzNi4yYzcuMiAwIDEyLjYgMS4yIDE2IDMuNiAzLjYgMi40IDUuNyA1LjYgNi4zIDkuNi42IDQgLjQgOC42LS42IDEzLjktMiA5LTYuMyAxNS44LTEzIDIwLjItNi40IDQuNS0xMy44IDYuNy0yMiA2Ljd6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI2ZmMDQyMCIvPjwvc3ZnPg==',\n currency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: ethereum.currency.logo\n },\n wrapped: {\n address: '0x4200000000000000000000000000000000000006',\n logo: ethereum.wrapped.logo\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', '0x7F5c764cBc14f9669B88837ca1490cCa17c31607']\n },\n explorer: 'https://optimistic.etherscan.io',\n explorerUrlFor: function explorerUrlFor(_ref9) {\n var transaction = _ref9.transaction,\n token = _ref9.token,\n address = _ref9.address;\n\n if (transaction) {\n return \"https://optimistic.etherscan.io/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://optimistic.etherscan.io/token/\".concat(token);\n }\n\n if (address) {\n return \"https://optimistic.etherscan.io/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://optimism.llamarpc.com', 'https://optimism.publicnode.com', 'https://optimism.rpc.thirdweb.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"ETH\",\n \"name\": \"Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.currency.logo,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"name\": \"Wrapped Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.wrapped.logo,\n \"type\": \"20\"\n }, {\n \"address\": \"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58\",\n \"symbol\": \"USDT\",\n \"name\": \"Tether\",\n \"decimals\": 6,\n \"logo\": 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/optimism/assets/0x94b008aA00579c1307B0EF2c499aD98a8ce58e58/logo.png',\n \"type\": \"20\"\n }, {\n \"address\": \"0x7F5c764cBc14f9669B88837ca1490cCa17c31607\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/optimism/assets/0x7F5c764cBc14f9669B88837ca1490cCa17c31607/logo.png',\n \"type\": \"20\"\n }, {\n \"address\": \"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1\",\n \"symbol\": \"DAI\",\n \"name\": \"Dai Stablecoin\",\n \"decimals\": 18,\n \"logo\": 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png',\n \"type\": \"20\"\n }, {\n \"address\": \"0x4200000000000000000000000000000000000042\",\n \"symbol\": \"OP\",\n \"name\": \"Optimism\",\n \"decimals\": 18,\n \"logo\": 'https://user-images.githubusercontent.com/1300064/219575413-d7990d69-1d21-44ef-a2b1-e9c682c79802.svg',\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 2000 // 2s\n\n};\nvar logo$1 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik00OTguNiA4NDJDNjg4IDg0MiA4NDIgNjg4LjkgODQyIDQ5OS41UzY4OCAxNTcgNDk4LjYgMTU3QzMxOSAxNTcgMTcxLjIgMjk1LjEgMTU3IDQ3MC4zaDQ1My4xdjU3LjVIMTU3QzE3MiA3MDMuOSAzMTkgODQyIDQ5OC42IDg0MnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=';\nvar base = {\n name: 'base',\n id: '0x2105',\n networkId: '8453',\n namespace: 'eip155',\n label: 'Base',\n fullName: 'Base',\n logo: logo$1,\n logoBackgroundColor: '#0052FF',\n logoWhiteBackground: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGQ9Ik00OTguOSA4NDVDNjkwLjEgODQ1IDg0NSA2OTAuMyA4NDUgNDk5LjVTNjkwLjEgMTU0IDQ5OC45IDE1NEMzMTcuNiAxNTQgMTY4LjggMjkzLjMgMTU0IDQ3MC41aDQ1Ny40djU4LjFIMTU0QzE2OC44IDcwNS44IDMxNy42IDg0NSA0OTguOSA4NDV6IiBmaWxsPSIjMDA1MmZmIi8+PC9zdmc+',\n currency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: ethereum.currency.logo\n },\n wrapped: {\n address: '0x4200000000000000000000000000000000000006',\n logo: ethereum.wrapped.logo\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA']\n },\n explorer: 'https://basescan.org',\n explorerUrlFor: function explorerUrlFor(_ref10) {\n var transaction = _ref10.transaction,\n token = _ref10.token,\n address = _ref10.address;\n\n if (transaction) {\n return \"https://basescan.org/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://basescan.org/token/\".concat(token);\n }\n\n if (address) {\n return \"https://basescan.org/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://base-rpc.publicnode.com', 'https://base.llamarpc.com', 'https://base.rpc.thirdweb.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"ETH\",\n \"name\": \"Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.currency.logo,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"name\": \"Wrapped Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.wrapped.logo,\n \"type\": \"20\"\n }, {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"name\": \"USD Coin\",\n \"decimals\": 6,\n \"logo\": \"https://ethereum-optimism.github.io/data/USDC/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA\",\n \"symbol\": \"USDbC\",\n \"name\": \"USD Base Coin\",\n \"decimals\": 6,\n \"logo\": \"https://ethereum-optimism.github.io/data/USDC/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb\",\n \"symbol\": \"DAI\",\n \"name\": \"Dai Stablecoin\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png\",\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 2000 // 2s\n\n};\nvar logo = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Zz4KICAgIDxnPgogICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMjQuNSwxMi40Yy0uNS0xLjEtMS4xLTIuMS0yLTIuOS0uOS0uOS0xLjgtMS41LTIuOS0yLTEuMS0uNS0yLjMtLjctMy42LS43cy0yLjUuMi0zLjYuN2MtMS4xLjUtMi4xLDEuMS0yLjksMi0uOS45LTEuNSwxLjgtMiwyLjktLjUsMS4xLS43LDIuNC0uNywzLjZzLjIsMi40LjcsMy42Yy41LDEuMSwxLjEsMi4xLDIsMi45LjkuOSwxLjgsMS41LDIuOSwyLDEuMS41LDIuNC43LDMuNi43czIuNC0uMiwzLjYtLjdjMS4xLS41LDIuMS0xLjEsMi45LTIsLjktLjksMS41LTEuOCwyLTIuOS41LTEuMS43LTIuNC43LTMuNnMtLjItMi40LS43LTMuNlpNMTMsMTUuMWMuMy0xLjUsMS43LTIuNSwzLjMtMi41aDYuNGMuNC44LjcsMS43LjcsMi41aC0xMC41Wk0yMy40LDE2LjljLS4xLjktLjMsMS44LS43LDIuNWgtNi40Yy0xLjYsMC0yLjktMS4xLTMuMy0yLjUsMCwwLDEwLjUsMCwxMC41LDBaTTEwLjcsMTAuN2MxLjQtMS40LDMuMy0yLjIsNS4zLTIuMnMzLjkuNyw1LjMsMi4yaC4xYzAsLjEtNS4yLjEtNS4yLjEtMS40LDAtMi42LjUtMy42LDEuNS0uNy43LTEuMywxLjctMS40LDIuOGgtMi42Yy4yLTEuNy45LTMuMiwyLjEtNC40aDBaTTE2LDIzLjVjLTIsMC0zLjktLjctNS4zLTIuMi0xLjItMS4yLTItMi44LTIuMS00LjRoMi42Yy4yLDEsLjcsMiwxLjQsMi44LDEsMSwyLjIsMS41LDMuNiwxLjVoNS4yLS4xYy0xLjQsMS42LTMuMywyLjMtNS4zLDIuM2gwWiIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==';\nvar logoWhiteBackground = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8Zz4KICAgIDxnPgogICAgICA8cGF0aCBmaWxsPSIjMDAwMDAwIiBkPSJNMjQuNSwxMi40Yy0uNS0xLjEtMS4xLTIuMS0yLTIuOS0uOS0uOS0xLjgtMS41LTIuOS0yLTEuMS0uNS0yLjMtLjctMy42LS43cy0yLjUuMi0zLjYuN2MtMS4xLjUtMi4xLDEuMS0yLjksMi0uOS45LTEuNSwxLjgtMiwyLjktLjUsMS4xLS43LDIuNC0uNywzLjZzLjIsMi40LjcsMy42Yy41LDEuMSwxLjEsMi4xLDIsMi45LjkuOSwxLjgsMS41LDIuOSwyLDEuMS41LDIuNC43LDMuNi43czIuNC0uMiwzLjYtLjdjMS4xLS41LDIuMS0xLjEsMi45LTIsLjktLjksMS41LTEuOCwyLTIuOS41LTEuMS43LTIuNC43LTMuNnMtLjItMi40LS43LTMuNlpNMTMsMTUuMWMuMy0xLjUsMS43LTIuNSwzLjMtMi41aDYuNGMuNC44LjcsMS43LjcsMi41aC0xMC41Wk0yMy40LDE2LjljLS4xLjktLjMsMS44LS43LDIuNWgtNi40Yy0xLjYsMC0yLjktMS4xLTMuMy0yLjUsMCwwLDEwLjUsMCwxMC41LDBaTTEwLjcsMTAuN2MxLjQtMS40LDMuMy0yLjIsNS4zLTIuMnMzLjkuNyw1LjMsMi4yaC4xYzAsLjEtNS4yLjEtNS4yLjEtMS40LDAtMi42LjUtMy42LDEuNS0uNy43LTEuMywxLjctMS40LDIuOGgtMi42Yy4yLTEuNy45LTMuMiwyLjEtNC40aDBaTTE2LDIzLjVjLTIsMC0zLjktLjctNS4zLTIuMi0xLjItMS4yLTItMi44LTIuMS00LjRoMi42Yy4yLDEsLjcsMiwxLjQsMi44LDEsMSwyLjIsMS41LDMuNiwxLjVoNS4yLS4xYy0xLjQsMS42LTMuMywyLjMtNS4zLDIuM2gwWiIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==';\nvar worldchain = {\n name: 'worldchain',\n id: '0x1e0',\n networkId: '480',\n namespace: 'eip155',\n platform: 'evm',\n label: 'World Chain',\n fullName: 'World Chain Mainnet',\n logo: logo,\n logoBackgroundColor: '#000000',\n logoWhiteBackground: logoWhiteBackground,\n currency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n logo: ethereum.currency.logo\n },\n wrapped: {\n address: '0x4200000000000000000000000000000000000006',\n logo: ethereum.wrapped.logo\n },\n stables: {\n // max. 2 per fiat currency\n usd: ['0x79A02482A880bCE3F13e09Da970dC34db4CD24d1']\n },\n explorer: 'https://worldchain-mainnet.explorer.alchemy.com',\n explorerUrlFor: function explorerUrlFor(_ref11) {\n var transaction = _ref11.transaction,\n token = _ref11.token,\n address = _ref11.address;\n\n if (transaction) {\n return \"https://worldchain-mainnet.explorer.alchemy.com/tx/\".concat(transaction.id || transaction);\n }\n\n if (token) {\n return \"https://worldchain-mainnet.explorer.alchemy.com/token/\".concat(token);\n }\n\n if (address) {\n return \"https://worldchain-mainnet.explorer.alchemy.com/address/\".concat(address);\n }\n },\n endpoints: [// make sure provider supports batch size of 50 batch requests!\n 'https://worldchain-mainnet.g.alchemy.com/public', 'https://480.rpc.thirdweb.com'],\n tokens: [// only major tokens\n {\n \"address\": \"0x2cFc85d8E48F8EAB294be644d9E25C3030863003\",\n \"symbol\": \"WLD\",\n \"name\": \"Worldcoin\",\n \"decimals\": 18,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/optimism/assets/0xdC6fF44d5d932Cbd77B52E5612Ba0529DC6226F1/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0x79A02482A880bCE3F13e09Da970dC34db4CD24d1\",\n \"symbol\": \"USDC.e\",\n \"name\": \"Bridged USDC\",\n \"decimals\": 6,\n \"logo\": \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/optimism/assets/0x7F5c764cBc14f9669B88837ca1490cCa17c31607/logo.png\",\n \"type\": \"20\"\n }, {\n \"address\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n \"symbol\": \"ETH\",\n \"name\": \"Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.currency.logo,\n \"type\": \"NATIVE\"\n }, {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"name\": \"Wrapped Ether\",\n \"decimals\": 18,\n \"logo\": ethereum.wrapped.logo,\n \"type\": \"20\"\n }],\n zero: '0x0000000000000000000000000000000000000000',\n maxInt: '115792089237316195423570985008687907853269984665640564039457584007913129639935',\n permit2: '0x000000000022D473030F116dDEE9F6B43aC78BA3',\n blockTime: 2000 // 2s\n\n};\nvar all = [ethereum, bsc, polygon, solana, fantom, arbitrum, avalanche, gnosis, optimism, base, worldchain];\n\nvar findById = function findById(id) {\n var fixedId = id;\n\n if (fixedId.match('0x0')) {\n // remove leading 0\n fixedId = fixedId.replace(/0x0+/, '0x');\n }\n\n var found = all.find(function (blockchain) {\n return blockchain.id && blockchain.id.toLowerCase() == fixedId.toLowerCase();\n });\n return found;\n};\n\nvar findByNetworkId = function findByNetworkId(networkId) {\n networkId = networkId.toString();\n var found = all.find(function (blockchain) {\n return blockchain.networkId == networkId;\n });\n return found;\n};\n\nvar findByName = function findByName(name) {\n return all.find(function (blockchain) {\n return blockchain.name == name;\n });\n};\n\nvar index = {\n ethereum: ethereum,\n bsc: bsc,\n polygon: polygon,\n solana: solana,\n fantom: fantom,\n arbitrum: arbitrum,\n avalanche: avalanche,\n gnosis: gnosis,\n optimism: optimism,\n base: base,\n worldchain: worldchain,\n all: all,\n findById: findById,\n findByNetworkId: findByNetworkId,\n findByName: findByName\n};\nexport { index as default };","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar _permanentCensorErrors = false;\nvar _censorErrors = false;\nvar LogLevels = {\n debug: 1,\n \"default\": 2,\n info: 2,\n warning: 3,\n error: 4,\n off: 5\n};\nvar _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nvar _globalLogger = null;\n\nfunction _checkNormalize() {\n try {\n var missing = []; // Make sure all forms of normalization are supported\n\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach(function (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\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nvar _normalizeError = _checkNormalize();\n\nexport var LogLevel;\n\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 = {}));\n\nexport var ErrorCode;\n\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\"; // Not Implemented\n\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\"; // Unsupported Operation\n // - operation\n\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\"; // 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\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\"; // Some sort of bad response from the server\n\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\"; // Timeout\n\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\"; ///////////////////\n // Operational Errors\n // Buffer Overrun\n\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\"; // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\"; ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\"; // 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\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\"; // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\"; // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\"; ///////////////////\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\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\"; // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\"; // Nonce has already been used\n // - transaction: the transaction attempted\n\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\"; // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\"; // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\"; // 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\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\"; ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n\n;\nvar HEX = \"0123456789abcdef\";\nexport var Logger = /*#__PURE__*/function () {\n function Logger(version) {\n _classCallCheck(this, Logger);\n\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _createClass(Logger, [{\n key: \"_log\",\n value: function _log(logLevel, args) {\n var level = logLevel.toLowerCase();\n\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n\n if (_logLevel > LogLevels[level]) {\n return;\n }\n\n console.log.apply(console, args);\n }\n }, {\n key: \"debug\",\n value: function debug() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._log(Logger.levels.DEBUG, args);\n }\n }, {\n key: \"info\",\n value: function info() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this._log(Logger.levels.INFO, args);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this._log(Logger.levels.WARNING, args);\n }\n }, {\n key: \"makeError\",\n value: function makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n\n if (!params) {\n params = {};\n }\n\n var messageDetails = [];\n Object.keys(params).forEach(function (key) {\n var value = params[key];\n\n try {\n if (value instanceof Uint8Array) {\n var hex = \"\";\n\n for (var i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(\"code=\".concat(code));\n messageDetails.push(\"version=\".concat(this.version));\n var reason = message;\n var url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT:\n {\n url = \"NUMERIC_FAULT\";\n var fault = message;\n\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n\n break;\n }\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\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n } // @TODO: Any??\n\n\n var 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 }, {\n key: \"throwError\",\n value: function throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n }, {\n key: \"throwArgumentError\",\n value: function throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n }, {\n key: \"assert\",\n value: function assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n\n this.throwError(message, code, params);\n }\n }, {\n key: \"assertArgument\",\n value: function assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n\n this.throwArgumentError(message, name, value);\n }\n }, {\n key: \"checkNormalize\",\n value: function checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\",\n form: _normalizeError\n });\n }\n }\n }, {\n key: \"checkSafeUint53\",\n value: function checkSafeUint53(value, message) {\n if (typeof value !== \"number\") {\n return;\n }\n\n if (message == null) {\n message = \"value not safe\";\n }\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\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 }, {\n key: \"checkArgumentCount\",\n value: function checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\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 }, {\n key: \"checkNew\",\n value: function checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, {\n name: kind.name\n });\n }\n }\n }, {\n key: \"checkAbstract\",\n value: function 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, {\n name: target.name,\n operation: \"new\"\n });\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, {\n name: kind.name\n });\n }\n }\n }], [{\n key: \"globalLogger\",\n value: function globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n\n return _globalLogger;\n }\n }, {\n key: \"setCensorship\",\n value: function 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\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n }, {\n key: \"setLogLevel\",\n value: function setLogLevel(logLevel) {\n var level = LogLevels[logLevel.toLowerCase()];\n\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n\n _logLevel = level;\n }\n }, {\n key: \"from\",\n value: function from(version) {\n return new Logger(version);\n }\n }]);\n\n return Logger;\n}();\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;","export var version = \"logger/5.7.0\";","export var version = \"bignumber/5.7.0\";","\"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 */\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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\";\nvar logger = new Logger(version);\nvar _constructorGuard = {};\nvar MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return value != null && (BigNumber.isBigNumber(value) || typeof value === \"number\" && value % 1 === 0 || typeof value === \"string\" && !!value.match(/^-?[0-9]+$/) || isHexString(value) || typeof value === \"bigint\" || isBytes(value));\n} // Only warn about passing 10 into radix once\n\nvar _warnedToStringRadix = false;\nexport var BigNumber = /*#__PURE__*/function () {\n function BigNumber(constructorGuard, hex) {\n _classCallCheck(this, BigNumber);\n\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\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n\n _createClass(BigNumber, [{\n key: \"fromTwos\",\n value: function fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n }, {\n key: \"toTwos\",\n value: function toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n }, {\n key: \"abs\",\n value: function abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n\n return this;\n }\n }, {\n key: \"add\",\n value: function add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n }, {\n key: \"sub\",\n value: function sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n }, {\n key: \"div\",\n value: function div(other) {\n var o = BigNumber.from(other);\n\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n }, {\n key: \"mul\",\n value: function mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n }, {\n key: \"mod\",\n value: function mod(other) {\n var value = toBN(other);\n\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n\n return toBigNumber(toBN(this).umod(value));\n }\n }, {\n key: \"pow\",\n value: function pow(other) {\n var value = toBN(other);\n\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n\n return toBigNumber(toBN(this).pow(value));\n }\n }, {\n key: \"and\",\n value: function and(other) {\n var value = toBN(other);\n\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n\n return toBigNumber(toBN(this).and(value));\n }\n }, {\n key: \"or\",\n value: function or(other) {\n var value = toBN(other);\n\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n\n return toBigNumber(toBN(this).or(value));\n }\n }, {\n key: \"xor\",\n value: function xor(other) {\n var value = toBN(other);\n\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n\n return toBigNumber(toBN(this).xor(value));\n }\n }, {\n key: \"mask\",\n value: function mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n\n return toBigNumber(toBN(this).maskn(value));\n }\n }, {\n key: \"shl\",\n value: function shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n\n return toBigNumber(toBN(this).shln(value));\n }\n }, {\n key: \"shr\",\n value: function shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n\n return toBigNumber(toBN(this).shrn(value));\n }\n }, {\n key: \"eq\",\n value: function eq(other) {\n return toBN(this).eq(toBN(other));\n }\n }, {\n key: \"lt\",\n value: function lt(other) {\n return toBN(this).lt(toBN(other));\n }\n }, {\n key: \"lte\",\n value: function lte(other) {\n return toBN(this).lte(toBN(other));\n }\n }, {\n key: \"gt\",\n value: function gt(other) {\n return toBN(this).gt(toBN(other));\n }\n }, {\n key: \"gte\",\n value: function gte(other) {\n return toBN(this).gte(toBN(other));\n }\n }, {\n key: \"isNegative\",\n value: function isNegative() {\n return this._hex[0] === \"-\";\n }\n }, {\n key: \"isZero\",\n value: function isZero() {\n return toBN(this).isZero();\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n\n return null;\n }\n }, {\n key: \"toBigInt\",\n value: function toBigInt() {\n try {\n return BigInt(this.toString());\n } catch (e) {}\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n }, {\n key: \"toString\",\n value: function 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 } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n\n return toBN(this).toString(10);\n }\n }, {\n key: \"toHexString\",\n value: function toHexString() {\n return this._hex;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON(key) {\n return {\n type: \"BigNumber\",\n hex: this.toHexString()\n };\n }\n }], [{\n key: \"from\",\n value: function from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n\n if (typeof value === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof value === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n var anyValue = value;\n\n if (typeof anyValue === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n var hex = anyValue.toHexString();\n\n if (typeof hex === \"string\") {\n return BigNumber.from(hex);\n }\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n var _hex = anyValue._hex; // New-form JSON\n\n if (_hex == null && anyValue.type === \"BigNumber\") {\n _hex = anyValue.hex;\n }\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\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n }, {\n key: \"isBigNumber\",\n value: function isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n }]);\n\n return BigNumber;\n}(); // Normalize the hex string\n\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof value !== \"string\") {\n return toHex(value.toString(16));\n } // If negative, prepend the negative sign to the normalized positive value\n\n\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1); // Cannot have multiple negative signs (e.g. \"--0x04\")\n\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n } // Call toHex on the positive component\n\n\n value = toHex(value); // Do not allow \"-0x00\"\n\n if (value === \"0x00\") {\n return value;\n } // Negate the value\n\n\n return \"-\" + value;\n } // Add a \"0x\" prefix if missing\n\n\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n } // Normalize zero\n\n\n if (value === \"0x\") {\n return \"0x00\";\n } // Make the string even length\n\n\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n } // Trim to smallest even-length string\n\n\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value) {\n var hex = BigNumber.from(value).toHexString();\n\n if (hex[0] === \"-\") {\n return new BN(\"-\" + hex.substring(3), 16);\n }\n\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault, operation, value) {\n var params = {\n fault: fault,\n operation: operation\n };\n\n if (value != null) {\n params.value = value;\n }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n} // value should have no prefix\n\n\nexport function _base36To16(value) {\n return new BN(value, 36).toString(16);\n} // value should have no prefix\n\nexport function _base16To36(value) {\n return new BN(value, 16).toString(36);\n}","\"use strict\";\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar 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} // Crawl up the constructor chain to find a static method\n\nexport function getStatic(ctor, key) {\n for (var i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n\n if (!ctor.prototype || _typeof(ctor.prototype) !== \"object\") {\n break;\n }\n\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var promises, results;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n promises = Object.keys(object).map(function (key) {\n var value = object[key];\n return Promise.resolve(value).then(function (v) {\n return {\n key: key,\n value: v\n };\n });\n });\n _context.next = 3;\n return Promise.all(promises);\n\n case 3:\n results = _context.sent;\n return _context.abrupt(\"return\", results.reduce(function (accum, result) {\n accum[result.key] = result.value;\n return accum;\n }, {}));\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n}\nexport function checkProperties(object, properties) {\n if (!object || _typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach(function (key) {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n var result = {};\n\n for (var key in object) {\n result[key] = object[key];\n }\n\n return result;\n}\nvar opaque = {\n bigint: true,\n boolean: true,\n \"function\": true,\n number: true,\n string: true\n};\n\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\n if (Array.isArray(object) || _typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n\n var keys = Object.keys(object);\n\n for (var i = 0; i < keys.length; i++) {\n var value = null;\n\n try {\n value = object[keys[i]];\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\n if (!_isFrozen(value)) {\n return false;\n }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(\"Cannot deepCopy \".concat(_typeof(object)), \"object\", object);\n} // Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\n\n\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n } // Arrays are mutable, so we need to create a copy\n\n\n if (Array.isArray(object)) {\n return Object.freeze(object.map(function (item) {\n return deepCopy(item);\n }));\n }\n\n if (_typeof(object) === \"object\") {\n var result = {};\n\n for (var key in object) {\n var value = object[key];\n\n if (value === undefined) {\n continue;\n }\n\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(\"Cannot deepCopy \".concat(_typeof(object)), \"object\", object);\n}\n\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport var Description = /*#__PURE__*/_createClass(function Description(info) {\n _classCallCheck(this, Description);\n\n for (var key in info) {\n this[key] = deepCopy(info[key]);\n }\n});","export var version = \"properties/5.7.0\";","export var version = \"abi/5.7.0\";","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\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\";\nvar logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n var errors = [];\n\n var checkErrors = function checkErrors(path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n\n for (var key in object) {\n var childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({\n path: childPath,\n error: error\n });\n }\n }\n };\n\n checkErrors([], result);\n return errors;\n}\nexport var Coder = /*#__PURE__*/function () {\n function Coder(name, type, localName, dynamic) {\n _classCallCheck(this, Coder);\n\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _createClass(Coder, [{\n key: \"_throwError\",\n value: function _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n }]);\n\n return Coder;\n}();\nexport var Writer = /*#__PURE__*/function () {\n function Writer(wordSize) {\n _classCallCheck(this, Writer);\n\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n _createClass(Writer, [{\n key: \"data\",\n get: function get() {\n return hexConcat(this._data);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this._dataLength;\n }\n }, {\n key: \"_writeData\",\n value: function _writeData(data) {\n this._data.push(data);\n\n this._dataLength += data.length;\n return data.length;\n }\n }, {\n key: \"appendWriter\",\n value: function appendWriter(writer) {\n return this._writeData(concat(writer._data));\n } // Arrayish items; padded on the right to wordSize\n\n }, {\n key: \"writeBytes\",\n value: function writeBytes(value) {\n var bytes = arrayify(value);\n var paddingOffset = bytes.length % this.wordSize;\n\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n\n return this._writeData(bytes);\n }\n }, {\n key: \"_getValue\",\n value: function _getValue(value) {\n var bytes = arrayify(BigNumber.from(value));\n\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\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n\n return bytes;\n } // BigNumberish items; padded on the left to wordSize\n\n }, {\n key: \"writeValue\",\n value: function writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n }, {\n key: \"writeUpdatableValue\",\n value: function writeUpdatableValue() {\n var _this = this;\n\n var offset = this._data.length;\n\n this._data.push(this._padding);\n\n this._dataLength += this.wordSize;\n return function (value) {\n _this._data[offset] = _this._getValue(value);\n };\n }\n }]);\n\n return Writer;\n}();\nexport var Reader = /*#__PURE__*/function () {\n function Reader(data, wordSize, coerceFunc, allowLoose) {\n _classCallCheck(this, Reader);\n\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\n _createClass(Reader, [{\n key: \"data\",\n get: function get() {\n return hexlify(this._data);\n }\n }, {\n key: \"consumed\",\n get: function get() {\n return this._offset;\n } // The default Coerce function\n\n }, {\n key: \"coerce\",\n value: function coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n\n return Reader.coerce(name, value);\n }\n }, {\n key: \"_peekBytes\",\n value: function _peekBytes(offset, length, loose) {\n var alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\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\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n }, {\n key: \"subReader\",\n value: function subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n }, {\n key: \"readBytes\",\n value: function readBytes(length, loose) {\n var bytes = this._peekBytes(0, length, !!loose);\n\n this._offset += bytes.length; // @TODO: Make sure the length..end bytes are all 0?\n\n return bytes.slice(0, length);\n }\n }, {\n key: \"readValue\",\n value: function readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n }], [{\n key: \"coerce\",\n value: function coerce(name, value) {\n var match = name.match(\"^u?int([0-9]+)$\");\n\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n\n return value;\n }\n }]);\n\n return Reader;\n}();","\"use strict\";\n\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}","export var version = \"rlp/5.7.0\";","\"use strict\"; //See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\n\nfunction arrayifyInteger(value) {\n var result = [];\n\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n\n return result;\n}\n\nfunction unarrayifyInteger(data, offset, length) {\n var result = 0;\n\n for (var i = 0; i < length; i++) {\n result = result * 256 + data[offset + i];\n }\n\n return result;\n}\n\nfunction _encode(object) {\n if (Array.isArray(object)) {\n var payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n\n var _length = arrayifyInteger(payload.length);\n\n _length.unshift(0xf7 + _length.length);\n\n return _length.concat(payload);\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n var data = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n var length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\n\nexport function encode(object) {\n return hexlify(_encode(object));\n}\n\nfunction _decodeChildren(data, offset, childOffset, length) {\n var result = [];\n\n while (childOffset < offset + 1 + length) {\n var decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n childOffset += decoded.consumed;\n\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n\n return {\n consumed: 1 + length,\n result: result\n };\n} // returns { consumed: number, result: Object }\n\n\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n } // Array with extra length prefix\n\n\n if (data[offset] >= 0xf8) {\n var lengthLength = data[offset] - 0xf7;\n\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n\n var length = unarrayifyInteger(data, offset + 1, lengthLength);\n\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n } else if (data[offset] >= 0xc0) {\n var _length2 = data[offset] - 0xc0;\n\n if (offset + 1 + _length2 > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n\n return _decodeChildren(data, offset, offset + 1, _length2);\n } else if (data[offset] >= 0xb8) {\n var _lengthLength = data[offset] - 0xb7;\n\n if (offset + 1 + _lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n\n var _length3 = unarrayifyInteger(data, offset + 1, _lengthLength);\n\n if (offset + 1 + _lengthLength + _length3 > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n\n var result = hexlify(data.slice(offset + 1 + _lengthLength, offset + 1 + _lengthLength + _length3));\n return {\n consumed: 1 + _lengthLength + _length3,\n result: result\n };\n } else if (data[offset] >= 0x80) {\n var _length4 = data[offset] - 0x80;\n\n if (offset + 1 + _length4 > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n\n var _result = hexlify(data.slice(offset + 1, offset + 1 + _length4));\n\n return {\n consumed: 1 + _length4,\n result: _result\n };\n }\n\n return {\n consumed: 1,\n result: hexlify(data[offset])\n };\n}\n\nexport function decode(data) {\n var bytes = arrayify(data);\n\n var decoded = _decode(bytes, 0);\n\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n\n return decoded.result;\n}","export var version = \"address/5.7.0\";","\"use strict\";\n\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\";\nvar logger = new Logger(version);\n\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n var chars = address.substring(2).split(\"\");\n var expanded = new Uint8Array(40);\n\n for (var i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n var hashed = arrayify(keccak256(expanded));\n\n for (var _i = 0; _i < 40; _i += 2) {\n if (hashed[_i >> 1] >> 4 >= 8) {\n chars[_i] = chars[_i].toUpperCase();\n }\n\n if ((hashed[_i >> 1] & 0x0f) >= 8) {\n chars[_i + 1] = chars[_i + 1].toUpperCase();\n }\n }\n\n return \"0x\" + chars.join(\"\");\n} // Shims for environments that are missing some required constants and functions\n\n\nvar MAX_SAFE_INTEGER = 0x1fffffffffffff;\n\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n\n return Math.log(x) / Math.LN10;\n} // See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\n\n\nvar ibanLookup = {};\n\nfor (var i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\n\nfor (var _i2 = 0; _i2 < 26; _i2++) {\n ibanLookup[String.fromCharCode(65 + _i2)] = String(10 + _i2);\n} // How many decimal digits can we process? (for 64-bit float, this is 15)\n\n\nvar safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n var expanded = address.split(\"\").map(function (c) {\n return ibanLookup[c];\n }).join(\"\"); // Javascript can handle integers safely up to 15 (decimal) digits\n\n while (expanded.length >= safeDigits) {\n var block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n\n var checksum = String(98 - parseInt(expanded, 10) % 97);\n\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n\n return checksum;\n}\n\n;\nexport function getAddress(address) {\n var result = null;\n\n if (typeof address !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\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\n result = getChecksumAddress(address); // It is a checksummed address with a bad checksum\n\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\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\n result = _base36To16(address.substring(4));\n\n while (result.length < 40) {\n result = \"0\" + result;\n }\n\n result = getChecksumAddress(\"0x\" + result);\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n } catch (error) {}\n\n return false;\n}\nexport function getIcapAddress(address) {\n var base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n} // http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\n\nexport function getContractAddress(transaction) {\n var from = null;\n\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n var 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\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}","export var version = \"strings/5.7.0\";","\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version); ///////////////////////////////\n\nexport var UnicodeNormalizationForm;\n\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\n;\nexport var Utf8ErrorReason;\n\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\"; // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\"; // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\"; // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\"; // 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\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\"; // 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\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\"; // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n\n;\n\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(\"invalid codepoint at offset \".concat(offset, \"; \").concat(reason), \"bytes\", bytes);\n}\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 var i = 0;\n\n for (var o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n\n i++;\n }\n\n return i;\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\n\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n } // Nothing to skip\n\n\n return 0;\n}\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 } // Put the replacement character into the output\n\n\n output.push(0xfffd); // Otherwise, process as if ignoring errors\n\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n} // Common error handing strategies\n\n\nexport var Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n}); // http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\n\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n\n bytes = arrayify(bytes);\n var result = [];\n var i = 0; // Invalid bytes are ignored\n\n while (i < bytes.length) {\n var c = bytes[i++]; // 0xxx xxxx\n\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n } // Multibyte; how many bytes left for this character?\n\n\n var extraLength = null;\n var overlongMask = null; // 110x xxxx 10xx xxxx\n\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f; // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff; // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n\n continue;\n } // Do we have enough bytes in our data?\n\n\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n } // Remove the length prefix from the char\n\n\n var res = c & (1 << 8 - extraLength - 1) - 1;\n\n for (var j = 0; j < extraLength; j++) {\n var nextChar = bytes[i]; // Invalid continuation byte\n\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n\n ;\n res = res << 6 | nextChar & 0x3f;\n i++;\n } // See above loop for invalid continuation byte\n\n\n if (res === null) {\n continue;\n } // Maximum code point\n\n\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n } // Reserved for UTF-16 surrogate halves\n\n\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n } // Check for overlong sequences (more bytes than needed)\n\n\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n} // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n\n\nexport function toUtf8Bytes(str) {\n var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : UnicodeNormalizationForm.current;\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n var result = [];\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n\n if (c < 0x80) {\n result.push(c);\n } else if (c < 0x800) {\n result.push(c >> 6 | 0xc0);\n result.push(c & 0x3f | 0x80);\n } else if ((c & 0xfc00) == 0xd800) {\n i++;\n var c2 = str.charCodeAt(i);\n\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n } // Surrogate Pair\n\n\n var 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 } else {\n result.push(c >> 12 | 0xe0);\n result.push(c >> 6 & 0x3f | 0x80);\n result.push(c & 0x3f | 0x80);\n }\n }\n\n return arrayify(result);\n}\n;\n\nfunction escapeChar(value) {\n var hex = \"0000\" + value.toString(16);\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map(function (codePoint) {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8:\n return \"\\\\b\";\n\n case 9:\n return \"\\\\t\";\n\n case 10:\n return \"\\\\n\";\n\n case 13:\n return \"\\\\r\";\n\n case 34:\n return \"\\\\\\\"\";\n\n case 92:\n return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\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(function (codePoint) {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\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) {\n var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : UnicodeNormalizationForm.current;\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport var AddressCoder = /*#__PURE__*/function (_Coder) {\n _inherits(AddressCoder, _Coder);\n\n var _super = _createSuper(AddressCoder);\n\n function AddressCoder(localName) {\n _classCallCheck(this, AddressCoder);\n\n return _super.call(this, \"address\", \"address\", localName, false);\n }\n\n _createClass(AddressCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n try {\n value = getAddress(value);\n } catch (error) {\n this._throwError(error.message, value);\n }\n\n return writer.writeValue(value);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n }]);\n\n return AddressCoder;\n}(Coder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Coder } from \"./abstract-coder\"; // Clones the functionality of an existing Coder, but without a localName\n\nexport var AnonymousCoder = /*#__PURE__*/function (_Coder) {\n _inherits(AnonymousCoder, _Coder);\n\n var _super = _createSuper(AnonymousCoder);\n\n function AnonymousCoder(coder) {\n var _this;\n\n _classCallCheck(this, AnonymousCoder);\n\n _this = _super.call(this, coder.name, coder.type, undefined, coder.dynamic);\n _this.coder = coder;\n return _this;\n }\n\n _createClass(AnonymousCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return this.coder.defaultValue();\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return this.coder.decode(reader);\n }\n }]);\n\n return AnonymousCoder;\n}(Coder);","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nvar logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n var arrayValues = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n } else if (values && _typeof(values) === \"object\") {\n var unique = {};\n arrayValues = coders.map(function (coder) {\n var name = coder.localName;\n\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\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\n unique[name] = true;\n return values[name];\n });\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n var staticWriter = new Writer(writer.wordSize);\n var dynamicWriter = new Writer(writer.wordSize);\n var updateFuncs = [];\n coders.forEach(function (coder, index) {\n var value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n var dynamicOffset = dynamicWriter.length; // Encode the dynamic value into the dynamicWriter\n\n coder.encode(dynamicWriter, value); // Prepare to populate the correct offset once we are done\n\n var updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push(function (baseOffset) {\n updateFunc(baseOffset + dynamicOffset);\n });\n } else {\n coder.encode(staticWriter, value);\n }\n }); // Backfill all the dynamic offsets, now that we know the static length\n\n updateFuncs.forEach(function (func) {\n func(staticWriter.length);\n });\n var length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n var values = []; // A reader anchored to this base\n\n var baseReader = reader.subReader(0);\n coders.forEach(function (coder) {\n var value = null;\n\n if (coder.dynamic) {\n var offset = reader.readValue();\n var offsetReader = baseReader.subReader(offset.toNumber());\n\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n } else {\n try {\n value = coder.decode(reader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n }); // We only output named properties for uniquely named coders\n\n var uniqueNames = coders.reduce(function (accum, coder) {\n var name = coder.localName;\n\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n\n accum[name]++;\n }\n\n return accum;\n }, {}); // Add any named parameters (i.e. tuples)\n\n coders.forEach(function (coder, index) {\n var name = coder.localName;\n\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n\n if (name === \"length\") {\n name = \"_length\";\n }\n\n if (values[name] != null) {\n return;\n }\n\n var value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: function get() {\n throw value;\n }\n });\n } else {\n values[name] = value;\n }\n });\n\n var _loop = function _loop(i) {\n var value = values[i];\n\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: function get() {\n throw value;\n }\n });\n }\n };\n\n for (var i = 0; i < values.length; i++) {\n _loop(i);\n }\n\n return Object.freeze(values);\n}\nexport var ArrayCoder = /*#__PURE__*/function (_Coder) {\n _inherits(ArrayCoder, _Coder);\n\n var _super = _createSuper(ArrayCoder);\n\n function ArrayCoder(coder, length, localName) {\n var _this;\n\n _classCallCheck(this, ArrayCoder);\n\n var type = coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\";\n var dynamic = length === -1 || coder.dynamic;\n _this = _super.call(this, \"array\", type, localName, dynamic);\n _this.coder = coder;\n _this.length = length;\n return _this;\n }\n\n _createClass(ArrayCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n var defaultChild = this.coder.defaultValue();\n var result = [];\n\n for (var i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n\n return result;\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n var count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? \" \" + this.localName : \"\"));\n var coders = [];\n\n for (var i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n\n return pack(writer, coders, value);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n var count = this.length;\n\n if (count === -1) {\n count = reader.readValue().toNumber(); // 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\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\n var coders = [];\n\n for (var i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n }]);\n\n return ArrayCoder;\n}(Coder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Coder } from \"./abstract-coder\";\nexport var BooleanCoder = /*#__PURE__*/function (_Coder) {\n _inherits(BooleanCoder, _Coder);\n\n var _super = _createSuper(BooleanCoder);\n\n function BooleanCoder(localName) {\n _classCallCheck(this, BooleanCoder);\n\n return _super.call(this, \"bool\", \"bool\", localName, false);\n }\n\n _createClass(BooleanCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return false;\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n }]);\n\n return BooleanCoder;\n}(Coder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport var DynamicBytesCoder = /*#__PURE__*/function (_Coder) {\n _inherits(DynamicBytesCoder, _Coder);\n\n var _super = _createSuper(DynamicBytesCoder);\n\n function DynamicBytesCoder(type, localName) {\n _classCallCheck(this, DynamicBytesCoder);\n\n return _super.call(this, type, type, localName, true);\n }\n\n _createClass(DynamicBytesCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return \"0x\";\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n value = arrayify(value);\n var length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n }]);\n\n return DynamicBytesCoder;\n}(Coder);\nexport var BytesCoder = /*#__PURE__*/function (_DynamicBytesCoder) {\n _inherits(BytesCoder, _DynamicBytesCoder);\n\n var _super2 = _createSuper(BytesCoder);\n\n function BytesCoder(localName) {\n _classCallCheck(this, BytesCoder);\n\n return _super2.call(this, \"bytes\", localName);\n }\n\n _createClass(BytesCoder, [{\n key: \"decode\",\n value: function decode(reader) {\n return reader.coerce(this.name, hexlify(_get(_getPrototypeOf(BytesCoder.prototype), \"decode\", this).call(this, reader)));\n }\n }]);\n\n return BytesCoder;\n}(DynamicBytesCoder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\"; // @TODO: Merge this with bytes\n\nexport var FixedBytesCoder = /*#__PURE__*/function (_Coder) {\n _inherits(FixedBytesCoder, _Coder);\n\n var _super = _createSuper(FixedBytesCoder);\n\n function FixedBytesCoder(size, localName) {\n var _this;\n\n _classCallCheck(this, FixedBytesCoder);\n\n var name = \"bytes\" + String(size);\n _this = _super.call(this, name, name, localName, false);\n _this.size = size;\n return _this;\n }\n\n _createClass(FixedBytesCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return \"0x0000000000000000000000000000000000000000000000000000000000000000\".substring(0, 2 + this.size * 2);\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n var data = arrayify(value);\n\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n\n return writer.writeBytes(data);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n }]);\n\n return FixedBytesCoder;\n}(Coder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Coder } from \"./abstract-coder\";\nexport var NullCoder = /*#__PURE__*/function (_Coder) {\n _inherits(NullCoder, _Coder);\n\n var _super = _createSuper(NullCoder);\n\n function NullCoder(localName) {\n _classCallCheck(this, NullCoder);\n\n return _super.call(this, \"null\", \"\", localName, false);\n }\n\n _createClass(NullCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return null;\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n\n return writer.writeBytes([]);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n }]);\n\n return NullCoder;\n}(Coder);","import { BigNumber } from \"@ethersproject/bignumber\";\nvar NegativeOne = /*#__PURE__*/BigNumber.from(-1);\nvar Zero = /*#__PURE__*/BigNumber.from(0);\nvar One = /*#__PURE__*/BigNumber.from(1);\nvar Two = /*#__PURE__*/BigNumber.from(2);\nvar WeiPerEther = /*#__PURE__*/BigNumber.from(\"1000000000000000000\");\nvar MaxUint256 = /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nvar MinInt256 = /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\");\nvar MaxInt256 = /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256 };","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport var NumberCoder = /*#__PURE__*/function (_Coder) {\n _inherits(NumberCoder, _Coder);\n\n var _super = _createSuper(NumberCoder);\n\n function NumberCoder(size, signed, localName) {\n var _this;\n\n _classCallCheck(this, NumberCoder);\n\n var name = (signed ? \"int\" : \"uint\") + size * 8;\n _this = _super.call(this, name, name, localName, false);\n _this.size = size;\n _this.signed = signed;\n return _this;\n }\n\n _createClass(NumberCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return 0;\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n var v = BigNumber.from(value); // Check bounds are safe for encoding\n\n var maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n\n if (this.signed) {\n var bounds = maxUintValue.mask(this.size * 8 - 1);\n\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n var value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n }]);\n\n return NumberCoder;\n}(Coder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport var StringCoder = /*#__PURE__*/function (_DynamicBytesCoder) {\n _inherits(StringCoder, _DynamicBytesCoder);\n\n var _super = _createSuper(StringCoder);\n\n function StringCoder(localName) {\n _classCallCheck(this, StringCoder);\n\n return _super.call(this, \"string\", localName);\n }\n\n _createClass(StringCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n return \"\";\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n return _get(_getPrototypeOf(StringCoder.prototype), \"encode\", this).call(this, writer, toUtf8Bytes(value));\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return toUtf8String(_get(_getPrototypeOf(StringCoder.prototype), \"decode\", this).call(this, reader));\n }\n }]);\n\n return StringCoder;\n}(DynamicBytesCoder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport var TupleCoder = /*#__PURE__*/function (_Coder) {\n _inherits(TupleCoder, _Coder);\n\n var _super = _createSuper(TupleCoder);\n\n function TupleCoder(coders, localName) {\n var _this;\n\n _classCallCheck(this, TupleCoder);\n\n var dynamic = false;\n var types = [];\n coders.forEach(function (coder) {\n if (coder.dynamic) {\n dynamic = true;\n }\n\n types.push(coder.type);\n });\n var type = \"tuple(\" + types.join(\",\") + \")\";\n _this = _super.call(this, \"tuple\", type, localName, dynamic);\n _this.coders = coders;\n return _this;\n }\n\n _createClass(TupleCoder, [{\n key: \"defaultValue\",\n value: function defaultValue() {\n var values = [];\n this.coders.forEach(function (coder) {\n values.push(coder.defaultValue());\n }); // We only output named properties for uniquely named coders\n\n var uniqueNames = this.coders.reduce(function (accum, coder) {\n var name = coder.localName;\n\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n\n accum[name]++;\n }\n\n return accum;\n }, {}); // Add named values\n\n this.coders.forEach(function (coder, index) {\n var name = coder.localName;\n\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n\n if (name === \"length\") {\n name = \"_length\";\n }\n\n if (values[name] != null) {\n return;\n }\n\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n }, {\n key: \"encode\",\n value: function encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n }, {\n key: \"decode\",\n value: function decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n }]);\n\n return TupleCoder;\n}(Coder);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\n;\nvar _constructorGuard = {};\nvar ModifiersBytes = {\n calldata: true,\n memory: true,\n storage: true\n};\nvar ModifiersNest = {\n calldata: true,\n memory: true\n};\n\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n } else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n\n return false;\n} // @TODO: Make sure that children of an indexed tuple are marked with a null indexed\n\n\nfunction parseParamType(param, allowIndexed) {\n var originalParam = param;\n\n function throwError(i) {\n logger.throwArgumentError(\"unexpected character at position \".concat(i), \"param\", param);\n }\n\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent) {\n var node = {\n type: \"\",\n name: \"\",\n parent: parent,\n state: {\n allowType: true\n }\n };\n\n if (allowIndexed) {\n node.indexed = false;\n }\n\n return node;\n }\n\n var parent = {\n type: \"\",\n name: \"\",\n state: {\n allowType: true\n }\n };\n var node = parent;\n\n for (var i = 0; i < param.length; i++) {\n var c = param[i];\n\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\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\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n node.type = verifyType(node.type);\n var child = node;\n node = node.parent;\n\n if (!node) {\n throwError(i);\n }\n\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n node.type = verifyType(node.type);\n var sibling = newNode(node.parent); //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n\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 } // If reading name, the name is done\n\n\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n\n if (node.indexed) {\n throwError(i);\n }\n\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n\n }\n }\n\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n return parent;\n}\n\nfunction populate(object, params) {\n for (var key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\n\nexport var 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});\nvar paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport var ParamType = /*#__PURE__*/function () {\n function ParamType(constructorGuard, params) {\n _classCallCheck(this, ParamType);\n\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n\n populate(this, params);\n var match = this.type.match(paramTypeArray);\n\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 } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: this.components != null ? \"tuple\" : this.type\n });\n }\n\n this._isParamType = true;\n Object.freeze(this);\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\n\n _createClass(ParamType, [{\n key: \"format\",\n value: function format(_format) {\n if (!_format) {\n _format = FormatTypes.sighash;\n }\n\n if (!FormatTypes[_format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", _format);\n }\n\n if (_format === FormatTypes.json) {\n var _result = {\n type: this.baseType === \"tuple\" ? \"tuple\" : this.type,\n name: this.name || undefined\n };\n\n if (typeof this.indexed === \"boolean\") {\n _result.indexed = this.indexed;\n }\n\n if (this.components) {\n _result.components = this.components.map(function (comp) {\n return JSON.parse(comp.format(_format));\n });\n }\n\n return JSON.stringify(_result);\n }\n\n var result = \"\"; // Array\n\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(_format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (_format !== FormatTypes.sighash) {\n result += this.type;\n }\n\n result += \"(\" + this.components.map(function (comp) {\n return comp.format(_format);\n }).join(_format === FormatTypes.full ? \", \" : \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (_format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n\n if (_format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n }], [{\n key: \"from\",\n value: function from(value, allowIndexed) {\n if (typeof value === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n\n return ParamType.fromObject(value);\n }\n }, {\n key: \"fromObject\",\n value: function fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\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 }, {\n key: \"fromString\",\n value: function 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\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n }, {\n key: \"isParamType\",\n value: function isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n }]);\n\n return ParamType;\n}();\n;\n\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map(function (param) {\n return ParamType.fromString(param, allowIndex);\n });\n}\n\nexport var Fragment = /*#__PURE__*/function () {\n function Fragment(constructorGuard, params) {\n _classCallCheck(this, Fragment);\n\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n\n _createClass(Fragment, null, [{\n key: \"from\",\n value: function from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n }, {\n key: \"fromObject\",\n value: function fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n\n case \"event\":\n return EventFragment.fromObject(value);\n\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n\n case \"error\":\n return ErrorFragment.fromObject(value);\n\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n }, {\n key: \"fromString\",\n value: function 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\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n }, {\n key: \"isFragment\",\n value: function isFragment(value) {\n return !!(value && value._isFragment);\n }\n }]);\n\n return Fragment;\n}();\nexport var EventFragment = /*#__PURE__*/function (_Fragment) {\n _inherits(EventFragment, _Fragment);\n\n var _super = _createSuper(EventFragment);\n\n function EventFragment() {\n _classCallCheck(this, EventFragment);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(EventFragment, [{\n key: \"format\",\n value: function format(_format2) {\n if (!_format2) {\n _format2 = FormatTypes.sighash;\n }\n\n if (!FormatTypes[_format2]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", _format2);\n }\n\n if (_format2 === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map(function (input) {\n return JSON.parse(input.format(_format2));\n })\n });\n }\n\n var result = \"\";\n\n if (_format2 !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(function (input) {\n return input.format(_format2);\n }).join(_format2 === FormatTypes.full ? \", \" : \",\") + \") \";\n\n if (_format2 !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n }], [{\n key: \"from\",\n value: function from(value) {\n if (typeof value === \"string\") {\n return EventFragment.fromString(value);\n }\n\n return EventFragment.fromObject(value);\n }\n }, {\n key: \"fromObject\",\n value: function fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n var 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 }, {\n key: \"fromString\",\n value: function fromString(value) {\n var match = value.match(regexParen);\n\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n var anonymous = false;\n match[3].split(\" \").forEach(function (modifier) {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n\n case \"\":\n break;\n\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 }, {\n key: \"isEventFragment\",\n value: function isEventFragment(value) {\n return value && value._isFragment && value.type === \"event\";\n }\n }]);\n\n return EventFragment;\n}(Fragment);\n\nfunction parseGas(value, params) {\n params.gas = null;\n var comps = value.split(\"@\");\n\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach(function (modifier) {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n\n case \"external\":\n case \"public\":\n case \"\":\n break;\n\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\nfunction verifyState(value) {\n var result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability; // Set (and check things are consistent) the constant property\n\n result.constant = result.stateMutability === \"view\" || result.stateMutability === \"pure\";\n\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 } // Set (and check things are consistent) the payable property\n\n\n result.payable = result.stateMutability === \"payable\";\n\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 } else if (value.payable != null) {\n result.payable = !!value.payable; // If payable we can assume non-constant; otherwise we can't assume\n\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = result.payable ? \"payable\" : \"nonpayable\";\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\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 } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\nexport var ConstructorFragment = /*#__PURE__*/function (_Fragment2) {\n _inherits(ConstructorFragment, _Fragment2);\n\n var _super2 = _createSuper(ConstructorFragment);\n\n function ConstructorFragment() {\n _classCallCheck(this, ConstructorFragment);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(ConstructorFragment, [{\n key: \"format\",\n value: function format(_format3) {\n if (!_format3) {\n _format3 = FormatTypes.sighash;\n }\n\n if (!FormatTypes[_format3]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", _format3);\n }\n\n if (_format3 === 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(function (input) {\n return JSON.parse(input.format(_format3));\n })\n });\n }\n\n if (_format3 === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n var result = \"constructor(\" + this.inputs.map(function (input) {\n return input.format(_format3);\n }).join(_format3 === FormatTypes.full ? \", \" : \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n }], [{\n key: \"from\",\n value: function from(value) {\n if (typeof value === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n\n return ConstructorFragment.fromObject(value);\n }\n }, {\n key: \"fromObject\",\n value: function fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n var state = verifyState(value);\n\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n var 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 }, {\n key: \"fromString\",\n value: function fromString(value) {\n var params = {\n type: \"constructor\"\n };\n value = parseGas(value, params);\n var parens = value.match(regexParen);\n\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n }, {\n key: \"isConstructorFragment\",\n value: function isConstructorFragment(value) {\n return value && value._isFragment && value.type === \"constructor\";\n }\n }]);\n\n return ConstructorFragment;\n}(Fragment);\nexport var FunctionFragment = /*#__PURE__*/function (_ConstructorFragment) {\n _inherits(FunctionFragment, _ConstructorFragment);\n\n var _super3 = _createSuper(FunctionFragment);\n\n function FunctionFragment() {\n _classCallCheck(this, FunctionFragment);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(FunctionFragment, [{\n key: \"format\",\n value: function format(_format4) {\n if (!_format4) {\n _format4 = FormatTypes.sighash;\n }\n\n if (!FormatTypes[_format4]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", _format4);\n }\n\n if (_format4 === 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(function (input) {\n return JSON.parse(input.format(_format4));\n }),\n outputs: this.outputs.map(function (output) {\n return JSON.parse(output.format(_format4));\n })\n });\n }\n\n var result = \"\";\n\n if (_format4 !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(function (input) {\n return input.format(_format4);\n }).join(_format4 === FormatTypes.full ? \", \" : \",\") + \") \";\n\n if (_format4 !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(function (output) {\n return output.format(_format4);\n }).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n }], [{\n key: \"from\",\n value: function from(value) {\n if (typeof value === \"string\") {\n return FunctionFragment.fromString(value);\n }\n\n return FunctionFragment.fromObject(value);\n }\n }, {\n key: \"fromObject\",\n value: function fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n var state = verifyState(value);\n var 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 }, {\n key: \"fromString\",\n value: function fromString(value) {\n var params = {\n type: \"function\"\n };\n value = parseGas(value, params);\n var comps = value.split(\" returns \");\n\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n var parens = comps[0].match(regexParen);\n\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n\n if (params.name) {\n verifyIdentifier(params.name);\n }\n\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params); // We have outputs\n\n if (comps.length > 1) {\n var returns = comps[1].match(regexParen);\n\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [];\n }\n\n return FunctionFragment.fromObject(params);\n }\n }, {\n key: \"isFunctionFragment\",\n value: function isFunctionFragment(value) {\n return value && value._isFragment && value.type === \"function\";\n }\n }]);\n\n return FunctionFragment;\n}(ConstructorFragment); //export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment) {\n var sig = fragment.format();\n\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(\"cannot specify user defined \".concat(sig, \" error\"), \"fragment\", fragment);\n }\n\n return fragment;\n}\n\nexport var ErrorFragment = /*#__PURE__*/function (_Fragment3) {\n _inherits(ErrorFragment, _Fragment3);\n\n var _super4 = _createSuper(ErrorFragment);\n\n function ErrorFragment() {\n _classCallCheck(this, ErrorFragment);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(ErrorFragment, [{\n key: \"format\",\n value: function format(_format5) {\n if (!_format5) {\n _format5 = FormatTypes.sighash;\n }\n\n if (!FormatTypes[_format5]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", _format5);\n }\n\n if (_format5 === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map(function (input) {\n return JSON.parse(input.format(_format5));\n })\n });\n }\n\n var result = \"\";\n\n if (_format5 !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(function (input) {\n return input.format(_format5);\n }).join(_format5 === FormatTypes.full ? \", \" : \",\") + \") \";\n return result.trim();\n }\n }], [{\n key: \"from\",\n value: function from(value) {\n if (typeof value === \"string\") {\n return ErrorFragment.fromString(value);\n }\n\n return ErrorFragment.fromObject(value);\n }\n }, {\n key: \"fromObject\",\n value: function fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n var 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 }, {\n key: \"fromString\",\n value: function fromString(value) {\n var params = {\n type: \"error\"\n };\n var parens = value.match(regexParen);\n\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n\n if (params.name) {\n verifyIdentifier(params.name);\n }\n\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n }, {\n key: \"isErrorFragment\",\n value: function isErrorFragment(value) {\n return value && value._isFragment && value.type === \"error\";\n }\n }]);\n\n return ErrorFragment;\n}(Fragment);\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 } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n } // @TODO: more verification\n\n\n return type;\n} // See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\n\n\nvar regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\n\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(\"invalid identifier \\\"\".concat(value, \"\\\"\"), \"value\", value);\n }\n\n return value;\n}\n\nvar regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value) {\n value = value.trim();\n var result = [];\n var accum = \"\";\n var depth = 0;\n\n for (var offset = 0; offset < value.length; offset++) {\n var c = value[offset];\n\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n\n if (accum) {\n result.push(accum);\n }\n\n return result;\n}","\"use strict\"; // See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar 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\";\nvar paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nvar paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport var AbiCoder = /*#__PURE__*/function () {\n function AbiCoder(coerceFunc) {\n _classCallCheck(this, AbiCoder);\n\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _createClass(AbiCoder, [{\n key: \"_getCoder\",\n value: function _getCoder(param) {\n var _this = this;\n\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n\n case \"bool\":\n return new BooleanCoder(param.name);\n\n case \"string\":\n return new StringCoder(param.name);\n\n case \"bytes\":\n return new BytesCoder(param.name);\n\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n\n case \"tuple\":\n return new TupleCoder((param.components || []).map(function (component) {\n return _this._getCoder(component);\n }), param.name);\n\n case \"\":\n return new NullCoder(param.name);\n } // u?int[0-9]*\n\n\n var match = param.type.match(paramTypeNumber);\n\n if (match) {\n var size = parseInt(match[2] || \"256\");\n\n if (size === 0 || size > 256 || size % 8 !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n\n return new NumberCoder(size / 8, match[1] === \"int\", param.name);\n } // bytes[0-9]+\n\n\n match = param.type.match(paramTypeBytes);\n\n if (match) {\n var _size = parseInt(match[1]);\n\n if (_size === 0 || _size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n\n return new FixedBytesCoder(_size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n }, {\n key: \"_getWordSize\",\n value: function _getWordSize() {\n return 32;\n }\n }, {\n key: \"_getReader\",\n value: function _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n }, {\n key: \"_getWriter\",\n value: function _getWriter() {\n return new Writer(this._getWordSize());\n }\n }, {\n key: \"getDefaultValue\",\n value: function getDefaultValue(types) {\n var _this2 = this;\n\n var coders = types.map(function (type) {\n return _this2._getCoder(ParamType.from(type));\n });\n var coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n }, {\n key: \"encode\",\n value: function encode(types, values) {\n var _this3 = this;\n\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: {\n types: types.length,\n values: values.length\n },\n value: {\n types: types,\n values: values\n }\n });\n }\n\n var coders = types.map(function (type) {\n return _this3._getCoder(ParamType.from(type));\n });\n var coder = new TupleCoder(coders, \"_\");\n\n var writer = this._getWriter();\n\n coder.encode(writer, values);\n return writer.data;\n }\n }, {\n key: \"decode\",\n value: function decode(types, data, loose) {\n var _this4 = this;\n\n var coders = types.map(function (type) {\n return _this4._getCoder(ParamType.from(type));\n });\n var coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n }]);\n\n return AbiCoder;\n}();\nexport var defaultAbiCoder = new AbiCoder();","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { getAddress as _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\";\nvar logger = new Logger(version);\nexport { checkResultErrors };\nexport var LogDescription = /*#__PURE__*/function (_Description) {\n _inherits(LogDescription, _Description);\n\n var _super = _createSuper(LogDescription);\n\n function LogDescription() {\n _classCallCheck(this, LogDescription);\n\n return _super.apply(this, arguments);\n }\n\n return _createClass(LogDescription);\n}(Description);\nexport var TransactionDescription = /*#__PURE__*/function (_Description2) {\n _inherits(TransactionDescription, _Description2);\n\n var _super2 = _createSuper(TransactionDescription);\n\n function TransactionDescription() {\n _classCallCheck(this, TransactionDescription);\n\n return _super2.apply(this, arguments);\n }\n\n return _createClass(TransactionDescription);\n}(Description);\nexport var ErrorDescription = /*#__PURE__*/function (_Description3) {\n _inherits(ErrorDescription, _Description3);\n\n var _super3 = _createSuper(ErrorDescription);\n\n function ErrorDescription() {\n _classCallCheck(this, ErrorDescription);\n\n return _super3.apply(this, arguments);\n }\n\n return _createClass(ErrorDescription);\n}(Description);\nexport var Indexed = /*#__PURE__*/function (_Description4) {\n _inherits(Indexed, _Description4);\n\n var _super4 = _createSuper(Indexed);\n\n function Indexed() {\n _classCallCheck(this, Indexed);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(Indexed, null, [{\n key: \"isIndexed\",\n value: function isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n }]);\n\n return Indexed;\n}(Description);\nvar BuiltinErrors = {\n \"0x08c379a0\": {\n signature: \"Error(string)\",\n name: \"Error\",\n inputs: [\"string\"],\n reason: true\n },\n \"0x4e487b71\": {\n signature: \"Panic(uint256)\",\n name: \"Panic\",\n inputs: [\"uint256\"]\n }\n};\n\nfunction wrapAccessError(property, error) {\n var wrap = new Error(\"deferred error during ABI decoding triggered accessing \".concat(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*/\n\n\nexport var Interface = /*#__PURE__*/function () {\n function Interface(fragments) {\n var _this = this;\n\n _classCallCheck(this, Interface);\n\n var abi = [];\n\n if (typeof fragments === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map(function (fragment) {\n return Fragment.from(fragment);\n }).filter(function (fragment) {\n return fragment != null;\n }));\n defineReadOnly(this, \"_abiCoder\", getStatic(this instanceof Interface ? this.constructor : void 0, \"getAbiCoder\")());\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"errors\", {});\n defineReadOnly(this, \"events\", {});\n defineReadOnly(this, \"structs\", {}); // Add all fragments by their signature\n\n this.fragments.forEach(function (fragment) {\n var bucket = null;\n\n switch (fragment.type) {\n case \"constructor\":\n if (_this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n } //checkNames(fragment, \"input\", fragment.inputs);\n\n\n defineReadOnly(_this, \"deploy\", fragment);\n return;\n\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = _this.functions;\n break;\n\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = _this.events;\n break;\n\n case \"error\":\n bucket = _this.errors;\n break;\n\n default:\n return;\n }\n\n var signature = fragment.format();\n\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n }); // If we do not have a constructor add a default\n\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n _createClass(Interface, [{\n key: \"format\",\n value: function format(_format) {\n if (!_format) {\n _format = FormatTypes.full;\n }\n\n if (_format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", _format);\n }\n\n var abi = this.fragments.map(function (fragment) {\n return fragment.format(_format);\n }); // We need to re-bundle the JSON fragments a bit\n\n if (_format === FormatTypes.json) {\n return JSON.stringify(abi.map(function (j) {\n return JSON.parse(j);\n }));\n }\n\n return abi;\n } // Sub-classes can override these to handle other blockchains\n\n }, {\n key: \"getFunction\",\n value: // Find a function definition by any means necessary (unless it is ambiguous)\n function getFunction(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (var name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n } // It is a bare name, look up the function (will return null if ambiguous)\n\n\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n var _name = nameOrSignatureOrSighash.trim();\n\n var matching = Object.keys(this.functions).filter(function (f) {\n return f.split(\"(\"\n /* fix:) */\n )[0] === _name;\n });\n\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", _name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", _name);\n }\n\n return this.functions[matching[0]];\n } // Normalize the signature and lookup the function\n\n\n var result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n\n return result;\n } // Find an event definition by any means necessary (unless it is ambiguous)\n\n }, {\n key: \"getEvent\",\n value: function getEvent(nameOrSignatureOrTopic) {\n if (isHexString(nameOrSignatureOrTopic)) {\n var topichash = nameOrSignatureOrTopic.toLowerCase();\n\n for (var name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n } // It is a bare name, look up the function (will return null if ambiguous)\n\n\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n var _name2 = nameOrSignatureOrTopic.trim();\n\n var matching = Object.keys(this.events).filter(function (f) {\n return f.split(\"(\"\n /* fix:) */\n )[0] === _name2;\n });\n\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", _name2);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", _name2);\n }\n\n return this.events[matching[0]];\n } // Normalize the signature and lookup the function\n\n\n var result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n\n return result;\n } // Find a function definition by any means necessary (unless it is ambiguous)\n\n }, {\n key: \"getError\",\n value: function getError(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n var getSighash = getStatic(this.constructor, \"getSighash\");\n\n for (var name in this.errors) {\n var error = this.errors[name];\n\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n } // It is a bare name, look up the function (will return null if ambiguous)\n\n\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n var _name3 = nameOrSignatureOrSighash.trim();\n\n var matching = Object.keys(this.errors).filter(function (f) {\n return f.split(\"(\"\n /* fix:) */\n )[0] === _name3;\n });\n\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", _name3);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", _name3);\n }\n\n return this.errors[matching[0]];\n } // Normalize the signature and lookup the function\n\n\n var result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n\n return result;\n } // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n\n }, {\n key: \"getSighash\",\n value: function getSighash(fragment) {\n if (typeof fragment === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic(this.constructor, \"getSighash\")(fragment);\n } // Get the topic (the bytes32 hash) used by Solidity to identify an event\n\n }, {\n key: \"getEventTopic\",\n value: function getEventTopic(eventFragment) {\n if (typeof eventFragment === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic(this.constructor, \"getEventTopic\")(eventFragment);\n }\n }, {\n key: \"_decodeParams\",\n value: function _decodeParams(params, data) {\n return this._abiCoder.decode(params, data);\n }\n }, {\n key: \"_encodeParams\",\n value: function _encodeParams(params, values) {\n return this._abiCoder.encode(params, values);\n }\n }, {\n key: \"encodeDeploy\",\n value: function encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n }, {\n key: \"decodeErrorResult\",\n value: function decodeErrorResult(fragment, data) {\n if (typeof fragment === \"string\") {\n fragment = this.getError(fragment);\n }\n\n var bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(\"data signature does not match error \".concat(fragment.name, \".\"), \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n }, {\n key: \"encodeErrorResult\",\n value: function encodeErrorResult(fragment, values) {\n if (typeof fragment === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([this.getSighash(fragment), this._encodeParams(fragment.inputs, values || [])]));\n } // Decode the data for a function call (e.g. tx.data)\n\n }, {\n key: \"decodeFunctionData\",\n value: function decodeFunctionData(functionFragment, data) {\n if (typeof functionFragment === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n var bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(\"data signature does not match function \".concat(functionFragment.name, \".\"), \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n } // Encode the data for a function call (e.g. tx.data)\n\n }, {\n key: \"encodeFunctionData\",\n value: function encodeFunctionData(functionFragment, values) {\n if (typeof functionFragment === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([this.getSighash(functionFragment), this._encodeParams(functionFragment.inputs, values || [])]));\n } // Decode the result from a function call (e.g. from eth_call)\n\n }, {\n key: \"decodeFunctionResult\",\n value: function decodeFunctionResult(functionFragment, data) {\n if (typeof functionFragment === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n var bytes = arrayify(data);\n var reason = null;\n var message = \"\";\n var errorArgs = null;\n var errorName = null;\n var errorSignature = null;\n\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) {}\n\n break;\n\n case 4:\n {\n var selector = hexlify(bytes.slice(0, 4));\n var builtin = BuiltinErrors[selector];\n\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n\n if (builtin.reason) {\n reason = errorArgs[0];\n }\n\n if (errorName === \"Error\") {\n message = \"; VM Exception while processing transaction: reverted with reason string \".concat(JSON.stringify(errorArgs[0]));\n } else if (errorName === \"Panic\") {\n message = \"; VM Exception while processing transaction: reverted with panic code \".concat(errorArgs[0]);\n }\n } else {\n try {\n var error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) {}\n }\n\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data),\n errorArgs: errorArgs,\n errorName: errorName,\n errorSignature: errorSignature,\n reason: reason\n });\n } // Encode the result for a function call (e.g. for eth_call)\n\n }, {\n key: \"encodeFunctionResult\",\n value: function encodeFunctionResult(functionFragment, values) {\n if (typeof functionFragment === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));\n } // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n\n }, {\n key: \"encodeFilterTopics\",\n value: function encodeFilterTopics(eventFragment, values) {\n var _this2 = this;\n\n if (typeof eventFragment === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\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\n var topics = [];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n var encodeTopic = function encodeTopic(param, value) {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof value === \"boolean\") {\n value = value ? \"0x01\" : \"0x00\";\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n } // Check addresses are valid\n\n\n if (param.type === \"address\") {\n _this2._abiCoder.encode([\"address\"], [value]);\n }\n\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach(function (value, index) {\n var param = eventFragment.inputs[index];\n\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\n return;\n }\n\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", \"contract.\" + param.name, value);\n } else if (Array.isArray(value)) {\n topics.push(value.map(function (value) {\n return encodeTopic(param, value);\n }));\n } else {\n topics.push(encodeTopic(param, value));\n }\n }); // Trim off trailing nulls\n\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n }, {\n key: \"encodeEventLog\",\n value: function encodeEventLog(eventFragment, values) {\n var _this3 = this;\n\n if (typeof eventFragment === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n var topics = [];\n var dataTypes = [];\n var dataValues = [];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach(function (param, index) {\n var value = values[index];\n\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(_this3._abiCoder.encode([param.type], [value]));\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 } // Decode a filter for the event and the search criteria\n\n }, {\n key: \"decodeEventLog\",\n value: function decodeEventLog(eventFragment, data, topics) {\n if (typeof eventFragment === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n var topicHash = this.getEventTopic(eventFragment);\n\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"topics[0]\",\n expected: topicHash,\n value: topics[0]\n });\n }\n\n topics = topics.slice(1);\n }\n\n var indexed = [];\n var nonIndexed = [];\n var dynamic = [];\n eventFragment.inputs.forEach(function (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({\n type: \"bytes32\",\n name: param.name\n }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n var resultIndexed = topics != null ? this._abiCoder.decode(indexed, concat(topics)) : null;\n\n var resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n var result = [];\n var nonIndexedIndex = 0,\n indexedIndex = 0;\n eventFragment.inputs.forEach(function (param, index) {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({\n _isIndexed: true,\n hash: null\n });\n } else if (dynamic[index]) {\n result[index] = new Indexed({\n _isIndexed: true,\n hash: resultIndexed[indexedIndex++]\n });\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n } // Add the keyword argument if named and safe\n\n\n if (param.name && result[param.name] == null) {\n var value = result[index]; // Make error named values throw on access\n\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: function get() {\n throw wrapAccessError(\"property \".concat(JSON.stringify(param.name)), value);\n }\n });\n } else {\n result[param.name] = value;\n }\n }\n }); // Make all error indexed values throw on access\n\n var _loop = function _loop(i) {\n var value = result[i];\n\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: function get() {\n throw wrapAccessError(\"index \".concat(i), value);\n }\n });\n }\n };\n\n for (var i = 0; i < result.length; i++) {\n _loop(i);\n }\n\n return Object.freeze(result);\n } // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n\n }, {\n key: \"parseTransaction\",\n value: function parseTransaction(tx) {\n var fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());\n\n if (!fragment) {\n return null;\n }\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 } // @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\n }, {\n key: \"parseLog\",\n value: function parseLog(log) {\n var fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) {\n return null;\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\n\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 }, {\n key: \"parseError\",\n value: function parseError(data) {\n var hexData = hexlify(data);\n var fragment = this.getError(hexData.substring(0, 10).toLowerCase());\n\n if (!fragment) {\n return null;\n }\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\n }], [{\n key: \"getAbiCoder\",\n value: function getAbiCoder() {\n return defaultAbiCoder;\n }\n }, {\n key: \"getAddress\",\n value: function getAddress(address) {\n return _getAddress(address);\n }\n }, {\n key: \"getSighash\",\n value: function getSighash(fragment) {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n }, {\n key: \"getEventTopic\",\n value: function getEventTopic(eventFragment) {\n return id(eventFragment.format());\n }\n }, {\n key: \"isInterface\",\n value: function isInterface(value) {\n return !!(value && value._isInterface);\n }\n }]);\n\n return Interface;\n}();","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar logger = new Logger(version);\n;\n; //export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport var ForkEvent = /*#__PURE__*/function (_Description) {\n _inherits(ForkEvent, _Description);\n\n var _super = _createSuper(ForkEvent);\n\n function ForkEvent() {\n _classCallCheck(this, ForkEvent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ForkEvent, null, [{\n key: \"isForkEvent\",\n value: function isForkEvent(value) {\n return !!(value && value._isForkEvent);\n }\n }]);\n\n return ForkEvent;\n}(Description);\nexport var BlockForkEvent = /*#__PURE__*/function (_ForkEvent) {\n _inherits(BlockForkEvent, _ForkEvent);\n\n var _super2 = _createSuper(BlockForkEvent);\n\n function BlockForkEvent(blockHash, expiry) {\n _classCallCheck(this, BlockForkEvent);\n\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n return _super2.call(this, {\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: expiry || 0,\n blockHash: blockHash\n });\n }\n\n return _createClass(BlockForkEvent);\n}(ForkEvent);\nexport var TransactionForkEvent = /*#__PURE__*/function (_ForkEvent2) {\n _inherits(TransactionForkEvent, _ForkEvent2);\n\n var _super3 = _createSuper(TransactionForkEvent);\n\n function TransactionForkEvent(hash, expiry) {\n _classCallCheck(this, TransactionForkEvent);\n\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n return _super3.call(this, {\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: expiry || 0,\n hash: hash\n });\n }\n\n return _createClass(TransactionForkEvent);\n}(ForkEvent);\nexport var TransactionOrderForkEvent = /*#__PURE__*/function (_ForkEvent3) {\n _inherits(TransactionOrderForkEvent, _ForkEvent3);\n\n var _super4 = _createSuper(TransactionOrderForkEvent);\n\n function TransactionOrderForkEvent(beforeHash, afterHash, expiry) {\n _classCallCheck(this, TransactionOrderForkEvent);\n\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n return _super4.call(this, {\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: expiry || 0,\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n\n return _createClass(TransactionOrderForkEvent);\n}(ForkEvent); ///////////////////////////////\n// Exported Abstracts\n\nexport var Provider = /*#__PURE__*/function () {\n function Provider() {\n _classCallCheck(this, Provider);\n\n logger.checkAbstract(this instanceof Provider ? this.constructor : void 0, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n _createClass(Provider, [{\n key: \"getFeeData\",\n value: function getFeeData() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _yield$resolvePropert, block, gasPrice, lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch(function (error) {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n case 2:\n _yield$resolvePropert = _context.sent;\n block = _yield$resolvePropert.block;\n gasPrice = _yield$resolvePropert.gasPrice;\n lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\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\n return _context.abrupt(\"return\", {\n lastBaseFeePerGas: lastBaseFeePerGas,\n maxFeePerGas: maxFeePerGas,\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n gasPrice: gasPrice\n });\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n } // Alias for \"on\"\n\n }, {\n key: \"addListener\",\n value: function addListener(eventName, listener) {\n return this.on(eventName, listener);\n } // Alias for \"off\"\n\n }, {\n key: \"removeListener\",\n value: function removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n }], [{\n key: \"isProvider\",\n value: function isProvider(value) {\n return !!(value && value._isProvider);\n }\n }]);\n\n return Provider;\n}();","export var version = \"abstract-provider/5.7.0\";","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport { defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nvar allowedTransactionKeys = [\"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"];\nvar forwardErrors = [Logger.errors.INSUFFICIENT_FUNDS, Logger.errors.NONCE_EXPIRED, Logger.errors.REPLACEMENT_UNDERPRICED];\n;\n;\nexport var Signer = /*#__PURE__*/function () {\n ///////////////////\n // Sub-classes MUST call super\n function Signer() {\n _classCallCheck(this, Signer);\n\n logger.checkAbstract(this instanceof Signer ? this.constructor : void 0, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n } ///////////////////\n // Sub-classes MAY override these\n\n\n _createClass(Signer, [{\n key: \"getBalance\",\n value: function getBalance(blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n this._checkProvider(\"getBalance\");\n\n _context.next = 3;\n return this.provider.getBalance(this.getAddress(), blockTag);\n\n case 3:\n return _context.abrupt(\"return\", _context.sent);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"getTransactionCount\",\n value: function getTransactionCount(blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n this._checkProvider(\"getTransactionCount\");\n\n _context2.next = 3;\n return this.provider.getTransactionCount(this.getAddress(), blockTag);\n\n case 3:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n } // Populates \"from\" if unspecified, and estimates the gas for the transaction\n\n }, {\n key: \"estimateGas\",\n value: function estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var tx;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n this._checkProvider(\"estimateGas\");\n\n _context3.next = 3;\n return resolveProperties(this.checkTransaction(transaction));\n\n case 3:\n tx = _context3.sent;\n _context3.next = 6;\n return this.provider.estimateGas(tx);\n\n case 6:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n } // Populates \"from\" if unspecified, and calls with the transaction\n\n }, {\n key: \"call\",\n value: function call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var tx;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n this._checkProvider(\"call\");\n\n _context4.next = 3;\n return resolveProperties(this.checkTransaction(transaction));\n\n case 3:\n tx = _context4.sent;\n _context4.next = 6;\n return this.provider.call(tx, blockTag);\n\n case 6:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n } // Populates all fields in a transaction, signs it and sends it to the network\n\n }, {\n key: \"sendTransaction\",\n value: function sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var tx, signedTx;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n this._checkProvider(\"sendTransaction\");\n\n _context5.next = 3;\n return this.populateTransaction(transaction);\n\n case 3:\n tx = _context5.sent;\n _context5.next = 6;\n return this.signTransaction(tx);\n\n case 6:\n signedTx = _context5.sent;\n _context5.next = 9;\n return this.provider.sendTransaction(signedTx);\n\n case 9:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 10:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n }\n }, {\n key: \"getChainId\",\n value: function getChainId() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var network;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n this._checkProvider(\"getChainId\");\n\n _context6.next = 3;\n return this.provider.getNetwork();\n\n case 3:\n network = _context6.sent;\n return _context6.abrupt(\"return\", network.chainId);\n\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n }\n }, {\n key: \"getGasPrice\",\n value: function getGasPrice() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n this._checkProvider(\"getGasPrice\");\n\n _context7.next = 3;\n return this.provider.getGasPrice();\n\n case 3:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 4:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n }\n }, {\n key: \"getFeeData\",\n value: function getFeeData() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n this._checkProvider(\"getFeeData\");\n\n _context8.next = 3;\n return this.provider.getFeeData();\n\n case 3:\n return _context8.abrupt(\"return\", _context8.sent);\n\n case 4:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n }\n }, {\n key: \"resolveName\",\n value: function resolveName(name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n this._checkProvider(\"resolveName\");\n\n _context9.next = 3;\n return this.provider.resolveName(name);\n\n case 3:\n return _context9.abrupt(\"return\", _context9.sent);\n\n case 4:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\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\n }, {\n key: \"checkTransaction\",\n value: function checkTransaction(transaction) {\n for (var key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n var tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([Promise.resolve(tx.from), this.getAddress()]).then(function (result) {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n\n return result[0];\n });\n }\n\n return tx;\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\n }, {\n key: \"populateTransaction\",\n value: function populateTransaction(transaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee11() {\n var _this = this;\n\n var tx, hasEip1559, feeData, gasPrice;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return resolveProperties(this.checkTransaction(transaction));\n\n case 2:\n tx = _context11.sent;\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(function (to) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee10() {\n var address;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (!(to == null)) {\n _context10.next = 2;\n break;\n }\n\n return _context10.abrupt(\"return\", null);\n\n case 2:\n _context10.next = 4;\n return this.resolveName(to);\n\n case 4:\n address = _context10.sent;\n\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n\n return _context10.abrupt(\"return\", address);\n\n case 7:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n }); // Prevent this error from causing an UnhandledPromiseException\n\n tx.to.catch(function (error) {});\n } // Do not allow mixing pre-eip-1559 and eip-1559 properties\n\n\n hasEip1559 = tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null;\n\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\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\n if (!((tx.type === 2 || tx.type == null) && tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n _context11.next = 10;\n break;\n }\n\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n _context11.next = 18;\n break;\n\n case 10:\n if (!(tx.type === 0 || tx.type === 1)) {\n _context11.next = 14;\n break;\n }\n\n // Explicit Legacy or EIP-2930 transaction\n // Populate missing gasPrice\n if (tx.gasPrice == null) {\n tx.gasPrice = this.getGasPrice();\n }\n\n _context11.next = 18;\n break;\n\n case 14:\n _context11.next = 16;\n return this.getFeeData();\n\n case 16:\n feeData = _context11.sent;\n\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\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\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 } // Populate missing fee data\n\n\n if (tx.gasPrice == null) {\n tx.gasPrice = feeData.gasPrice;\n } // Explicitly set untyped transaction to legacy\n\n\n tx.type = 0;\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 } 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\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n\n case 18:\n if (tx.nonce == null) {\n tx.nonce = this.getTransactionCount(\"pending\");\n }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch(function (error) {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\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\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([Promise.resolve(tx.chainId), this.getChainId()]).then(function (results) {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n\n return results[0];\n });\n }\n\n _context11.next = 23;\n return resolveProperties(tx);\n\n case 23:\n return _context11.abrupt(\"return\", _context11.sent);\n\n case 24:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n } ///////////////////\n // Sub-classes SHOULD leave these alone\n\n }, {\n key: \"_checkProvider\",\n value: function _checkProvider(operation) {\n if (!this.provider) {\n logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: operation || \"_checkProvider\"\n });\n }\n }\n }], [{\n key: \"isSigner\",\n value: function isSigner(value) {\n return !!(value && value._isSigner);\n }\n }]);\n\n return Signer;\n}();\nexport var VoidSigner = /*#__PURE__*/function (_Signer) {\n _inherits(VoidSigner, _Signer);\n\n var _super = _createSuper(VoidSigner);\n\n function VoidSigner(address, provider) {\n var _this2;\n\n _classCallCheck(this, VoidSigner);\n\n _this2 = _super.call(this);\n defineReadOnly(_assertThisInitialized(_this2), \"address\", address);\n defineReadOnly(_assertThisInitialized(_this2), \"provider\", provider || null);\n return _this2;\n }\n\n _createClass(VoidSigner, [{\n key: \"getAddress\",\n value: function getAddress() {\n return Promise.resolve(this.address);\n }\n }, {\n key: \"_fail\",\n value: function _fail(message, operation) {\n return Promise.resolve().then(function () {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: operation\n });\n });\n }\n }, {\n key: \"signMessage\",\n value: function signMessage(message) {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n }, {\n key: \"signTransaction\",\n value: function signTransaction(transaction) {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n }, {\n key: \"_signTypedData\",\n value: function _signTypedData(domain, types, value) {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n }, {\n key: \"connect\",\n value: function connect(provider) {\n return new VoidSigner(this.address, provider);\n }\n }]);\n\n return VoidSigner;\n}(Signer);","export var version = \"abstract-signer/5.7.0\";","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\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\";\nvar logger = new Logger(version);\nvar _curve = null;\n\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n\n return _curve;\n}\n\nexport var SigningKey = /*#__PURE__*/function () {\n function SigningKey(privateKey) {\n _classCallCheck(this, SigningKey);\n\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n var 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\n _createClass(SigningKey, [{\n key: \"_addPoint\",\n value: function _addPoint(other) {\n var p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n var p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n }, {\n key: \"signDigest\",\n value: function signDigest(digest) {\n var keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n var digestBytes = arrayify(digest);\n\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n\n var signature = keyPair.sign(digestBytes, {\n canonical: true\n });\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 }, {\n key: \"computeSharedSecret\",\n value: function computeSharedSecret(otherKey) {\n var keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n var otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n }], [{\n key: \"isSigningKey\",\n value: function isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n }]);\n\n return SigningKey;\n}();\nexport function recoverPublicKey(digest, signature) {\n var sig = splitSignature(signature);\n var rs = {\n r: arrayify(sig.r),\n s: arrayify(sig.s)\n };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nexport function computePublicKey(key, compressed) {\n var bytes = arrayify(key);\n\n if (bytes.length === 32) {\n var signingKey = new SigningKey(bytes);\n\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n\n return signingKey.publicKey;\n } else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n } else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}","export var version = \"signing-key/5.7.0\";","export var version = \"transactions/5.7.0\";","\"use strict\";\n\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\";\nvar logger = new Logger(version);\nexport var TransactionTypes;\n\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; ///////////////////////////////\n\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n\n return getAddress(value);\n}\n\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n\n return BigNumber.from(value);\n} // Legacy Transaction Fields\n\n\nvar transactionFields = [{\n name: \"nonce\",\n maxLength: 32,\n numeric: true\n}, {\n name: \"gasPrice\",\n maxLength: 32,\n numeric: true\n}, {\n name: \"gasLimit\",\n maxLength: 32,\n numeric: true\n}, {\n name: \"to\",\n length: 20\n}, {\n name: \"value\",\n maxLength: 32,\n numeric: true\n}, {\n name: \"data\"\n}];\nvar allowedTransactionKeys = {\n chainId: true,\n data: true,\n gasLimit: true,\n gasPrice: true,\n nonce: true,\n to: true,\n type: true,\n value: true\n};\nexport function computeAddress(key) {\n var 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}\n\nfunction formatNumber(value, name) {\n var result = stripZeros(BigNumber.from(value).toHexString());\n\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, \"transaction:\" + name, value);\n }\n\n return result;\n}\n\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map(function (storageKey, index) {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", \"accessList[\".concat(addr, \":\").concat(index, \"]\"), storageKey);\n }\n\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map(function (set, index) {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", \"value[\".concat(index, \"]\"), set);\n }\n\n return accessSetify(set[0], set[1]);\n }\n\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n var result = Object.keys(value).map(function (addr) {\n var storageKeys = value[addr].reduce(function (accum, storageKey) {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort(function (a, b) {\n return a.address.localeCompare(b.address);\n });\n return result;\n}\n\nfunction formatAccessList(value) {\n return accessListify(value).map(function (set) {\n return [set.address, set.storageKeys];\n });\n}\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 var gasPrice = BigNumber.from(transaction.gasPrice);\n var maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice: gasPrice,\n maxFeePerGas: maxFeePerGas\n });\n }\n }\n\n var fields = [formatNumber(transaction.chainId || 0, \"chainId\"), formatNumber(transaction.nonce || 0, \"nonce\"), formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"), formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"), formatNumber(transaction.gasLimit || 0, \"gasLimit\"), transaction.to != null ? getAddress(transaction.to) : \"0x\", formatNumber(transaction.value || 0, \"value\"), transaction.data || \"0x\", formatAccessList(transaction.accessList || [])];\n\n if (signature) {\n var sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction, signature) {\n var fields = [formatNumber(transaction.chainId || 0, \"chainId\"), formatNumber(transaction.nonce || 0, \"nonce\"), formatNumber(transaction.gasPrice || 0, \"gasPrice\"), formatNumber(transaction.gasLimit || 0, \"gasLimit\"), transaction.to != null ? getAddress(transaction.to) : \"0x\", formatNumber(transaction.value || 0, \"value\"), transaction.data || \"0x\", formatAccessList(transaction.accessList || [])];\n\n if (signature) {\n var sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n} // Legacy Transactions and EIP-155\n\n\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n var raw = [];\n transactionFields.forEach(function (fieldInfo) {\n var value = transaction[fieldInfo.name] || [];\n var options = {};\n\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n\n value = arrayify(hexlify(value, options)); // Fixed-width field\n\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, \"transaction:\" + fieldInfo.name, value);\n } // Variable-width (with a maximum)\n\n\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, \"transaction:\" + fieldInfo.name, value);\n }\n }\n\n raw.push(hexlify(value));\n });\n var chainId = 0;\n\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof chainId !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\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 } // We have an EIP-155 transaction (chainId was specified and non-zero)\n\n\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n\n raw.push(\"0x\");\n raw.push(\"0x\");\n } // Requesting an unsigned transaction\n\n\n if (!signature) {\n return RLP.encode(raw);\n } // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n\n\n var sig = splitSignature(signature); // We pushed a chainId and null r, s on for hashing only; remove those\n\n var v = 27 + sig.recoveryParam;\n\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8; // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\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}\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\n return _serialize(transaction, signature);\n } // Typed Transactions (EIP-2718)\n\n\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n\n case 2:\n return _serializeEip1559(transaction, signature);\n\n default:\n break;\n }\n\n return logger.throwError(\"unsupported transaction type: \".concat(transaction.type), Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n var recid = handleNumber(fields[0]).toNumber();\n\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n var digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, {\n r: tx.r,\n s: tx.s,\n recoveryParam: tx.v\n });\n } catch (error) {}\n}\n\nfunction _parseEip1559(payload) {\n var transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n var maxPriorityFeePerGas = handleNumber(transaction[2]);\n var maxFeePerGas = handleNumber(transaction[3]);\n var 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 }; // Unsigned EIP-1559 Transaction\n\n if (transaction.length === 9) {\n return tx;\n }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload) {\n var transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n var 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 }; // Unsigned EIP-2930 Transaction\n\n if (transaction.length === 8) {\n return tx;\n }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n} // Legacy Transactions and EIP-155\n\n\nfunction _parse(rawTransaction) {\n var transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n var 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 }; // Legacy unsigned transaction\n\n if (transaction.length === 6) {\n return tx;\n }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\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 } else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n\n var recoveryParam = tx.v - 27;\n var raw = transaction.slice(0, 6);\n\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\n var digest = keccak256(RLP.encode(raw));\n\n try {\n tx.from = recoverAddress(digest, {\n r: hexlify(tx.r),\n s: hexlify(tx.s),\n recoveryParam: recoveryParam\n });\n } catch (error) {}\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n return tx;\n}\n\nexport function parse(rawTransaction) {\n var payload = arrayify(rawTransaction); // Legacy and EIP-155 Transactions\n\n if (payload[0] > 0x7f) {\n return _parse(payload);\n } // Typed Transaction (EIP-2718)\n\n\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n\n case 2:\n return _parseEip1559(payload);\n\n default:\n break;\n }\n\n return logger.throwError(\"unsupported transaction type: \".concat(payload[0]), Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}","\"use strict\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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 as _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\";\nvar logger = new Logger(version);\n;\n; ///////////////////////////////\n\nvar allowedTransactionKeys = {\n chainId: true,\n data: true,\n from: true,\n gasLimit: true,\n gasPrice: true,\n nonce: true,\n to: true,\n value: true,\n type: true,\n accessList: true,\n maxFeePerGas: true,\n maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n};\n\nfunction resolveName(resolver, nameOrPromise) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var name, address;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return nameOrPromise;\n\n case 2:\n name = _context.sent;\n\n if (typeof name !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n } // If it is already an address, just use it (after adding checksum)\n\n\n _context.prev = 4;\n return _context.abrupt(\"return\", getAddress(name));\n\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](4);\n\n case 10:\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\n _context.next = 13;\n return resolver.resolveName(name);\n\n case 13:\n address = _context.sent;\n\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n\n return _context.abrupt(\"return\", address);\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[4, 8]]);\n }));\n} // Recursively replaces ENS names with promises to resolve the name and resolves all properties\n\n\nfunction resolveAddresses(resolver, value, paramType) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!Array.isArray(paramType)) {\n _context2.next = 4;\n break;\n }\n\n _context2.next = 3;\n return Promise.all(paramType.map(function (paramType, index) {\n return resolveAddresses(resolver, Array.isArray(value) ? value[index] : value[paramType.name], paramType);\n }));\n\n case 3:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 4:\n if (!(paramType.type === \"address\")) {\n _context2.next = 8;\n break;\n }\n\n _context2.next = 7;\n return resolveName(resolver, value);\n\n case 7:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 8:\n if (!(paramType.type === \"tuple\")) {\n _context2.next = 12;\n break;\n }\n\n _context2.next = 11;\n return resolveAddresses(resolver, value, paramType.components);\n\n case 11:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 12:\n if (!(paramType.baseType === \"array\")) {\n _context2.next = 18;\n break;\n }\n\n if (Array.isArray(value)) {\n _context2.next = 15;\n break;\n }\n\n return _context2.abrupt(\"return\", Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value: value\n })));\n\n case 15:\n _context2.next = 17;\n return Promise.all(value.map(function (v) {\n return resolveAddresses(resolver, v, paramType.arrayChildren);\n }));\n\n case 17:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 18:\n return _context2.abrupt(\"return\", value);\n\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n}\n\nfunction populateTransaction(contract, fragment, args) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var _this = this;\n\n var overrides, resolved, data, tx, ro, intrinsic, bytes, i, roValue, leftovers;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n // If an extra argument is given, it is overrides\n overrides = {};\n\n if (args.length === fragment.inputs.length + 1 && _typeof(args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n } // Make sure the parameter count matches\n\n\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\"); // Populate \"from\" override (allow promises)\n\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(function (check) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\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\n return _context3.abrupt(\"return\", check.override);\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n });\n } else {\n overrides.from = contract.signer.getAddress();\n }\n } else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from); //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n } // Wait for all dependencies to be resolved (prefer the signer over the provider)\n\n\n _context4.next = 6;\n return resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: resolveProperties(overrides) || {}\n });\n\n case 6:\n resolved = _context4.sent;\n // The ABI coded transaction\n data = contract.interface.encodeFunctionData(fragment, resolved.args);\n tx = {\n data: data,\n to: resolved.address\n }; // Resolved Overrides\n\n ro = resolved.overrides; // Populate simple overrides\n\n if (ro.nonce != null) {\n tx.nonce = BigNumber.from(ro.nonce).toNumber();\n }\n\n if (ro.gasLimit != null) {\n tx.gasLimit = BigNumber.from(ro.gasLimit);\n }\n\n if (ro.gasPrice != null) {\n tx.gasPrice = BigNumber.from(ro.gasPrice);\n }\n\n if (ro.maxFeePerGas != null) {\n tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas);\n }\n\n if (ro.maxPriorityFeePerGas != null) {\n tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas);\n }\n\n if (ro.from != null) {\n tx.from = ro.from;\n }\n\n if (ro.type != null) {\n tx.type = ro.type;\n }\n\n if (ro.accessList != null) {\n tx.accessList = accessListify(ro.accessList);\n } // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n\n\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 intrinsic = 21000;\n bytes = arrayify(data);\n\n for (i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n\n if (bytes[i]) {\n intrinsic += 64;\n }\n }\n\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n } // Populate \"value\" override\n\n\n if (ro.value) {\n roValue = BigNumber.from(ro.value);\n\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\n tx.value = roValue;\n }\n\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n } // Remove the overrides\n\n\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; // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n\n leftovers = Object.keys(overrides).filter(function (key) {\n return overrides[key] != null;\n });\n\n if (leftovers.length) {\n logger.throwError(\"cannot override \".concat(leftovers.map(function (l) {\n return JSON.stringify(l);\n }).join(\",\")), Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n\n return _context4.abrupt(\"return\", tx);\n\n case 36:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n}\n\nfunction buildPopulate(contract, fragment) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return populateTransaction(contract, fragment, args);\n };\n}\n\nfunction buildEstimate(contract, fragment) {\n var signerOrProvider = contract.signer || contract.provider;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var tx;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n });\n }\n\n _context5.next = 3;\n return populateTransaction(contract, fragment, args);\n\n case 3:\n tx = _context5.sent;\n _context5.next = 6;\n return signerOrProvider.estimateGas(tx);\n\n case 6:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 7:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n };\n}\n\nfunction addContractWait(contract, tx) {\n var wait = tx.wait.bind(tx);\n\n tx.wait = function (confirmations) {\n return wait(confirmations).then(function (receipt) {\n receipt.events = receipt.logs.map(function (log) {\n var event = deepCopy(log);\n var parsed = null;\n\n try {\n parsed = contract.interface.parseLog(log);\n } catch (e) {} // Successfully parsed the event log; include it\n\n\n if (parsed) {\n event.args = parsed.args;\n\n event.decode = function (data, topics) {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n } // Useful operations\n\n\n event.removeListener = function () {\n return contract.provider;\n };\n\n event.getBlock = function () {\n return contract.provider.getBlock(receipt.blockHash);\n };\n\n event.getTransaction = function () {\n return contract.provider.getTransaction(receipt.transactionHash);\n };\n\n event.getTransactionReceipt = function () {\n return Promise.resolve(receipt);\n };\n\n return event;\n });\n return receipt;\n });\n };\n}\n\nfunction buildCall(contract, fragment, collapseSimple) {\n var signerOrProvider = contract.signer || contract.provider;\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var blockTag, overrides, tx, result, value;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n // Extract the \"blockTag\" override if present\n blockTag = undefined;\n\n if (!(args.length === fragment.inputs.length + 1 && _typeof(args[args.length - 1]) === \"object\")) {\n _context6.next = 9;\n break;\n }\n\n overrides = shallowCopy(args.pop());\n\n if (!(overrides.blockTag != null)) {\n _context6.next = 7;\n break;\n }\n\n _context6.next = 6;\n return overrides.blockTag;\n\n case 6:\n blockTag = _context6.sent;\n\n case 7:\n delete overrides.blockTag;\n args.push(overrides);\n\n case 9:\n if (!(contract.deployTransaction != null)) {\n _context6.next = 12;\n break;\n }\n\n _context6.next = 12;\n return contract._deployed(blockTag);\n\n case 12:\n _context6.next = 14;\n return populateTransaction(contract, fragment, args);\n\n case 14:\n tx = _context6.sent;\n _context6.next = 17;\n return signerOrProvider.call(tx, blockTag);\n\n case 17:\n result = _context6.sent;\n _context6.prev = 18;\n value = contract.interface.decodeFunctionResult(fragment, result);\n\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n\n return _context6.abrupt(\"return\", value);\n\n case 24:\n _context6.prev = 24;\n _context6.t0 = _context6[\"catch\"](18);\n\n if (_context6.t0.code === Logger.errors.CALL_EXCEPTION) {\n _context6.t0.address = contract.address;\n _context6.t0.args = args;\n _context6.t0.transaction = tx;\n }\n\n throw _context6.t0;\n\n case 28:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, null, [[18, 24]]);\n }));\n };\n}\n\nfunction buildSend(contract, fragment) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var txRequest, tx;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n });\n } // If the contract was just deployed, wait until it is mined\n\n\n if (!(contract.deployTransaction != null)) {\n _context7.next = 4;\n break;\n }\n\n _context7.next = 4;\n return contract._deployed();\n\n case 4:\n _context7.next = 6;\n return populateTransaction(contract, fragment, args);\n\n case 6:\n txRequest = _context7.sent;\n _context7.next = 9;\n return contract.signer.sendTransaction(txRequest);\n\n case 9:\n tx = _context7.sent;\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n return _context7.abrupt(\"return\", tx);\n\n case 12:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n };\n}\n\nfunction buildDefault(contract, fragment, collapseSimple) {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n\n return buildSend(contract, fragment);\n}\n\nfunction getEventTag(filter) {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map(function (topic) {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n\n return topic;\n }).join(\":\") : \"\");\n}\n\nvar RunningEvent = /*#__PURE__*/function () {\n function RunningEvent(tag, filter) {\n _classCallCheck(this, RunningEvent);\n\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [];\n }\n\n _createClass(RunningEvent, [{\n key: \"addListener\",\n value: function addListener(listener, once) {\n this._listeners.push({\n listener: listener,\n once: once\n });\n }\n }, {\n key: \"removeListener\",\n value: function removeListener(listener) {\n var done = false;\n this._listeners = this._listeners.filter(function (item) {\n if (done || item.listener !== listener) {\n return true;\n }\n\n done = true;\n return false;\n });\n }\n }, {\n key: \"removeAllListeners\",\n value: function removeAllListeners() {\n this._listeners = [];\n }\n }, {\n key: \"listeners\",\n value: function listeners() {\n return this._listeners.map(function (i) {\n return i.listener;\n });\n }\n }, {\n key: \"listenerCount\",\n value: function listenerCount() {\n return this._listeners.length;\n }\n }, {\n key: \"run\",\n value: function run(args) {\n var _this2 = this;\n\n var listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter(function (item) {\n var argsCopy = args.slice(); // Call the callback in the next event loop\n\n setTimeout(function () {\n item.listener.apply(_this2, argsCopy);\n }, 0); // Reschedule it if it not \"once\"\n\n return !item.once;\n });\n return listenerCount;\n }\n }, {\n key: \"prepareEvent\",\n value: function prepareEvent(event) {} // Returns the array that will be applied to an emit\n\n }, {\n key: \"getEmit\",\n value: function getEmit(event) {\n return [event];\n }\n }]);\n\n return RunningEvent;\n}();\n\nvar ErrorRunningEvent = /*#__PURE__*/function (_RunningEvent) {\n _inherits(ErrorRunningEvent, _RunningEvent);\n\n var _super = _createSuper(ErrorRunningEvent);\n\n function ErrorRunningEvent() {\n _classCallCheck(this, ErrorRunningEvent);\n\n return _super.call(this, \"error\", null);\n }\n\n return _createClass(ErrorRunningEvent);\n}(RunningEvent); // @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\n\n\nvar FragmentRunningEvent = /*#__PURE__*/function (_RunningEvent2) {\n _inherits(FragmentRunningEvent, _RunningEvent2);\n\n var _super2 = _createSuper(FragmentRunningEvent);\n\n function FragmentRunningEvent(address, contractInterface, fragment, topics) {\n var _this3;\n\n _classCallCheck(this, FragmentRunningEvent);\n\n var filter = {\n address: address\n };\n var topic = contractInterface.getEventTopic(fragment);\n\n if (topics) {\n if (topic !== topics[0]) {\n logger.throwArgumentError(\"topic mismatch\", \"topics\", topics);\n }\n\n filter.topics = topics.slice();\n } else {\n filter.topics = [topic];\n }\n\n _this3 = _super2.call(this, getEventTag(filter), filter);\n defineReadOnly(_assertThisInitialized(_this3), \"address\", address);\n defineReadOnly(_assertThisInitialized(_this3), \"interface\", contractInterface);\n defineReadOnly(_assertThisInitialized(_this3), \"fragment\", fragment);\n return _this3;\n }\n\n _createClass(FragmentRunningEvent, [{\n key: \"prepareEvent\",\n value: function prepareEvent(event) {\n var _this4 = this;\n\n _get(_getPrototypeOf(FragmentRunningEvent.prototype), \"prepareEvent\", this).call(this, event);\n\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n\n event.decode = function (data, topics) {\n return _this4.interface.decodeEventLog(_this4.fragment, data, topics);\n };\n\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n } catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n }, {\n key: \"getEmit\",\n value: function getEmit(event) {\n var errors = checkResultErrors(event.args);\n\n if (errors.length) {\n throw errors[0].error;\n }\n\n var args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n }]);\n\n return FragmentRunningEvent;\n}(RunningEvent); // 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\n\n\nvar WildcardRunningEvent = /*#__PURE__*/function (_RunningEvent3) {\n _inherits(WildcardRunningEvent, _RunningEvent3);\n\n var _super3 = _createSuper(WildcardRunningEvent);\n\n function WildcardRunningEvent(address, contractInterface) {\n var _this5;\n\n _classCallCheck(this, WildcardRunningEvent);\n\n _this5 = _super3.call(this, \"*\", {\n address: address\n });\n defineReadOnly(_assertThisInitialized(_this5), \"address\", address);\n defineReadOnly(_assertThisInitialized(_this5), \"interface\", contractInterface);\n return _this5;\n }\n\n _createClass(WildcardRunningEvent, [{\n key: \"prepareEvent\",\n value: function prepareEvent(event) {\n var _this6 = this;\n\n _get(_getPrototypeOf(WildcardRunningEvent.prototype), \"prepareEvent\", this).call(this, event);\n\n try {\n var parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n\n event.decode = function (data, topics) {\n return _this6.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.args = parsed.args;\n } catch (error) {// No matching event\n }\n }\n }]);\n\n return WildcardRunningEvent;\n}(RunningEvent);\n\nexport var BaseContract = /*#__PURE__*/function () {\n function BaseContract(addressOrName, contractInterface, signerOrProvider) {\n var _this7 = this;\n\n _classCallCheck(this, BaseContract);\n\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(this instanceof BaseContract ? this.constructor : void 0, \"getInterface\")(contractInterface));\n\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n } else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n } else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n } else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n\n defineReadOnly(this, \"callStatic\", {});\n defineReadOnly(this, \"estimateGas\", {});\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"populateTransaction\", {});\n defineReadOnly(this, \"filters\", {});\n {\n var uniqueFilters = {};\n Object.keys(this.interface.events).forEach(function (eventSignature) {\n var event = _this7.interface.events[eventSignature];\n defineReadOnly(_this7.filters, eventSignature, function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return {\n address: _this7.address,\n topics: _this7.interface.encodeFilterTopics(event, args)\n };\n });\n\n if (!uniqueFilters[event.name]) {\n uniqueFilters[event.name] = [];\n }\n\n uniqueFilters[event.name].push(eventSignature);\n });\n Object.keys(uniqueFilters).forEach(function (name) {\n var filters = uniqueFilters[name];\n\n if (filters.length === 1) {\n defineReadOnly(_this7.filters, name, _this7.filters[filters[0]]);\n } else {\n logger.warn(\"Duplicate definition of \".concat(name, \" (\").concat(filters.join(\", \"), \")\"));\n }\n });\n }\n defineReadOnly(this, \"_runningEvents\", {});\n defineReadOnly(this, \"_wrappedEmits\", {});\n\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n\n defineReadOnly(this, \"address\", addressOrName);\n\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n } else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\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 } // Swallow bad ENS names to prevent Unhandled Exceptions\n\n\n this.resolvedAddress.catch(function (e) {});\n var uniqueNames = {};\n var uniqueSignatures = {};\n Object.keys(this.interface.functions).forEach(function (signature) {\n var fragment = _this7.interface.functions[signature]; // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n\n if (uniqueSignatures[signature]) {\n logger.warn(\"Duplicate ABI entry for \".concat(JSON.stringify(signature)));\n return;\n }\n\n uniqueSignatures[signature] = true; // Track unique names; we only expose bare named functions if they\n // are ambiguous\n\n {\n var name = fragment.name;\n\n if (!uniqueNames[\"%\".concat(name)]) {\n uniqueNames[\"%\".concat(name)] = [];\n }\n\n uniqueNames[\"%\".concat(name)].push(signature);\n }\n\n if (_this7[signature] == null) {\n defineReadOnly(_this7, signature, buildDefault(_this7, fragment, true));\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\n\n if (_this7.functions[signature] == null) {\n defineReadOnly(_this7.functions, signature, buildDefault(_this7, fragment, false));\n }\n\n if (_this7.callStatic[signature] == null) {\n defineReadOnly(_this7.callStatic, signature, buildCall(_this7, fragment, true));\n }\n\n if (_this7.populateTransaction[signature] == null) {\n defineReadOnly(_this7.populateTransaction, signature, buildPopulate(_this7, fragment));\n }\n\n if (_this7.estimateGas[signature] == null) {\n defineReadOnly(_this7.estimateGas, signature, buildEstimate(_this7, fragment));\n }\n });\n Object.keys(uniqueNames).forEach(function (name) {\n // Ambiguous names to not get attached as bare names\n var signatures = uniqueNames[name];\n\n if (signatures.length > 1) {\n return;\n } // Strip off the leading \"%\" used for prototype protection\n\n\n name = name.substring(1);\n var signature = signatures[0]; // If overwriting a member property that is null, swallow the error\n\n try {\n if (_this7[name] == null) {\n defineReadOnly(_this7, name, _this7[signature]);\n }\n } catch (e) {}\n\n if (_this7.functions[name] == null) {\n defineReadOnly(_this7.functions, name, _this7.functions[signature]);\n }\n\n if (_this7.callStatic[name] == null) {\n defineReadOnly(_this7.callStatic, name, _this7.callStatic[signature]);\n }\n\n if (_this7.populateTransaction[name] == null) {\n defineReadOnly(_this7.populateTransaction, name, _this7.populateTransaction[signature]);\n }\n\n if (_this7.estimateGas[name] == null) {\n defineReadOnly(_this7.estimateGas, name, _this7.estimateGas[signature]);\n }\n });\n }\n\n _createClass(BaseContract, [{\n key: \"deployed\",\n value: // @TODO: Allow timeout?\n function deployed() {\n return this._deployed();\n }\n }, {\n key: \"_deployed\",\n value: function _deployed(blockTag) {\n var _this8 = this;\n\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(function () {\n return _this8;\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(function (code) {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: _this8.address,\n operation: \"getDeployed\"\n });\n }\n\n return _this8;\n });\n }\n }\n\n return this._deployedPromise;\n } // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n\n }, {\n key: \"fallback\",\n value: function fallback(overrides) {\n var _this9 = this;\n\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction(fallback)\"\n });\n }\n\n var tx = shallowCopy(overrides || {});\n [\"from\", \"to\"].forEach(function (key) {\n if (tx[key] == null) {\n return;\n }\n\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: key\n });\n });\n tx.to = this.resolvedAddress;\n return this.deployed().then(function () {\n return _this9.signer.sendTransaction(tx);\n });\n } // Reconnect to a different signer or provider\n\n }, {\n key: \"connect\",\n value: function connect(signerOrProvider) {\n if (typeof signerOrProvider === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n\n var contract = new this.constructor(this.address, this.interface, signerOrProvider);\n\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n\n return contract;\n } // Re-attach to a different on-chain instance of this contract\n\n }, {\n key: \"attach\",\n value: function attach(addressOrName) {\n return new this.constructor(addressOrName, this.interface, this.signer || this.provider);\n }\n }, {\n key: \"_normalizeRunningEvent\",\n value: function _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\n return runningEvent;\n }\n }, {\n key: \"_getRunningEvent\",\n value: function _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 } // Listen for any event that is registered\n\n\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n } // Listen for any event\n\n\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n } // Get the event Fragment (throws if ambiguous/unknown event)\n\n\n var fragment = this.interface.getEvent(eventName);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n } // We have topics to filter by...\n\n\n if (eventName.topics && eventName.topics.length > 0) {\n // Is it a known topichash? (throws if no matching topichash)\n try {\n var topic = eventName.topics[0];\n\n if (typeof topic !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n\n var _fragment = this.interface.getEvent(topic);\n\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, _fragment, eventName.topics));\n } catch (error) {} // Filter by the unknown topichash\n\n\n var filter = {\n address: this.address,\n topics: eventName.topics\n };\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n }, {\n key: \"_checkRunningEvents\",\n value: function _checkRunningEvents(runningEvent) {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag]; // If we have a poller for this, remove it\n\n var emit = this._wrappedEmits[runningEvent.tag];\n\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n } // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n\n }, {\n key: \"_wrapEvent\",\n value: function _wrapEvent(runningEvent, log, listener) {\n var _this10 = this;\n\n var event = deepCopy(log);\n\n event.removeListener = function () {\n if (!listener) {\n return;\n }\n\n runningEvent.removeListener(listener);\n\n _this10._checkRunningEvents(runningEvent);\n };\n\n event.getBlock = function () {\n return _this10.provider.getBlock(log.blockHash);\n };\n\n event.getTransaction = function () {\n return _this10.provider.getTransaction(log.transactionHash);\n };\n\n event.getTransactionReceipt = function () {\n return _this10.provider.getTransactionReceipt(log.transactionHash);\n }; // This may throw if the topics and data mismatch the signature\n\n\n runningEvent.prepareEvent(event);\n return event;\n }\n }, {\n key: \"_addEventListener\",\n value: function _addEventListener(runningEvent, listener, once) {\n var _this11 = this;\n\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"once\"\n });\n }\n\n runningEvent.addListener(listener, once); // Track this running event and its listeners (may already be there; but no hard in updating)\n\n this._runningEvents[runningEvent.tag] = runningEvent; // If we are not polling the provider, start polling\n\n if (!this._wrappedEmits[runningEvent.tag]) {\n var wrappedEmit = function wrappedEmit(log) {\n var event = _this11._wrapEvent(runningEvent, log, listener); // Try to emit the result for the parameterized event...\n\n\n if (event.decodeError == null) {\n try {\n var args = runningEvent.getEmit(event);\n\n _this11.emit.apply(_this11, [runningEvent.filter].concat(_toConsumableArray(args)));\n } catch (error) {\n event.decodeError = error.error;\n }\n } // Always emit \"event\" for fragment-base events\n\n\n if (runningEvent.filter != null) {\n _this11.emit(\"event\", event);\n } // Emit \"error\" if there was an error\n\n\n if (event.decodeError != null) {\n _this11.emit(\"error\", event.decodeError, event);\n }\n };\n\n this._wrappedEmits[runningEvent.tag] = wrappedEmit; // Special events, like \"error\" do not have a filter\n\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n }, {\n key: \"queryFilter\",\n value: function queryFilter(event, fromBlockOrBlockhash, toBlock) {\n var _this12 = this;\n\n var runningEvent = this._getRunningEvent(event);\n\n var filter = shallowCopy(runningEvent.filter);\n\n if (typeof fromBlockOrBlockhash === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n\n filter.blockHash = fromBlockOrBlockhash;\n } else {\n filter.fromBlock = fromBlockOrBlockhash != null ? fromBlockOrBlockhash : 0;\n filter.toBlock = toBlock != null ? toBlock : \"latest\";\n }\n\n return this.provider.getLogs(filter).then(function (logs) {\n return logs.map(function (log) {\n return _this12._wrapEvent(runningEvent, log, null);\n });\n });\n }\n }, {\n key: \"on\",\n value: function on(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n\n return this;\n }\n }, {\n key: \"once\",\n value: function once(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(eventName) {\n if (!this.provider) {\n return false;\n }\n\n var runningEvent = this._getRunningEvent(eventName);\n\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n\n var result = runningEvent.run(args) > 0; // May have drained all the \"once\" events; check for living events\n\n this._checkRunningEvents(runningEvent);\n\n return result;\n }\n }, {\n key: \"listenerCount\",\n value: function listenerCount(eventName) {\n var _this13 = this;\n\n if (!this.provider) {\n return 0;\n }\n\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce(function (accum, key) {\n return accum + _this13._runningEvents[key].listenerCount();\n }, 0);\n }\n\n return this._getRunningEvent(eventName).listenerCount();\n }\n }, {\n key: \"listeners\",\n value: function listeners(eventName) {\n var _this14 = this;\n\n if (!this.provider) {\n return [];\n }\n\n if (eventName == null) {\n var _ret = function () {\n var result = [];\n\n for (var tag in _this14._runningEvents) {\n _this14._runningEvents[tag].listeners().forEach(function (listener) {\n result.push(listener);\n });\n }\n\n return {\n v: result\n };\n }();\n\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n return this._getRunningEvent(eventName).listeners();\n }\n }, {\n key: \"removeAllListeners\",\n value: function removeAllListeners(eventName) {\n if (!this.provider) {\n return this;\n }\n\n if (eventName == null) {\n for (var tag in this._runningEvents) {\n var _runningEvent = this._runningEvents[tag];\n\n _runningEvent.removeAllListeners();\n\n this._checkRunningEvents(_runningEvent);\n }\n\n return this;\n } // Delete any listeners\n\n\n var runningEvent = this._getRunningEvent(eventName);\n\n runningEvent.removeAllListeners();\n\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n }, {\n key: \"off\",\n value: function off(eventName, listener) {\n if (!this.provider) {\n return this;\n }\n\n var runningEvent = this._getRunningEvent(eventName);\n\n runningEvent.removeListener(listener);\n\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n }, {\n key: \"removeListener\",\n value: function removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n }], [{\n key: \"getContractAddress\",\n value: function getContractAddress(transaction) {\n return _getContractAddress(transaction);\n }\n }, {\n key: \"getInterface\",\n value: function getInterface(contractInterface) {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n\n return new Interface(contractInterface);\n }\n }, {\n key: \"isIndexed\",\n value: function isIndexed(value) {\n return Indexed.isIndexed(value);\n }\n }]);\n\n return BaseContract;\n}();\nexport var Contract = /*#__PURE__*/function (_BaseContract) {\n _inherits(Contract, _BaseContract);\n\n var _super4 = _createSuper(Contract);\n\n function Contract() {\n _classCallCheck(this, Contract);\n\n return _super4.apply(this, arguments);\n }\n\n return _createClass(Contract);\n}(BaseContract);\nexport var ContractFactory = /*#__PURE__*/function () {\n function ContractFactory(contractInterface, bytecode, signer) {\n _classCallCheck(this, ContractFactory);\n\n var bytecodeHex = null;\n\n if (typeof bytecode === \"string\") {\n bytecodeHex = bytecode;\n } else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n } else if (bytecode && typeof bytecode.object === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = bytecode.object;\n } else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n } // Make sure it is 0x prefixed\n\n\n if (bytecodeHex.substring(0, 2) !== \"0x\") {\n bytecodeHex = \"0x\" + bytecodeHex;\n } // Make sure the final result is valid bytecode\n\n\n if (!isHexString(bytecodeHex) || bytecodeHex.length % 2) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n } // If we have a signer, make sure it is valid\n\n\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(this instanceof ContractFactory ? this.constructor : void 0, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n } // @TODO: Future; rename to populateTransaction?\n\n\n _createClass(ContractFactory, [{\n key: \"getDeployTransaction\",\n value: function getDeployTransaction() {\n var tx = {}; // If we have 1 additional argument, we allow transaction overrides\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n if (args.length === this.interface.deploy.inputs.length + 1 && _typeof(args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n\n for (var key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n } // Do not allow these to be overridden in a deployment transaction\n\n\n [\"data\", \"from\", \"to\"].forEach(function (key) {\n if (tx[key] == null) {\n return;\n }\n\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: key\n });\n });\n\n if (tx.value) {\n var value = BigNumber.from(tx.value);\n\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 } // Make sure the call matches the constructor signature\n\n\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\"); // Set the data to the bytecode + the encoded constructor arguments\n\n tx.data = hexlify(concat([this.bytecode, this.interface.encodeDeploy(args)]));\n return tx;\n }\n }, {\n key: \"deploy\",\n value: function deploy() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n var overrides, params, unsignedTx, tx, address, contract;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n overrides = {}; // If 1 extra parameter was passed in, it contains overrides\n\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n } // Make sure the call matches the constructor signature\n\n\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\"); // Resolve ENS names and promises in the arguments\n\n _context8.next = 5;\n return resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n\n case 5:\n params = _context8.sent;\n params.push(overrides); // Get the deployment transaction (with optional overrides)\n\n unsignedTx = this.getDeployTransaction.apply(this, _toConsumableArray(params)); // Send the deployment transaction\n\n _context8.next = 10;\n return this.signer.sendTransaction(unsignedTx);\n\n case 10:\n tx = _context8.sent;\n address = getStatic(this.constructor, \"getContractAddress\")(tx);\n contract = getStatic(this.constructor, \"getContract\")(address, this.interface, this.signer); // Add the modified wait that wraps events\n\n addContractWait(contract, tx);\n defineReadOnly(contract, \"deployTransaction\", tx);\n return _context8.abrupt(\"return\", contract);\n\n case 16:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n }\n }, {\n key: \"attach\",\n value: function attach(address) {\n return this.constructor.getContract(address, this.interface, this.signer);\n }\n }, {\n key: \"connect\",\n value: function connect(signer) {\n return new this.constructor(this.interface, this.bytecode, signer);\n }\n }], [{\n key: \"fromSolidity\",\n value: function fromSolidity(compilerOutput, signer) {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, {\n argument: \"compilerOutput\"\n });\n }\n\n if (typeof compilerOutput === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n\n var abi = compilerOutput.abi;\n var bytecode = null;\n\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n\n return new this(abi, bytecode, signer);\n }\n }, {\n key: \"getInterface\",\n value: function getInterface(contractInterface) {\n return Contract.getInterface(contractInterface);\n }\n }, {\n key: \"getContractAddress\",\n value: function getContractAddress(tx) {\n return _getContractAddress(tx);\n }\n }, {\n key: \"getContract\",\n value: function getContract(address, contractInterface, signer) {\n return new Contract(address, contractInterface, signer);\n }\n }]);\n\n return ContractFactory;\n}();","export var version = \"contracts/5.7.0\";","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { arrayify, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { BigNumber, isBigNumberish } from \"./bignumber\";\nvar _constructorGuard = {};\nvar Zero = BigNumber.from(0);\nvar NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message, fault, operation, value) {\n var params = {\n fault: fault,\n operation: operation\n };\n\n if (value !== undefined) {\n params.value = value;\n }\n\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n} // Constant to pull zeros from for multipliers\n\n\nvar zeros = \"0\";\n\nwhile (zeros.length < 256) {\n zeros += zeros;\n} // Returns a string \"1\" followed by decimal \"0\"s\n\n\nfunction getMultiplier(decimals) {\n if (typeof decimals !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) {}\n }\n\n if (typeof decimals === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return \"1\" + zeros.substring(0, decimals);\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n\n var multiplier = getMultiplier(decimals); // Make sure wei is a big number (convert as necessary)\n\n value = BigNumber.from(value);\n var negative = value.lt(Zero);\n\n if (negative) {\n value = value.mul(NegativeOne);\n }\n\n var fraction = value.mod(multiplier).toString();\n\n while (fraction.length < multiplier.length - 1) {\n fraction = \"0\" + fraction;\n } // Strip training 0\n\n\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n var whole = value.div(multiplier).toString();\n\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) {\n value = \"-\" + value;\n }\n\n return value;\n}\nexport function parseFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n\n var multiplier = getMultiplier(decimals);\n\n if (typeof value !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n } // Is it negative?\n\n\n var negative = value.substring(0, 1) === \"-\";\n\n if (negative) {\n value = value.substring(1);\n }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n } // Split it into a whole and fractional part\n\n\n var comps = value.split(\".\");\n\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n var whole = comps[0],\n fraction = comps[1];\n\n if (!whole) {\n whole = \"0\";\n }\n\n if (!fraction) {\n fraction = \"0\";\n } // Trim trailing zeros\n\n\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n } // Check the fraction doesn't exceed our decimals size\n\n\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n } // If decimals is 0, we have an empty string for fraction\n\n\n if (fraction === \"\") {\n fraction = \"0\";\n } // Fully pad the string with zeros to get to wei\n\n\n while (fraction.length < multiplier.length - 1) {\n fraction += \"0\";\n }\n\n var wholeValue = BigNumber.from(whole);\n var fractionValue = BigNumber.from(fraction);\n var wei = wholeValue.mul(multiplier).add(fractionValue);\n\n if (negative) {\n wei = wei.mul(NegativeOne);\n }\n\n return wei;\n}\nexport var FixedFormat = /*#__PURE__*/function () {\n function FixedFormat(constructorGuard, signed, width, decimals) {\n _classCallCheck(this, FixedFormat);\n\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\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\n _createClass(FixedFormat, null, [{\n key: \"from\",\n value: function from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n\n if (typeof value === \"number\") {\n value = \"fixed128x\".concat(value);\n }\n\n var signed = true;\n var width = 128;\n var decimals = 18;\n\n if (typeof value === \"string\") {\n if (value === \"fixed\") {// defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n var match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n\n if (!match) {\n logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n\n signed = match[1] !== \"u\";\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n var check = function check(key, type, defaultValue) {\n if (value[key] == null) {\n return defaultValue;\n }\n\n if (_typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n\n return value[key];\n };\n\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n }]);\n\n return FixedFormat;\n}();\nexport var FixedNumber = /*#__PURE__*/function () {\n function FixedNumber(constructorGuard, hex, value, format) {\n _classCallCheck(this, FixedNumber);\n\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\n this.format = format;\n this._hex = hex;\n this._value = value;\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n\n _createClass(FixedNumber, [{\n key: \"_checkFormat\",\n value: function _checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n }, {\n key: \"addUnsafe\",\n value: function addUnsafe(other) {\n this._checkFormat(other);\n\n var a = parseFixed(this._value, this.format.decimals);\n var b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n }, {\n key: \"subUnsafe\",\n value: function subUnsafe(other) {\n this._checkFormat(other);\n\n var a = parseFixed(this._value, this.format.decimals);\n var b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n }, {\n key: \"mulUnsafe\",\n value: function mulUnsafe(other) {\n this._checkFormat(other);\n\n var a = parseFixed(this._value, this.format.decimals);\n var 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 }, {\n key: \"divUnsafe\",\n value: function divUnsafe(other) {\n this._checkFormat(other);\n\n var a = parseFixed(this._value, this.format.decimals);\n var 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 }, {\n key: \"floor\",\n value: function floor() {\n var comps = this.toString().split(\".\");\n\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n\n var result = FixedNumber.from(comps[0], this.format);\n var hasFraction = !comps[1].match(/^(0*)$/);\n\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n }, {\n key: \"ceiling\",\n value: function ceiling() {\n var comps = this.toString().split(\".\");\n\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n\n var result = FixedNumber.from(comps[0], this.format);\n var hasFraction = !comps[1].match(/^(0*)$/);\n\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n } // @TODO: Support other rounding algorithms\n\n }, {\n key: \"round\",\n value: function round(decimals) {\n if (decimals == null) {\n decimals = 0;\n } // If we are already in range, we're done\n\n\n var comps = this.toString().split(\".\");\n\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n\n if (decimals < 0 || decimals > 80 || decimals % 1) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) {\n return this;\n }\n\n var factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n var bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n }, {\n key: \"isZero\",\n value: function isZero() {\n return this._value === \"0.0\" || this._value === \"0\";\n }\n }, {\n key: \"isNegative\",\n value: function isNegative() {\n return this._value[0] === \"-\";\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this._value;\n }\n }, {\n key: \"toHexString\",\n value: function toHexString(width) {\n if (width == null) {\n return this._hex;\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid byte width\", \"width\", width);\n }\n\n var hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n }, {\n key: \"toUnsafeFloat\",\n value: function toUnsafeFloat() {\n return parseFloat(this.toString());\n }\n }, {\n key: \"toFormat\",\n value: function toFormat(format) {\n return FixedNumber.fromString(this._value, format);\n }\n }], [{\n key: \"fromValue\",\n value: function 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\n if (decimals == null) {\n decimals = 0;\n }\n\n if (format == null) {\n format = \"fixed\";\n }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n }, {\n key: \"fromString\",\n value: function fromString(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n\n var fixedFormat = FixedFormat.from(format);\n var numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n var hex = null;\n\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n var decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n }, {\n key: \"fromBytes\",\n value: function fromBytes(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n\n var fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n var numeric = BigNumber.from(value);\n\n if (fixedFormat.signed) {\n numeric = numeric.fromTwos(fixedFormat.width);\n }\n\n var hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();\n var decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n }, {\n key: \"from\",\n value: function from(value, format) {\n if (typeof value === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n }, {\n key: \"isFixedNumber\",\n value: function isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n }]);\n\n return FixedNumber;\n}();\nvar ONE = FixedNumber.from(1);\nvar BUMP = FixedNumber.from(\"0.5\");","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport var messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof message === \"string\") {\n message = toUtf8Bytes(message);\n }\n\n return keccak256(concat([toUtf8Bytes(messagePrefix), toUtf8Bytes(String(message.length)), message]));\n}","export var version = \"hash/5.7.0\";","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar logger = new Logger(version);\nimport { id } from \"./id\";\nvar padding = new Uint8Array(32);\npadding.fill(0);\nvar NegativeOne = BigNumber.from(-1);\nvar Zero = BigNumber.from(0);\nvar One = BigNumber.from(1);\nvar MaxUint256 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value) {\n var bytes = arrayify(value);\n var padOffset = bytes.length % 32;\n\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n\n return hexlify(bytes);\n}\n\nvar hexTrue = hexZeroPad(One.toHexString(), 32);\nvar hexFalse = hexZeroPad(Zero.toHexString(), 32);\nvar domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nvar domainFieldNames = [\"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 \".concat(JSON.stringify(key)), \"domain.\".concat(key), value);\n }\n\n return value;\n };\n}\n\nvar domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function chainId(value) {\n try {\n return BigNumber.from(value).toString();\n } catch (error) {}\n\n return logger.throwArgumentError(\"invalid domain value for \\\"chainId\\\"\", \"domain.chainId\", value);\n },\n verifyingContract: function verifyingContract(value) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) {}\n\n return logger.throwArgumentError(\"invalid domain value \\\"verifyingContract\\\"\", \"domain.verifyingContract\", value);\n },\n salt: function salt(value) {\n try {\n var bytes = arrayify(value);\n\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n\n return hexlify(bytes);\n } catch (error) {}\n\n return logger.throwArgumentError(\"invalid domain value \\\"salt\\\"\", \"domain.salt\", value);\n }\n};\n\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n var match = type.match(/^(u?)int(\\d*)$/);\n\n if (match) {\n var signed = match[1] === \"\";\n var width = parseInt(match[2] || \"256\");\n\n if (width % 8 !== 0 || width > 256 || match[2] && match[2] !== String(width)) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n var boundsUpper = MaxUint256.mask(signed ? width - 1 : width);\n var boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;\n return function (value) {\n var v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(\"value out-of-bounds for \".concat(type), \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n } // bytesXX\n\n {\n var _match = type.match(/^bytes(\\d+)$/);\n\n if (_match) {\n var _width = parseInt(_match[1]);\n\n if (_width === 0 || _width > 32 || _match[1] !== String(_width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function (value) {\n var bytes = arrayify(value);\n\n if (bytes.length !== _width) {\n logger.throwArgumentError(\"invalid length for \".concat(type), \"value\", value);\n }\n\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\":\n return function (value) {\n return hexZeroPad(getAddress(value), 32);\n };\n\n case \"bool\":\n return function (value) {\n return !value ? hexFalse : hexTrue;\n };\n\n case \"bytes\":\n return function (value) {\n return keccak256(value);\n };\n\n case \"string\":\n return function (value) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name, fields) {\n return \"\".concat(name, \"(\").concat(fields.map(function (_ref) {\n var name = _ref.name,\n type = _ref.type;\n return type + \" \" + name;\n }).join(\",\"), \")\");\n}\n\nexport var TypedDataEncoder = /*#__PURE__*/function () {\n function TypedDataEncoder(types) {\n _classCallCheck(this, TypedDataEncoder);\n\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {}); // Link struct types to their direct child structs\n\n var links = {}; // Link structs to structs which contain them as a child\n\n var parents = {}; // Link all subtypes within a given struct\n\n var subtypes = {};\n Object.keys(types).forEach(function (type) {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n\n var _loop = function _loop(name) {\n var uniqueNames = {};\n types[name].forEach(function (field) {\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(\"duplicate variable name \".concat(JSON.stringify(field.name), \" in \").concat(JSON.stringify(name)), \"types\", types);\n }\n\n uniqueNames[field.name] = true; // Get the base type (drop any array specifiers)\n\n var baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n\n if (baseType === name) {\n logger.throwArgumentError(\"circular type reference to \".concat(JSON.stringify(baseType)), \"types\", types);\n } // Is this a base encoding type?\n\n\n var encoder = getBaseEncoder(baseType);\n\n if (encoder) {\n return;\n }\n\n if (!parents[baseType]) {\n logger.throwArgumentError(\"unknown type \".concat(JSON.stringify(baseType)), \"types\", types);\n } // Add linkage\n\n\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n };\n\n for (var name in types) {\n _loop(name);\n } // Deduce the primary type\n\n\n var primaryTypes = Object.keys(parents).filter(function (n) {\n return parents[n].length === 0;\n });\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(\"ambiguous primary types or unused types: \".concat(primaryTypes.map(function (t) {\n return JSON.stringify(t);\n }).join(\", \")), \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]); // Check for circular type references\n\n function checkCircular(type, found) {\n if (found[type]) {\n logger.throwArgumentError(\"circular type reference to \".concat(JSON.stringify(type)), \"types\", types);\n }\n\n found[type] = true;\n Object.keys(links[type]).forEach(function (child) {\n if (!parents[child]) {\n return;\n } // Recursively check children\n\n\n checkCircular(child, found); // Mark all ancestors as having this decendant\n\n Object.keys(found).forEach(function (subtype) {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n\n checkCircular(this.primaryType, {}); // Compute each fully describe type\n\n for (var _name in subtypes) {\n var st = Object.keys(subtypes[_name]);\n st.sort();\n this._types[_name] = encodeType(_name, types[_name]) + st.map(function (t) {\n return encodeType(t, types[t]);\n }).join(\"\");\n }\n }\n\n _createClass(TypedDataEncoder, [{\n key: \"getEncoder\",\n value: function getEncoder(type) {\n var encoder = this._encoderCache[type];\n\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n\n return encoder;\n }\n }, {\n key: \"_getEncoder\",\n value: function _getEncoder(type) {\n var _this = this;\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n var encoder = getBaseEncoder(type);\n\n if (encoder) {\n return encoder;\n }\n } // Array\n\n var match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n\n if (match) {\n var subtype = match[1];\n var subEncoder = this.getEncoder(subtype);\n var length = parseInt(match[3]);\n return function (value) {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n var result = value.map(subEncoder);\n\n if (_this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n } // Struct\n\n\n var fields = this.types[type];\n\n if (fields) {\n var encodedType = id(this._types[type]);\n return function (value) {\n var values = fields.map(function (_ref2) {\n var name = _ref2.name,\n type = _ref2.type;\n\n var result = _this.getEncoder(type)(value[name]);\n\n if (_this._types[type]) {\n return keccak256(result);\n }\n\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n\n return logger.throwArgumentError(\"unknown type: \".concat(type), \"type\", type);\n }\n }, {\n key: \"encodeType\",\n value: function encodeType(name) {\n var result = this._types[name];\n\n if (!result) {\n logger.throwArgumentError(\"unknown type: \".concat(JSON.stringify(name)), \"name\", name);\n }\n\n return result;\n }\n }, {\n key: \"encodeData\",\n value: function encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n }, {\n key: \"hashStruct\",\n value: function hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n }, {\n key: \"encode\",\n value: function encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n }, {\n key: \"hash\",\n value: function hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n }, {\n key: \"_visit\",\n value: function _visit(type, value, callback) {\n var _this2 = this;\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n var encoder = getBaseEncoder(type);\n\n if (encoder) {\n return callback(type, value);\n }\n } // Array\n\n var match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n\n if (match) {\n var subtype = match[1];\n var length = parseInt(match[3]);\n\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n return value.map(function (v) {\n return _this2._visit(subtype, v, callback);\n });\n } // Struct\n\n\n var fields = this.types[type];\n\n if (fields) {\n return fields.reduce(function (accum, _ref3) {\n var name = _ref3.name,\n type = _ref3.type;\n accum[name] = _this2._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n\n return logger.throwArgumentError(\"unknown type: \".concat(type), \"type\", type);\n }\n }, {\n key: \"visit\",\n value: function visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n }], [{\n key: \"from\",\n value: function from(types) {\n return new TypedDataEncoder(types);\n }\n }, {\n key: \"getPrimaryType\",\n value: function getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n }, {\n key: \"hashStruct\",\n value: function hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n }, {\n key: \"hashDomain\",\n value: function hashDomain(domain) {\n var domainFields = [];\n\n for (var name in domain) {\n var type = domainFieldTypes[name];\n\n if (!type) {\n logger.throwArgumentError(\"invalid typed-data domain key: \".concat(JSON.stringify(name)), \"domain\", domain);\n }\n\n domainFields.push({\n name: name,\n type: type\n });\n }\n\n domainFields.sort(function (a, b) {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", {\n EIP712Domain: domainFields\n }, domain);\n }\n }, {\n key: \"encode\",\n value: function encode(domain, types, value) {\n return hexConcat([\"0x1901\", TypedDataEncoder.hashDomain(domain), TypedDataEncoder.from(types).hash(value)]);\n }\n }, {\n key: \"hash\",\n value: function hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n } // Replaces all address types with ENS names with their looked up address\n\n }, {\n key: \"resolveNames\",\n value: function resolveNames(domain, types, value, resolveName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var ensCache, encoder, name;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain); // Look up all ENS names\n\n ensCache = {}; // Do we need to look up the domain's verifyingContract?\n\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n } // We are going to use the encoder to visit all the base values\n\n\n encoder = TypedDataEncoder.from(types); // Get a list of all the addresses\n\n encoder.visit(value, function (type, value) {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n\n return value;\n }); // Lookup each name\n\n _context.t0 = _regeneratorRuntime.keys(ensCache);\n\n case 6:\n if ((_context.t1 = _context.t0()).done) {\n _context.next = 13;\n break;\n }\n\n name = _context.t1.value;\n _context.next = 10;\n return resolveName(name);\n\n case 10:\n ensCache[name] = _context.sent;\n _context.next = 6;\n break;\n\n case 13:\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n } // Replace all ENS names with their address\n\n\n value = encoder.visit(value, function (type, value) {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n\n return value;\n });\n return _context.abrupt(\"return\", {\n domain: domain,\n value: value\n });\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n }\n }, {\n key: \"getPayload\",\n value: function getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain); // Derive the EIP712Domain Struct reference type\n\n var domainValues = {};\n var domainTypes = [];\n domainFieldNames.forEach(function (name) {\n var value = domain[name];\n\n if (value == null) {\n return;\n }\n\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({\n name: name,\n type: domainFieldTypes[name]\n });\n });\n var encoder = TypedDataEncoder.from(types);\n var typesWithDomain = shallowCopy(types);\n\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n } // Validate the data structures and types\n\n\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, function (type, value) {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n } // uint or int\n\n\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n\n case \"bool\":\n return !!value;\n\n case \"string\":\n if (typeof value !== \"string\") {\n logger.throwArgumentError(\"invalid string\", \"value\", value);\n }\n\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n }]);\n\n return TypedDataEncoder;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/**\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 var BaseX = /*#__PURE__*/function () {\n function BaseX(alphabet) {\n _classCallCheck(this, BaseX);\n\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n defineReadOnly(this, \"_alphabetMap\", {});\n defineReadOnly(this, \"_leader\", alphabet.charAt(0)); // pre-compute lookup table\n\n for (var i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n _createClass(BaseX, [{\n key: \"encode\",\n value: function encode(value) {\n var source = arrayify(value);\n\n if (source.length === 0) {\n return \"\";\n }\n\n var digits = [0];\n\n for (var i = 0; i < source.length; ++i) {\n var carry = source[i];\n\n for (var 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\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = carry / this.base | 0;\n }\n }\n\n var string = \"\"; // deal with leading zeros\n\n for (var k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n } // convert digits to a string\n\n\n for (var q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n }, {\n key: \"decode\",\n value: function decode(value) {\n if (typeof value !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n var bytes = [];\n\n if (value.length === 0) {\n return new Uint8Array(bytes);\n }\n\n bytes.push(0);\n\n for (var i = 0; i < value.length; i++) {\n var byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n var carry = byte;\n\n for (var j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n } // deal with leading zeros\n\n\n for (var k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0);\n }\n\n return arrayify(new Uint8Array(bytes.reverse()));\n }\n }]);\n\n return BaseX;\n}();\nvar Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nvar Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\nexport { Base32, Base58 }; //console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))","export var SupportedAlgorithm;\n\n(function (SupportedAlgorithm) {\n SupportedAlgorithm[\"sha256\"] = \"sha256\";\n SupportedAlgorithm[\"sha512\"] = \"sha512\";\n})(SupportedAlgorithm || (SupportedAlgorithm = {}));\n\n;","export var version = \"sha2/5.7.0\";","\"use strict\";\n\nimport hash from \"hash.js\"; //const _ripemd160 = _hash.ripemd160;\n\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar 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\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}","\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac } from \"@ethersproject/sha2\";\nexport function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) {\n password = arrayify(password);\n salt = arrayify(salt);\n var hLen;\n var l = 1;\n var DK = new Uint8Array(keylen);\n var block1 = new Uint8Array(salt.length + 4);\n block1.set(salt); //salt.copy(block1, 0, 0, salt.length)\n\n var r;\n var T;\n\n for (var i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = i >> 24 & 0xff;\n block1[salt.length + 1] = i >> 16 & 0xff;\n block1[salt.length + 2] = i >> 8 & 0xff;\n block1[salt.length + 3] = i & 0xff; //let U = createHmac(password).update(block1).digest();\n\n var U = arrayify(computeHmac(hashAlgorithm, password, block1));\n\n if (!hLen) {\n hLen = U.length;\n T = new Uint8Array(hLen);\n l = Math.ceil(keylen / hLen);\n r = keylen - (l - 1) * hLen;\n } //U.copy(T, 0, 0, hLen)\n\n\n T.set(U);\n\n for (var j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n\n for (var k = 0; k < hLen; k++) {\n T[k] ^= U[k];\n }\n }\n\n var destPos = (i - 1) * hLen;\n var len = i === l ? r : hLen; //T.copy(DK, destPos, 0, len)\n\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n\n return hexlify(DK);\n}","\"use strict\"; // This gets overridden by rollup\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar exportWordlist = false;\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport var logger = new Logger(version);\nexport var Wordlist = /*#__PURE__*/function () {\n function Wordlist(locale) {\n _classCallCheck(this, Wordlist);\n\n logger.checkAbstract(this instanceof Wordlist ? this.constructor : void 0, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n } // Subclasses may override this\n\n\n _createClass(Wordlist, [{\n key: \"split\",\n value: function split(mnemonic) {\n return mnemonic.toLowerCase().split(/ +/g);\n } // Subclasses may override this\n\n }, {\n key: \"join\",\n value: function join(words) {\n return words.join(\" \");\n }\n }], [{\n key: \"check\",\n value: function check(wordlist) {\n var words = [];\n\n for (var i = 0; i < 2048; i++) {\n var word = wordlist.getWord(i);\n /* istanbul ignore if */\n\n if (i !== wordlist.getWordIndex(word)) {\n return \"0x\";\n }\n\n words.push(word);\n }\n\n return id(words.join(\"\\n\") + \"\\n\");\n }\n }, {\n key: \"register\",\n value: function register(lang, name) {\n if (!name) {\n name = lang.locale;\n }\n /* istanbul ignore if */\n\n\n if (exportWordlist) {\n try {\n var anyGlobal = window;\n\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) {}\n }\n }\n }]);\n\n return Wordlist;\n}();","export var version = \"wordlists/5.7.0\";","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Wordlist } from \"./wordlist\";\nvar words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\nvar wordlist = null;\n\nfunction loadWords(lang) {\n if (wordlist != null) {\n return;\n }\n\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \"); // Verify the computed list matches the official list\n\n /* istanbul ignore if */\n\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nvar LangEn = /*#__PURE__*/function (_Wordlist) {\n _inherits(LangEn, _Wordlist);\n\n var _super = _createSuper(LangEn);\n\n function LangEn() {\n _classCallCheck(this, LangEn);\n\n return _super.call(this, \"en\");\n }\n\n _createClass(LangEn, [{\n key: \"getWord\",\n value: function getWord(index) {\n loadWords(this);\n return wordlist[index];\n }\n }, {\n key: \"getWordIndex\",\n value: function getWordIndex(word) {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n }]);\n\n return LangEn;\n}(Wordlist);\n\nvar langEn = new LangEn();\nWordlist.register(langEn);\nexport { langEn };","\"use strict\";\n\nimport { langEn as en } from \"./lang-en\";\nexport var wordlists = {\n en: en\n};","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { wordlists } from \"@ethersproject/wordlists\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nvar N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\"); // \"Bitcoin seed\"\n\nvar MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\nvar HardenedBit = 0x80000000; // Returns a byte with the MSB bits set\n\nfunction getUpperMask(bits) {\n return (1 << bits) - 1 << 8 - bits;\n} // Returns a byte with the LSB bits set\n\n\nfunction getLowerMask(bits) {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value) {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\n\nfunction getWordlist(wordlist) {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof wordlist === \"string\") {\n var words = wordlists[wordlist];\n\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n\n return words;\n }\n\n return wordlist;\n}\n\nvar _constructorGuard = {};\nexport var defaultPath = \"m/44'/60'/0'/0/0\";\n;\nexport var HDNode = /*#__PURE__*/function () {\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n function HDNode(constructorGuard, privateKey, publicKey, parentFingerprint, chainCode, index, depth, mnemonicOrPath) {\n _classCallCheck(this, HDNode);\n\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n var signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n defineReadOnly(this, \"chainCode\", chainCode);\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n } else if (typeof mnemonicOrPath === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n _createClass(HDNode, [{\n key: \"extendedKey\",\n get: function get() {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n if (this.depth >= 256) {\n throw new Error(\"Depth too large!\");\n }\n\n return base58check(concat([this.privateKey != null ? \"0x0488ADE4\" : \"0x0488B21E\", hexlify(this.depth), this.parentFingerprint, hexZeroPad(hexlify(this.index), 4), this.chainCode, this.privateKey != null ? concat([\"0x00\", this.privateKey]) : this.publicKey]));\n }\n }, {\n key: \"neuter\",\n value: function neuter() {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n }, {\n key: \"_derive\",\n value: function _derive(index) {\n if (index > 0xffffffff) {\n throw new Error(\"invalid index - \" + String(index));\n } // Base path\n\n\n var path = this.path;\n\n if (path) {\n path += \"/\" + (index & ~HardenedBit);\n }\n\n var data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n } // Data = 0x00 || ser_256(k_par)\n\n\n data.set(arrayify(this.privateKey), 1); // Hardened path\n\n if (path) {\n path += \"'\";\n }\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n } // Data += ser_32(i)\n\n\n for (var i = 24; i >= 0; i -= 8) {\n data[33 + (i >> 3)] = index >> 24 - i & 0xff;\n }\n\n var I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n var IL = I.slice(0, 32);\n var IR = I.slice(32); // The private key\n\n var ki = null; // The public key\n\n var Ki = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n var ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n var mnemonicOrPath = path;\n var srcMnemonic = this.mnemonic;\n\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: srcMnemonic.locale || \"en\"\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n }, {\n key: \"derivePath\",\n value: function derivePath(path) {\n var components = path.split(\"/\");\n\n if (components.length === 0 || components[0] === \"m\" && this.depth !== 0) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") {\n components.shift();\n }\n\n var result = this;\n\n for (var i = 0; i < components.length; i++) {\n var component = components[i];\n\n if (component.match(/^[0-9]+'$/)) {\n var index = parseInt(component.substring(0, component.length - 1));\n\n if (index >= HardenedBit) {\n throw new Error(\"invalid path index - \" + component);\n }\n\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n var _index = parseInt(component);\n\n if (_index >= HardenedBit) {\n throw new Error(\"invalid path index - \" + component);\n }\n\n result = result._derive(_index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n }], [{\n key: \"_fromSeed\",\n value: function _fromSeed(seed, mnemonic) {\n var seedArray = arrayify(seed);\n\n if (seedArray.length < 16 || seedArray.length > 64) {\n throw new Error(\"invalid seed\");\n }\n\n var I = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n }, {\n key: \"fromMnemonic\",\n value: function fromMnemonic(mnemonic, password, wordlist) {\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist); // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n }, {\n key: \"fromSeed\",\n value: function fromSeed(seed) {\n return HDNode._fromSeed(seed, null);\n }\n }, {\n key: \"fromExtendedKey\",\n value: function fromExtendedKey(extendedKey) {\n var bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n var depth = bytes[4];\n var parentFingerprint = hexlify(bytes.slice(5, 9));\n var index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n var chainCode = hexlify(bytes.slice(13, 45));\n var key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\":\n case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n // Private Key\n\n case \"0x0488ade4\":\n case \"0x04358394 \":\n if (key[0] !== 0) {\n break;\n }\n\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n }]);\n\n return HDNode;\n}();\nexport function mnemonicToSeed(mnemonic, password) {\n if (!password) {\n password = \"\";\n }\n\n var salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\nexport function mnemonicToEntropy(mnemonic, wordlist) {\n wordlist = getWordlist(wordlist);\n logger.checkNormalize();\n var words = wordlist.split(mnemonic);\n\n if (words.length % 3 !== 0) {\n throw new Error(\"invalid mnemonic\");\n }\n\n var entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n var offset = 0;\n\n for (var i = 0; i < words.length; i++) {\n var index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n\n if (index === -1) {\n throw new Error(\"invalid mnemonic\");\n }\n\n for (var bit = 0; bit < 11; bit++) {\n if (index & 1 << 10 - bit) {\n entropy[offset >> 3] |= 1 << 7 - offset % 8;\n }\n\n offset++;\n }\n }\n\n var entropyBits = 32 * words.length / 3;\n var checksumBits = words.length / 3;\n var checksumMask = getUpperMask(checksumBits);\n var checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\nexport function entropyToMnemonic(entropy, wordlist) {\n wordlist = getWordlist(wordlist);\n entropy = arrayify(entropy);\n\n if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n var indices = [0];\n var remainingBits = 11;\n\n for (var i = 0; i < entropy.length; i++) {\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n remainingBits -= 8; // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> 8 - remainingBits; // Start the next word\n\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n remainingBits += 3;\n }\n } // Compute the checksum bits\n\n\n var checksumBits = entropy.length / 4;\n var checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits); // Shift the checksum into the word indices\n\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= checksum >> 8 - checksumBits;\n return wordlist.join(indices.map(function (index) {\n return wordlist.getWord(index);\n }));\n}\nexport function isValidMnemonic(mnemonic, wordlist) {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) {}\n\n return false;\n}\nexport function getAccountPath(index) {\n if (typeof index !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n\n return \"m/44'/60'/\".concat(index, \"'/0/0\");\n}","export var version = \"hdnode/5.7.0\";","\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\nexport function looseArrayify(hexString) {\n if (typeof hexString === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n\n return arrayify(hexString);\n}\nexport function zpad(value, length) {\n value = String(value);\n\n while (value.length < length) {\n value = '0' + value;\n }\n\n return value;\n}\nexport function getPassword(password) {\n if (typeof password === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n\n return arrayify(password);\n}\nexport function searchPath(object, path) {\n var currentChild = object;\n var comps = path.toLowerCase().split('/');\n\n for (var i = 0; i < comps.length; i++) {\n // Search for a child object with a case-insensitive matching key\n var matchingChild = null;\n\n for (var key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n } // Didn't find one. :'(\n\n\n if (matchingChild === null) {\n return null;\n } // Now check this child...\n\n\n currentChild = matchingChild;\n }\n\n return currentChild;\n} // See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\n\nexport function uuidV4(randomBytes) {\n var bytes = arrayify(randomBytes); // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n\n bytes[6] = bytes[6] & 0x0f | 0x40; // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n\n bytes[8] = bytes[8] & 0x3f | 0x80;\n var value = hexlify(bytes);\n return [value.substring(2, 10), value.substring(10, 14), value.substring(14, 18), value.substring(18, 22), value.substring(22, 34)].join(\"-\");\n}","export var version = \"json-wallets/5.7.0\";","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version); // Exported Types\n\nfunction hasMnemonic(value) {\n return value != null && value.mnemonic && value.mnemonic.phrase;\n}\n\nexport var KeystoreAccount = /*#__PURE__*/function (_Description) {\n _inherits(KeystoreAccount, _Description);\n\n var _super = _createSuper(KeystoreAccount);\n\n function KeystoreAccount() {\n _classCallCheck(this, KeystoreAccount);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(KeystoreAccount, [{\n key: \"isKeystoreAccount\",\n value: function isKeystoreAccount(value) {\n return !!(value && value._isKeystoreAccount);\n }\n }]);\n\n return KeystoreAccount;\n}(Description);\n\nfunction _decrypt(data, key, ciphertext) {\n var cipher = searchPath(data, \"crypto/cipher\");\n\n if (cipher === \"aes-128-ctr\") {\n var iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"));\n var counter = new aes.Counter(iv);\n var aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data, key) {\n var ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n var computedMAC = hexlify(keccak256(concat([key.slice(16, 32), ciphertext]))).substring(2);\n\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n var privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n var mnemonicKey = key.slice(32, 64);\n var address = computeAddress(privateKey);\n\n if (data.address) {\n var check = data.address.toLowerCase();\n\n if (check.substring(0, 2) !== \"0x\") {\n check = \"0x\" + check;\n }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n var account = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n }; // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n var mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n var mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n var mnemonicCounter = new aes.Counter(mnemonicIv);\n var mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n var path = searchPath(data, \"x-ethers/path\") || defaultPath;\n var locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n var entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n var mnemonic = entropyToMnemonic(entropy, locale);\n var node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\nfunction pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) {\n var passwordBytes = getPassword(password);\n var kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof kdf === \"string\") {\n var throwError = function throwError(name, value) {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n };\n\n if (kdf.toLowerCase() === \"scrypt\") {\n var salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n var N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n var r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n var p = parseInt(searchPath(data, \"crypto/kdfparams/p\")); // Check for all required parameters\n\n if (!N || !r || !p) {\n throwError(\"kdf\", kdf);\n } // Make sure N is a power of 2\n\n\n if ((N & N - 1) !== 0) {\n throwError(\"N\", N);\n }\n\n var dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n var _salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n var prfFunc = null;\n var prf = searchPath(data, \"crypto/kdfparams/prf\");\n\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n var count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n var _dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n\n if (_dkLen !== 32) {\n throwError(\"dklen\", _dkLen);\n }\n\n return pbkdf2Func(passwordBytes, _salt, count, _dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\nexport function decryptSync(json, password) {\n var data = JSON.parse(json);\n\n var key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n\n return _getAccount(data, key);\n}\nexport function decrypt(json, password, progressCallback) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var data, key;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n data = JSON.parse(json);\n _context.next = 3;\n return _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n\n case 3:\n key = _context.sent;\n return _context.abrupt(\"return\", _getAccount(data, key));\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n}\nexport function encrypt(account, password, options, progressCallback) {\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n } // Check the mnemonic (if any) matches the private key\n\n\n if (hasMnemonic(account)) {\n var mnemonic = account.mnemonic;\n var node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n } catch (e) {\n return Promise.reject(e);\n } // The options are optional, so adjust the call as needed\n\n\n if (typeof options === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n var privateKey = arrayify(account.privateKey);\n var passwordBytes = getPassword(password);\n var entropy = null;\n var path = null;\n var locale = null;\n\n if (hasMnemonic(account)) {\n var srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n var client = options.client;\n\n if (!client) {\n client = \"ethers.js\";\n } // Check/generate the salt\n\n\n var salt = null;\n\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);\n ;\n } // Override initialization vector\n\n\n var iv = null;\n\n if (options.iv) {\n iv = arrayify(options.iv);\n\n if (iv.length !== 16) {\n throw new Error(\"invalid iv\");\n }\n } else {\n iv = randomBytes(16);\n } // Override the uuid\n\n\n var uuidRandom = null;\n\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n\n if (uuidRandom.length !== 16) {\n throw new Error(\"invalid uuid\");\n }\n } else {\n uuidRandom = randomBytes(16);\n } // Override the scrypt password-based key derivation function parameters\n\n\n var N = 1 << 17,\n r = 8,\n p = 1;\n\n if (options.scrypt) {\n if (options.scrypt.N) {\n N = options.scrypt.N;\n }\n\n if (options.scrypt.r) {\n r = options.scrypt.r;\n }\n\n if (options.scrypt.p) {\n p = options.scrypt.p;\n }\n } // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n\n\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then(function (key) {\n key = arrayify(key); // This will be used to encrypt the wallet (as per Web3 secret storage)\n\n var derivedKey = key.slice(0, 16);\n var macPrefix = key.slice(16, 32); // This will be used to encrypt the mnemonic phrase (if any)\n\n var mnemonicKey = key.slice(32, 64); // Encrypt the private key\n\n var counter = new aes.Counter(iv);\n var aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n var ciphertext = arrayify(aesCtr.encrypt(privateKey)); // Compute the message authentication code, used to check the password\n\n var mac = keccak256(concat([macPrefix, ciphertext])); // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n\n var data = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2)\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n }; // If we have a mnemonic, encrypt it into the JSON wallet\n\n if (entropy) {\n var mnemonicIv = randomBytes(16);\n var mnemonicCounter = new aes.Counter(mnemonicIv);\n var mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n var mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n var now = new Date();\n var timestamp = now.getUTCFullYear() + \"-\" + zpad(now.getUTCMonth() + 1, 2) + \"-\" + zpad(now.getUTCDate(), 2) + \"T\" + zpad(now.getUTCHours(), 2) + \"-\" + zpad(now.getUTCMinutes(), 2) + \"-\" + zpad(now.getUTCSeconds(), 2) + \".0Z\";\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: \"UTC--\" + timestamp + \"--\" + data.address,\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport aes from \"aes-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\nexport var CrowdsaleAccount = /*#__PURE__*/function (_Description) {\n _inherits(CrowdsaleAccount, _Description);\n\n var _super = _createSuper(CrowdsaleAccount);\n\n function CrowdsaleAccount() {\n _classCallCheck(this, CrowdsaleAccount);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CrowdsaleAccount, [{\n key: \"isCrowdsaleAccount\",\n value: function isCrowdsaleAccount(value) {\n return !!(value && value._isCrowdsaleAccount);\n }\n }]);\n\n return CrowdsaleAccount;\n}(Description); // See: https://github.com/ethereum/pyethsaletool\n\nexport function decrypt(json, password) {\n var data = JSON.parse(json);\n password = getPassword(password); // Ethereum Address\n\n var ethaddr = getAddress(searchPath(data, \"ethaddr\")); // Encrypted Seed\n\n var encseed = looseArrayify(searchPath(data, \"encseed\"));\n\n if (!encseed || encseed.length % 16 !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n var key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n var iv = encseed.slice(0, 16);\n var encryptedSeed = encseed.slice(16); // Decrypt the seed\n\n var aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n var seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed))); // This wallet format is weird... Convert the binary encoded hex to a string.\n\n var seedHex = \"\";\n\n for (var i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n var seedHexBytes = toUtf8Bytes(seedHex);\n var privateKey = keccak256(seedHexBytes);\n return new CrowdsaleAccount({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nexport function isCrowdsaleWallet(json) {\n var data = null;\n\n try {\n data = JSON.parse(json);\n } catch (error) {\n return false;\n }\n\n return data.encseed && data.ethaddr;\n}\nexport function isKeystoreWallet(json) {\n var data = null;\n\n try {\n data = JSON.parse(json);\n } catch (error) {\n return false;\n }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n } // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n\n\n return true;\n} //export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json) {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) {\n return null;\n }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) {\n return null;\n }\n }\n\n return null;\n}","\"use strict\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore } from \"./keystore\";\n\nfunction decryptJsonWallet(json, password, progressCallback) {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) {\n progressCallback(0);\n }\n\n var account = decryptCrowdsale(json, password);\n\n if (progressCallback) {\n progressCallback(1);\n }\n\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json, password) {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport { decryptCrowdsale, decryptKeystore, decryptKeystoreSync, encryptKeystore, isCrowdsaleWallet, isKeystoreWallet, getJsonWalletAddress, decryptJsonWallet, decryptJsonWalletSync };","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { arrayify, concat, hexDataSlice, isHexString, joinSignature } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\n\nfunction isAccount(value) {\n return value != null && isHexString(value.privateKey, 32) && value.address != null;\n}\n\nfunction hasMnemonic(value) {\n var mnemonic = value.mnemonic;\n return mnemonic && mnemonic.phrase;\n}\n\nexport var Wallet = /*#__PURE__*/function (_Signer) {\n _inherits(Wallet, _Signer);\n\n var _super = _createSuper(Wallet);\n\n function Wallet(privateKey, provider) {\n var _this;\n\n _classCallCheck(this, Wallet);\n\n _this = _super.call(this);\n\n if (isAccount(privateKey)) {\n var signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(_assertThisInitialized(_this), \"_signingKey\", function () {\n return signingKey;\n });\n defineReadOnly(_assertThisInitialized(_this), \"address\", computeAddress(_this.publicKey));\n\n if (_this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n var srcMnemonic = privateKey.mnemonic;\n defineReadOnly(_assertThisInitialized(_this), \"_mnemonic\", function () {\n return {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n };\n });\n var mnemonic = _this.mnemonic;\n var node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n\n if (computeAddress(node.privateKey) !== _this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(_assertThisInitialized(_this), \"_mnemonic\", function () {\n return null;\n });\n }\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n\n defineReadOnly(_assertThisInitialized(_this), \"_signingKey\", function () {\n return privateKey;\n });\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof privateKey === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n var _signingKey = new SigningKey(privateKey);\n\n defineReadOnly(_assertThisInitialized(_this), \"_signingKey\", function () {\n return _signingKey;\n });\n }\n\n defineReadOnly(_assertThisInitialized(_this), \"_mnemonic\", function () {\n return null;\n });\n defineReadOnly(_assertThisInitialized(_this), \"address\", computeAddress(_this.publicKey));\n }\n /* istanbul ignore if */\n\n\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(_assertThisInitialized(_this), \"provider\", provider || null);\n return _this;\n }\n\n _createClass(Wallet, [{\n key: \"mnemonic\",\n get: function get() {\n return this._mnemonic();\n }\n }, {\n key: \"privateKey\",\n get: function get() {\n return this._signingKey().privateKey;\n }\n }, {\n key: \"publicKey\",\n get: function get() {\n return this._signingKey().publicKey;\n }\n }, {\n key: \"getAddress\",\n value: function getAddress() {\n return Promise.resolve(this.address);\n }\n }, {\n key: \"connect\",\n value: function connect(provider) {\n return new Wallet(this, provider);\n }\n }, {\n key: \"signTransaction\",\n value: function signTransaction(transaction) {\n var _this2 = this;\n\n return resolveProperties(transaction).then(function (tx) {\n if (tx.from != null) {\n if (getAddress(tx.from) !== _this2.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n\n delete tx.from;\n }\n\n var signature = _this2._signingKey().signDigest(keccak256(serialize(tx)));\n\n return serialize(tx, signature);\n });\n }\n }, {\n key: \"signMessage\",\n value: function signMessage(message) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", joinSignature(this._signingKey().signDigest(hashMessage(message))));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"_signTypedData\",\n value: function _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _this3 = this;\n\n var populated;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return _TypedDataEncoder.resolveNames(domain, types, value, function (name) {\n if (_this3.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n\n return _this3.provider.resolveName(name);\n });\n\n case 2:\n populated = _context2.sent;\n return _context2.abrupt(\"return\", joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value))));\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }\n }, {\n key: \"encrypt\",\n value: function encrypt(password, options, progressCallback) {\n if (typeof options === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof progressCallback !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) {\n options = {};\n }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n /**\n * Static methods to create Wallet instances.\n */\n\n }], [{\n key: \"createRandom\",\n value: function createRandom(options) {\n var entropy = randomBytes(16);\n\n if (!options) {\n options = {};\n }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([entropy, options.extraEntropy])), 0, 16));\n }\n\n var mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n }, {\n key: \"fromEncryptedJson\",\n value: function fromEncryptedJson(json, password, progressCallback) {\n return decryptJsonWallet(json, password, progressCallback).then(function (account) {\n return new Wallet(account);\n });\n }\n }, {\n key: \"fromEncryptedJsonSync\",\n value: function fromEncryptedJsonSync(json, password) {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n }, {\n key: \"fromMnemonic\",\n value: function fromMnemonic(mnemonic, path, wordlist) {\n if (!path) {\n path = defaultPath;\n }\n\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n }]);\n\n return Wallet;\n}(Signer);\nexport function verifyMessage(message, signature) {\n return recoverAddress(hashMessage(message), signature);\n}\nexport function verifyTypedData(domain, types, value, signature) {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}","export var version = \"wallet/5.7.0\";","export var AddressZero = \"0x0000000000000000000000000000000000000000\";","export var HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";","// NFKC (composed) // (decomposed)\nexport var EtherSymbol = \"\\u039E\"; // \"\\uD835\\uDF63\";","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\n;\n\nfunction isRenetworkable(value) {\n return value && typeof value.renetwork === \"function\";\n}\n\nfunction ethDefaultProvider(network) {\n var func = function func(providers, options) {\n if (options == null) {\n options = {};\n }\n\n var providerList = [];\n\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch (error) {}\n }\n\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch (error) {}\n }\n\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch (error) {}\n }\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 var skip = [\"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\"];\n\n try {\n var provider = new providers.PocketProvider(network, options.pocket);\n\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch (error) {}\n }\n\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch (error) {}\n }\n\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n var _skip = [\"ropsten\"];\n\n var _provider = new providers.AnkrProvider(network, options.ankr);\n\n if (_provider.network && _skip.indexOf(_provider.network.name) === -1) {\n providerList.push(_provider);\n }\n } catch (error) {}\n }\n\n if (providerList.length === 0) {\n return null;\n }\n\n if (providers.FallbackProvider) {\n var quorum = 1;\n\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n\n return new providers.FallbackProvider(providerList, quorum);\n }\n\n return providerList[0];\n };\n\n func.renetwork = function (network) {\n return ethDefaultProvider(network);\n };\n\n return func;\n}\n\nfunction etcDefaultProvider(url, network) {\n var func = function func(providers, options) {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n\n return null;\n };\n\n func.renetwork = function (network) {\n return etcDefaultProvider(url, network);\n };\n\n return func;\n}\n\nvar homestead = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\nvar ropsten = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\nvar classicMordor = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n}; // See: https://chainlist.org\n\nvar networks = {\n unspecified: {\n chainId: 0,\n name: \"unspecified\"\n },\n homestead: homestead,\n mainnet: homestead,\n morden: {\n chainId: 2,\n name: \"morden\"\n },\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: {\n chainId: 1337702,\n name: \"kintsugi\"\n },\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: {\n chainId: 62,\n name: \"classicMorden\"\n },\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: {\n chainId: 100,\n name: \"xdai\"\n },\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: {\n chainId: 80001,\n name: \"maticmum\"\n },\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": {\n chainId: 69,\n name: \"optimism-kovan\"\n },\n \"optimism-goerli\": {\n chainId: 420,\n name: \"optimism-goerli\"\n },\n arbitrum: {\n chainId: 42161,\n name: \"arbitrum\"\n },\n \"arbitrum-rinkeby\": {\n chainId: 421611,\n name: \"arbitrum-rinkeby\"\n },\n \"arbitrum-goerli\": {\n chainId: 421613,\n name: \"arbitrum-goerli\"\n },\n bnb: {\n chainId: 56,\n name: \"bnb\"\n },\n bnbt: {\n chainId: 97,\n name: \"bnbt\"\n }\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 */\n\nexport function getNetwork(network) {\n // No network (null)\n if (network == null) {\n return null;\n }\n\n if (typeof network === \"number\") {\n for (var name in networks) {\n var _standard = networks[name];\n\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\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n\n if (typeof network === \"string\") {\n var _standard2 = networks[network];\n\n if (_standard2 == null) {\n return null;\n }\n\n return {\n name: _standard2.name,\n chainId: _standard2.chainId,\n ensAddress: _standard2.ensAddress,\n _defaultProvider: _standard2._defaultProvider || null\n };\n }\n\n var standard = networks[network.name]; // Not a standard network; check that it is a valid network in general\n\n if (!standard) {\n if (typeof network.chainId !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n\n return network;\n } // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n\n\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\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\n\n var defaultProvider = network._defaultProvider || null;\n\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n } // Standard Network (allow overriding the ENS address)\n\n\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: network.ensAddress || standard.ensAddress || null,\n _defaultProvider: defaultProvider\n };\n}","export var version = \"networks/5.7.1\";","\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n var data = [];\n\n for (var i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n var textData = \"\";\n\n for (var i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n\n return btoa(textData);\n}","/**\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\n var result = [];\n var forEach = result.forEach;\n\n var flatDeep = function flatDeep(arr, depth) {\n forEach.call(arr, function (val) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array) {\n var result = {};\n\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n result[value[0]] = value[1];\n }\n\n return result;\n}\n\nexport function decode_arithmetic(bytes) {\n var pos = 0;\n\n function u16() {\n return bytes[pos++] << 8 | bytes[pos++];\n } // decode the frequency table\n\n\n var symbol_count = u16();\n var total = 1;\n var acc = [0, 1]; // first symbol has frequency 1\n\n for (var i = 1; i < symbol_count; i++) {\n acc.push(total += u16());\n } // skip the sized-payload that the last 3 symbols index into\n\n\n var skip = u16();\n var pos_payload = pos;\n pos += skip;\n var read_width = 0;\n var read_buffer = 0;\n\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\n return read_buffer >> --read_width & 1;\n }\n\n var N = 31;\n var FULL = Math.pow(2, N);\n var HALF = FULL >>> 1;\n var QRTR = HALF >> 1;\n var MASK = FULL - 1; // fill register\n\n var register = 0;\n\n for (var _i = 0; _i < N; _i++) {\n register = register << 1 | read_bit();\n }\n\n var symbols = [];\n var low = 0;\n var range = FULL; // treat like a float\n\n while (true) {\n var value = Math.floor(((register - low + 1) * total - 1) / range);\n var start = 0;\n var end = symbol_count;\n\n while (end - start > 1) {\n // binary search\n var mid = start + end >>> 1;\n\n if (value < acc[mid]) {\n end = mid;\n } else {\n start = mid;\n }\n }\n\n if (start == 0) break; // first symbol is end mark\n\n symbols.push(start);\n var a = low + Math.floor(range * acc[start] / total);\n var b = low + Math.floor(range * acc[start + 1] / total) - 1;\n\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\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\n low = a;\n range = 1 + b - a;\n }\n\n var offset = symbol_count - 4;\n return symbols.map(function (x) {\n switch (x - offset) {\n case 3:\n return offset + 0x10100 + (bytes[pos_payload++] << 16 | bytes[pos_payload++] << 8 | bytes[pos_payload++]);\n\n case 2:\n return offset + 0x100 + (bytes[pos_payload++] << 8 | bytes[pos_payload++]);\n\n case 1:\n return offset + bytes[pos_payload++];\n\n default:\n return x - 1;\n }\n });\n} // returns an iterator which returns the next symbol\n\nexport function read_payload(v) {\n var pos = 0;\n return function () {\n return v[pos++];\n };\n}\nexport function read_compressed_payload(bytes) {\n return read_payload(decode_arithmetic(bytes));\n} // eg. [0,1,2,3...] => [0,-1,1,-2,...]\n\nexport function signed(i) {\n return i & 1 ? ~i >> 1 : i >> 1;\n}\n\nfunction read_counts(n, next) {\n var v = Array(n);\n\n for (var i = 0; i < n; i++) {\n v[i] = 1 + next();\n }\n\n return v;\n}\n\nfunction read_ascending(n, next) {\n var v = Array(n);\n\n for (var i = 0, x = -1; i < n; i++) {\n v[i] = x += 1 + next();\n }\n\n return v;\n}\n\nfunction read_deltas(n, next) {\n var v = Array(n);\n\n for (var i = 0, x = 0; i < n; i++) {\n v[i] = x += signed(next());\n }\n\n return v;\n}\n\nexport function read_member_array(next, lookup) {\n var v = read_ascending(next(), next);\n var n = next();\n var vX = read_ascending(n, next);\n var vN = read_counts(n, next);\n\n for (var i = 0; i < n; i++) {\n for (var j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n\n return lookup ? v.map(function (x) {\n return lookup[x];\n }) : v;\n} // returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\n\nexport function read_mapped_map(next) {\n var ret = [];\n\n while (true) {\n var w = next();\n if (w == 0) break;\n ret.push(read_linear_table(w, next));\n }\n\n while (true) {\n var _w = next() - 1;\n\n if (_w < 0) break;\n ret.push(read_replacement_table(_w, next));\n }\n\n return fromEntries(flat(ret));\n}\nexport function read_zero_terminated_array(next) {\n var v = [];\n\n while (true) {\n var i = next();\n if (i == 0) break;\n v.push(i);\n }\n\n return v;\n}\n\nfunction read_transposed(n, w, next) {\n var m = Array(n).fill(undefined).map(function () {\n return [];\n });\n\n for (var i = 0; i < w; i++) {\n read_deltas(n, next).forEach(function (x, j) {\n return m[j].push(x);\n });\n }\n\n return m;\n}\n\nfunction read_linear_table(w, next) {\n var dx = 1 + next();\n var dy = next();\n var vN = read_zero_terminated_array(next);\n var m = read_transposed(vN.length, 1 + w, next);\n return flat(m.map(function (v, i) {\n var x = v[0],\n ys = v.slice(1); //let [x, ...ys] = v;\n //return Array(vN[i]).fill().map((_, j) => {\n\n return Array(vN[i]).fill(undefined).map(function (_, j) {\n var j_dy = j * dy;\n return [x + j * dx, ys.map(function (y) {\n return y + j_dy;\n })];\n });\n }));\n}\n\nfunction read_replacement_table(w, next) {\n var n = 1 + next();\n var m = read_transposed(n, 1 + w, next);\n return m.map(function (v) {\n return [v[0], v.slice(1)];\n });\n}\n\nexport function read_emoji_trie(next) {\n var sorted = read_member_array(next).sort(function (a, b) {\n return a - b;\n });\n return read();\n\n function read() {\n var branches = [];\n\n while (true) {\n var keys = read_member_array(next, sorted);\n if (keys.length == 0) break;\n branches.push({\n set: new Set(keys),\n node: read()\n });\n }\n\n branches.sort(function (a, b) {\n return b.set.size - a.set.size;\n }); // sort by likelihood\n\n var temp = next();\n var valid = temp % 3;\n temp = temp / 3 | 0;\n var fe0f = !!(temp & 1);\n temp >>= 1;\n var save = temp == 1;\n var check = temp == 2;\n return {\n branches: branches,\n valid: valid,\n fe0f: fe0f,\n save: save,\n check: check\n };\n }\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\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';\nvar r = getData();\nimport { read_member_array, read_mapped_map, read_emoji_trie } from './decoder.js'; // @TODO: This should be lazily loaded\n\nvar VALID = new Set(read_member_array(r));\nvar IGNORED = new Set(read_member_array(r));\nvar MAPPED = read_mapped_map(r);\nvar EMOJI_ROOT = read_emoji_trie(r); //const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n//const STOP = 0x2E;\n\nvar HYPHEN = 0x2D;\nvar UNDERSCORE = 0x5F;\n\nfunction explode_cp(name) {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps) {\n return cps.filter(function (cp) {\n return cp != 0xFE0F;\n });\n}\n\nexport function ens_normalize_post_check(name) {\n var _iterator = _createForOfIteratorHelper(name.split('.')),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var label = _step.value;\n var cps = explode_cp(label);\n\n try {\n for (var 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\n if (cps.length >= 4 && cps.every(function (cp) {\n return cp < 0x80;\n }) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n throw new Error(\"invalid label extension\");\n }\n } catch (err) {\n throw new Error(\"Invalid label \\\"\".concat(label, \"\\\": \").concat(err.message));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return name;\n}\nexport function ens_normalize(name) {\n return ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name, emoji_filter) {\n var input = explode_cp(name).reverse(); // flip for pop\n\n var output = [];\n\n while (input.length) {\n var emoji = consume_emoji_reversed(input);\n\n if (emoji) {\n output.push.apply(output, _toConsumableArray(emoji_filter(emoji)));\n continue;\n }\n\n var cp = input.pop();\n\n if (VALID.has(cp)) {\n output.push(cp);\n continue;\n }\n\n if (IGNORED.has(cp)) {\n continue;\n }\n\n var cps = MAPPED[cp];\n\n if (cps) {\n output.push.apply(output, _toConsumableArray(cps));\n continue;\n }\n\n throw new Error(\"Disallowed codepoint: 0x\".concat(cp.toString(16).toUpperCase()));\n }\n\n return ens_normalize_post_check(nfc(String.fromCodePoint.apply(String, output)));\n}\n\nfunction nfc(s) {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps, eaten) {\n var _a;\n\n var node = EMOJI_ROOT;\n var emoji;\n var saved;\n var stack = [];\n var pos = cps.length;\n if (eaten) eaten.length = 0; // clear input buffer (if needed)\n\n var _loop = function _loop() {\n var cp = cps[--pos];\n node = (_a = node.branches.find(function (x) {\n return x.set.has(cp);\n })) === null || _a === void 0 ? void 0 : _a.node;\n if (!node) return \"break\";\n\n if (node.save) {\n // remember\n saved = cp;\n } else if (node.check) {\n // check exclusion\n if (cp === saved) return \"break\";\n }\n\n stack.push(cp);\n\n if (node.fe0f) {\n stack.push(0xFE0F);\n if (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n }\n\n if (node.valid) {\n // this is a valid emoji (so far)\n emoji = stack.slice(); // copy stack\n\n if (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\n if (eaten) eaten.push.apply(eaten, _toConsumableArray(cps.slice(pos).reverse())); // copy input (if needed)\n\n cps.length = pos; // truncate\n }\n };\n\n while (pos) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n }\n\n return emoji;\n}","/**\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('AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=='));\n}","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\";\nvar logger = new Logger(version);\nimport { ens_normalize } from \"./ens-normalize/lib\";\nvar Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp) {\n if (comp.length === 0) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n\n return comp;\n}\n\nfunction ensNameSplit(name) {\n var bytes = toUtf8Bytes(ens_normalize(name));\n var comps = [];\n\n if (name.length === 0) {\n return comps;\n }\n\n var last = 0;\n\n for (var i = 0; i < bytes.length; i++) {\n var d = bytes[i]; // A separator (i.e. \".\"); copy this component\n\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n } // There was a stray separator at the end of the name\n\n\n if (last >= bytes.length) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name) {\n return ensNameSplit(name).map(function (comp) {\n return toUtf8String(comp);\n }).join(\".\");\n}\nexport function isValidName(name) {\n try {\n return ensNameSplit(name).length !== 0;\n } catch (error) {}\n\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\n var result = Zeros;\n var comps = ensNameSplit(name);\n\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\nexport function dnsEncode(name) {\n return hexlify(concat(ensNameSplit(name).map(function (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\n var bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n }))) + \"00\";\n}","export var version = \"web/5.7.1\";","\"use strict\";\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function getUrl(href, options) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var request, opts, response, body, headers;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (options == null) {\n options = {};\n }\n\n request = {\n method: options.method || \"GET\",\n headers: options.headers || {},\n body: options.body || undefined\n };\n\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n\n request.redirect = \"follow\"; // manual, *follow, error\n\n request.referrer = \"client\"; // no-referrer, *client\n }\n\n ;\n\n if (options.fetchOptions != null) {\n opts = options.fetchOptions;\n\n if (opts.mode) {\n request.mode = opts.mode;\n }\n\n if (opts.cache) {\n request.cache = opts.cache;\n }\n\n if (opts.credentials) {\n request.credentials = opts.credentials;\n }\n\n if (opts.redirect) {\n request.redirect = opts.redirect;\n }\n\n if (opts.referrer) {\n request.referrer = opts.referrer;\n }\n }\n\n _context.next = 7;\n return fetch(href, request);\n\n case 7:\n response = _context.sent;\n _context.next = 10;\n return response.arrayBuffer();\n\n case 10:\n body = _context.sent;\n headers = {};\n\n if (response.headers.forEach) {\n response.headers.forEach(function (value, key) {\n headers[key.toLowerCase()] = value;\n });\n } else {\n response.headers.keys().forEach(function (key) {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n\n return _context.abrupt(\"return\", {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body))\n });\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n}","\"use strict\";\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar logger = new Logger(version);\nimport { getUrl } from \"./geturl\";\n\nfunction staller(duration) {\n return new Promise(function (resolve) {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value, type) {\n if (value == null) {\n return null;\n }\n\n if (typeof value === \"string\") {\n return value;\n }\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 } catch (error) {}\n\n ;\n }\n\n return hexlify(value);\n }\n\n return value;\n}\n\nfunction unpercent(value) {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, function (all, code) {\n return String.fromCharCode(parseInt(code, 16));\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\n\n\nexport function _fetchData(connection, body, processFunc) {\n // How many times to retry in the event of a throttle\n var 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 var throttleCallback = _typeof(connection) === \"object\" ? connection.throttleCallback : null;\n var 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 var errorPassThrough = _typeof(connection) === \"object\" ? !!connection.errorPassThrough : false;\n var headers = {};\n var url = null; // @TODO: Allow ConnectionInfo to override some of these values\n\n var options = {\n method: \"GET\"\n };\n var allow304 = false;\n var timeout = 2 * 60 * 1000;\n\n if (typeof connection === \"string\") {\n url = connection;\n } else if (_typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof connection.timeout === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (var key in connection.headers) {\n headers[key.toLowerCase()] = {\n key: key,\n value: String(connection.headers[key])\n };\n\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\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, {\n argument: \"url\",\n url: url,\n user: connection.user,\n password: \"[REDACTED]\"\n });\n }\n\n var authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n var reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n var dataMatch = url ? url.match(reData) : null;\n\n if (dataMatch) {\n try {\n var response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: {\n \"content-type\": dataMatch[1] || \"text/plain\"\n },\n body: dataMatch[2] ? base64Decode(dataMatch[3]) : unpercent(dataMatch[3])\n };\n var result = response.body;\n\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n\n return Promise.resolve(result);\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\n if (body) {\n options.method = \"POST\";\n options.body = body;\n\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = {\n key: \"Content-Type\",\n value: \"application/octet-stream\"\n };\n }\n\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = {\n key: \"Content-Length\",\n value: String(body.length)\n };\n }\n }\n\n var flatHeaders = {};\n Object.keys(headers).forEach(function (key) {\n var header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n var runningTimeout = function () {\n var timer = null;\n var promise = new Promise(function (resolve, reject) {\n if (timeout) {\n timer = setTimeout(function () {\n if (timer == null) {\n return;\n }\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\n var cancel = function cancel() {\n if (timer == null) {\n return;\n }\n\n clearTimeout(timer);\n timer = null;\n };\n\n return {\n promise: promise,\n cancel: cancel\n };\n }();\n\n var runningFetch = function () {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var attempt, _response, location, tryAgain, stall, retryAfter, _body, _result, _tryAgain, _timeout;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n attempt = 0;\n\n case 1:\n if (!(attempt < attemptLimit)) {\n _context.next = 65;\n break;\n }\n\n _response = null;\n _context.prev = 3;\n _context.next = 6;\n return getUrl(url, options);\n\n case 6:\n _response = _context.sent;\n\n if (!(attempt < attemptLimit)) {\n _context.next = 28;\n break;\n }\n\n if (!(_response.statusCode === 301 || _response.statusCode === 302)) {\n _context.next = 15;\n break;\n }\n\n // Redirection; for now we only support absolute locataions\n location = _response.headers.location || \"\";\n\n if (!(options.method === \"GET\" && location.match(/^https:/))) {\n _context.next = 13;\n break;\n }\n\n url = _response.headers.location;\n return _context.abrupt(\"continue\", 62);\n\n case 13:\n _context.next = 28;\n break;\n\n case 15:\n if (!(_response.statusCode === 429)) {\n _context.next = 28;\n break;\n }\n\n // Exponential back-off throttling\n tryAgain = true;\n\n if (!throttleCallback) {\n _context.next = 21;\n break;\n }\n\n _context.next = 20;\n return throttleCallback(attempt, url);\n\n case 20:\n tryAgain = _context.sent;\n\n case 21:\n if (!tryAgain) {\n _context.next = 28;\n break;\n }\n\n stall = 0;\n retryAfter = _response.headers[\"retry-after\"];\n\n if (typeof retryAfter === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n } //console.log(\"Stalling 429\");\n\n\n _context.next = 27;\n return staller(stall);\n\n case 27:\n return _context.abrupt(\"continue\", 62);\n\n case 28:\n _context.next = 34;\n break;\n\n case 30:\n _context.prev = 30;\n _context.t0 = _context[\"catch\"](3);\n _response = _context.t0.response;\n\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: _context.t0,\n url: url\n });\n }\n\n case 34:\n _body = _response.body;\n\n if (allow304 && _response.statusCode === 304) {\n _body = null;\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\n if (!processFunc) {\n _context.next = 60;\n break;\n }\n\n _context.prev = 37;\n _context.next = 40;\n return processFunc(_body, _response);\n\n case 40:\n _result = _context.sent;\n runningTimeout.cancel();\n return _context.abrupt(\"return\", _result);\n\n case 45:\n _context.prev = 45;\n _context.t1 = _context[\"catch\"](37);\n\n if (!(_context.t1.throttleRetry && attempt < attemptLimit)) {\n _context.next = 58;\n break;\n }\n\n _tryAgain = true;\n\n if (!throttleCallback) {\n _context.next = 53;\n break;\n }\n\n _context.next = 52;\n return throttleCallback(attempt, url);\n\n case 52:\n _tryAgain = _context.sent;\n\n case 53:\n if (!_tryAgain) {\n _context.next = 58;\n break;\n }\n\n _timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); //console.log(\"Stalling callback\");\n\n _context.next = 57;\n return staller(_timeout);\n\n case 57:\n return _context.abrupt(\"continue\", 62);\n\n case 58:\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: _context.t1,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n\n case 60:\n runningTimeout.cancel(); // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n\n return _context.abrupt(\"return\", _body);\n\n case 62:\n attempt++;\n _context.next = 1;\n break;\n\n case 65:\n return _context.abrupt(\"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 case 66:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 30], [37, 45]]);\n }));\n }();\n\n return Promise.race([runningTimeout.promise, runningFetch]);\n}\nexport function fetchJson(connection, json, processFunc) {\n var processJsonFunc = function processJsonFunc(value, response) {\n var result = null;\n\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\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\n\n var body = null;\n\n if (json != null) {\n body = toUtf8Bytes(json); // Create a connection with the content-type set for JSON\n\n var updated = typeof connection === \"string\" ? {\n url: connection\n } : shallowCopy(connection);\n\n if (updated.headers) {\n var hasContentType = Object.keys(updated.headers).filter(function (k) {\n return k.toLowerCase() === \"content-type\";\n }).length !== 0;\n\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = {\n \"content-type\": \"application/json\"\n };\n }\n\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\nexport function poll(func, options) {\n if (!options) {\n options = {};\n }\n\n options = shallowCopy(options);\n\n if (options.floor == null) {\n options.floor = 0;\n }\n\n if (options.ceiling == null) {\n options.ceiling = 10000;\n }\n\n if (options.interval == null) {\n options.interval = 250;\n }\n\n return new Promise(function (resolve, reject) {\n var timer = null;\n var done = false; // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n\n var cancel = function cancel() {\n if (done) {\n return false;\n }\n\n done = true;\n\n if (timer) {\n clearTimeout(timer);\n }\n\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(function () {\n if (cancel()) {\n reject(new Error(\"timeout\"));\n }\n }, options.timeout);\n }\n\n var retryLimit = options.retryLimit;\n var attempt = 0;\n\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 } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check); // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n\n if (attempt > retryLimit) {\n if (cancel()) {\n reject(new Error(\"retry limit reached\"));\n }\n\n return;\n }\n\n var timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n\n if (timeout < options.floor) {\n timeout = options.floor;\n }\n\n if (timeout > options.ceiling) {\n timeout = options.ceiling;\n }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function (error) {\n if (cancel()) {\n reject(error);\n }\n });\n }\n\n check();\n });\n}","export var version = \"providers/5.7.2\";","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\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\";\nvar logger = new Logger(version);\nexport var Formatter = /*#__PURE__*/function () {\n function Formatter() {\n _classCallCheck(this, Formatter);\n\n this.formats = this.getDefaultFormats();\n }\n\n _createClass(Formatter, [{\n key: \"getDefaultFormats\",\n value: function getDefaultFormats() {\n var _this = this;\n\n var formats = {};\n var address = this.address.bind(this);\n var bigNumber = this.bigNumber.bind(this);\n var blockTag = this.blockTag.bind(this);\n var data = this.data.bind(this);\n var hash = this.hash.bind(this);\n var hex = this.hex.bind(this);\n var number = this.number.bind(this);\n var type = this.type.bind(this);\n\n var strictData = function strictData(v) {\n return _this.data(v, true);\n };\n\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 }, {\n key: \"accessList\",\n value: function accessList(_accessList) {\n return accessListify(_accessList || []);\n } // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n\n }, {\n key: \"number\",\n value: function number(_number) {\n if (_number === \"0x\") {\n return 0;\n }\n\n return BigNumber.from(_number).toNumber();\n }\n }, {\n key: \"type\",\n value: function type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n\n return BigNumber.from(number).toNumber();\n } // Strict! Used on input.\n\n }, {\n key: \"bigNumber\",\n value: function bigNumber(value) {\n return BigNumber.from(value);\n } // Requires a boolean, \"true\" or \"false\"; returns a boolean\n\n }, {\n key: \"boolean\",\n value: function boolean(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n\n if (typeof value === \"string\") {\n value = value.toLowerCase();\n\n if (value === \"true\") {\n return true;\n }\n\n if (value === \"false\") {\n return false;\n }\n }\n\n throw new Error(\"invalid boolean - \" + value);\n }\n }, {\n key: \"hex\",\n value: function hex(value, strict) {\n if (typeof value === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n }, {\n key: \"data\",\n value: function data(value, strict) {\n var result = this.hex(value, strict);\n\n if (result.length % 2 !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n\n return result;\n } // Requires an address\n // Strict! Used on input.\n\n }, {\n key: \"address\",\n value: function address(value) {\n return getAddress(value);\n }\n }, {\n key: \"callAddress\",\n value: function callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n\n var address = getAddress(hexDataSlice(value, 12));\n return address === AddressZero ? null : address;\n }\n }, {\n key: \"contractAddress\",\n value: function contractAddress(value) {\n return getContractAddress(value);\n } // Strict! Used on input.\n\n }, {\n key: \"blockTag\",\n value: function blockTag(_blockTag) {\n if (_blockTag == null) {\n return \"latest\";\n }\n\n if (_blockTag === \"earliest\") {\n return \"0x0\";\n }\n\n switch (_blockTag) {\n case \"earliest\":\n return \"0x0\";\n\n case \"latest\":\n case \"pending\":\n case \"safe\":\n case \"finalized\":\n return _blockTag;\n }\n\n if (typeof _blockTag === \"number\" || isHexString(_blockTag)) {\n return hexValue(_blockTag);\n }\n\n throw new Error(\"invalid blockTag\");\n } // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n\n }, {\n key: \"hash\",\n value: function hash(value, strict) {\n var result = this.hex(value, strict);\n\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n\n return result;\n } // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n\n }, {\n key: \"difficulty\",\n value: function difficulty(value) {\n if (value == null) {\n return null;\n }\n\n var v = BigNumber.from(value);\n\n try {\n return v.toNumber();\n } catch (error) {}\n\n return null;\n }\n }, {\n key: \"uint256\",\n value: function uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n\n return hexZeroPad(value, 32);\n }\n }, {\n key: \"_block\",\n value: function _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n } // The difficulty may need to come from _difficulty in recursed blocks\n\n\n var difficulty = value._difficulty != null ? value._difficulty : value.difficulty;\n var result = Formatter.check(format, value);\n result._difficulty = difficulty == null ? null : BigNumber.from(difficulty);\n return result;\n }\n }, {\n key: \"block\",\n value: function block(value) {\n return this._block(value, this.formats.block);\n }\n }, {\n key: \"blockWithTransactions\",\n value: function blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n } // Strict! Used on input.\n\n }, {\n key: \"transactionRequest\",\n value: function transactionRequest(value) {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n }, {\n key: \"transactionResponse\",\n value: function transactionResponse(transaction) {\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n } // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n\n\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n } // Rename input to data\n\n\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n } // If to and creates are empty, populate the creates from the transaction\n\n\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n\n var result = Formatter.check(this.formats.transaction, transaction);\n\n if (transaction.chainId != null) {\n var chainId = transaction.chainId;\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n result.chainId = chainId;\n } else {\n var _chainId = transaction.networkId; // geth-etc returns chainId\n\n if (_chainId == null && result.v == null) {\n _chainId = transaction.chainId;\n }\n\n if (isHexString(_chainId)) {\n _chainId = BigNumber.from(_chainId).toNumber();\n }\n\n if (typeof _chainId !== \"number\" && result.v != null) {\n _chainId = (result.v - 35) / 2;\n\n if (_chainId < 0) {\n _chainId = 0;\n }\n\n _chainId = parseInt(_chainId);\n }\n\n if (typeof _chainId !== \"number\") {\n _chainId = 0;\n }\n\n result.chainId = _chainId;\n } // 0x0000... should actually be null\n\n\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n\n return result;\n }\n }, {\n key: \"transaction\",\n value: function transaction(value) {\n return parseTransaction(value);\n }\n }, {\n key: \"receiptLog\",\n value: function receiptLog(value) {\n return Formatter.check(this.formats.receiptLog, value);\n }\n }, {\n key: \"receipt\",\n value: function receipt(value) {\n var result = Formatter.check(this.formats.receipt, value); // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n var _value = BigNumber.from(result.root).toNumber();\n\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\", {\n root: result.root,\n status: result.status\n });\n }\n\n result.status = _value;\n delete result.root;\n } else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\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\n if (result.status != null) {\n result.byzantium = true;\n }\n\n return result;\n }\n }, {\n key: \"topics\",\n value: function topics(value) {\n var _this2 = this;\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return _this2.topics(v);\n });\n } else if (value != null) {\n return this.hash(value, true);\n }\n\n return null;\n }\n }, {\n key: \"filter\",\n value: function filter(value) {\n return Formatter.check(this.formats.filter, value);\n }\n }, {\n key: \"filterLog\",\n value: function filterLog(value) {\n return Formatter.check(this.formats.filterLog, value);\n }\n }], [{\n key: \"check\",\n value: function check(format, object) {\n var result = {};\n\n for (var key in format) {\n try {\n var value = format[key](object[key]);\n\n if (value !== undefined) {\n result[key] = value;\n }\n } catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n\n return result;\n } // if value is null-ish, nullValue is returned\n\n }, {\n key: \"allowNull\",\n value: function allowNull(format, nullValue) {\n return function (value) {\n if (value == null) {\n return nullValue;\n }\n\n return format(value);\n };\n } // If value is false-ish, replaceValue is returned\n\n }, {\n key: \"allowFalsish\",\n value: function allowFalsish(format, replaceValue) {\n return function (value) {\n if (!value) {\n return replaceValue;\n }\n\n return format(value);\n };\n } // Requires an Array satisfying check\n\n }, {\n key: \"arrayOf\",\n value: function arrayOf(format) {\n return function (array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n\n var result = [];\n array.forEach(function (value) {\n result.push(format(value));\n });\n return result;\n };\n }\n }]);\n\n return Formatter;\n}();\nexport function isCommunityResourcable(value) {\n return value && typeof value.isCommunityResource === \"function\";\n}\nexport function isCommunityResource(value) {\n return isCommunityResourcable(value) && value.isCommunityResource();\n} // Show the throttle message only once\n\nvar throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) {\n return;\n }\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}","\"use strict\";\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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 as _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\";\nvar logger = new Logger(version);\nimport { Formatter } from \"./formatter\";\nvar MAX_CCIP_REDIRECTS = 10; //////////////////////////////\n// Event Serializeing\n\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n\n return topic.toLowerCase();\n}\n\nfunction serializeTopics(topics) {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n\n return topics.map(function (topic) {\n if (Array.isArray(topic)) {\n // Only track unique OR-topics\n var unique = {};\n topic.forEach(function (topic) {\n unique[checkTopic(topic)] = true;\n }); // The order of OR-topics does not matter\n\n var sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\n\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n\n return data.split(/&/g).map(function (topic) {\n if (topic === \"\") {\n return [];\n }\n\n var comps = topic.split(\"|\").map(function (topic) {\n return topic === \"null\" ? null : topic;\n });\n return comps.length === 1 ? comps[0] : comps;\n });\n}\n\nfunction getEventTag(eventName) {\n if (typeof eventName === \"string\") {\n eventName = eventName.toLowerCase();\n\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n } else if (eventName && _typeof(eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n\n throw new Error(\"invalid event - \" + eventName);\n} //////////////////////////////\n// Helper Object\n\n\nfunction getTime() {\n return new Date().getTime();\n}\n\nfunction stall(duration) {\n return new Promise(function (resolve) {\n setTimeout(resolve, duration);\n });\n} //////////////////////////////\n// Provider Object\n\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\n\n\nvar PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nexport var Event = /*#__PURE__*/function () {\n function Event(tag, listener, once) {\n _classCallCheck(this, Event);\n\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\n _createClass(Event, [{\n key: \"event\",\n get: function get() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n\n case \"filter\":\n return this.filter;\n }\n\n return this.tag;\n }\n }, {\n key: \"type\",\n get: function get() {\n return this.tag.split(\":\")[0];\n }\n }, {\n key: \"hash\",\n get: function get() {\n var comps = this.tag.split(\":\");\n\n if (comps[0] !== \"tx\") {\n return null;\n }\n\n return comps[1];\n }\n }, {\n key: \"filter\",\n get: function get() {\n var comps = this.tag.split(\":\");\n\n if (comps[0] !== \"filter\") {\n return null;\n }\n\n var address = comps[1];\n var topics = deserializeTopics(comps[2]);\n var filter = {};\n\n if (topics.length > 0) {\n filter.topics = topics;\n }\n\n if (address && address !== \"*\") {\n filter.address = address;\n }\n\n return filter;\n }\n }, {\n key: \"pollable\",\n value: function pollable() {\n return this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0;\n }\n }]);\n\n return Event;\n}();\n; // https://github.com/satoshilabs/slips/blob/master/slip-0044.md\n\nvar coinInfos = {\n \"0\": {\n symbol: \"btc\",\n p2pkh: 0x00,\n p2sh: 0x05,\n prefix: \"bc\"\n },\n \"2\": {\n symbol: \"ltc\",\n p2pkh: 0x30,\n p2sh: 0x32,\n prefix: \"ltc\"\n },\n \"3\": {\n symbol: \"doge\",\n p2pkh: 0x1e,\n p2sh: 0x16\n },\n \"60\": {\n symbol: \"eth\",\n ilk: \"eth\"\n },\n \"61\": {\n symbol: \"etc\",\n ilk: \"eth\"\n },\n \"700\": {\n symbol: \"xdai\",\n ilk: \"eth\"\n }\n};\n\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n} // Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\n\n\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\n\nvar matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nvar matchers = [new RegExp(\"^(https):/\\/(.*)$\", \"i\"), new RegExp(\"^(data):(.*)$\", \"i\"), matcherIpfs, new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\")];\n\nfunction _parseString(result, start) {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch (error) {}\n\n return null;\n}\n\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n\n var offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n var length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n} // Trim off the ipfs:// prefix and return the default gateway URL\n\n\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n\n return \"https://gateway.ipfs.io/ipfs/\".concat(link);\n}\n\nfunction numPad(value) {\n var result = arrayify(value);\n\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n\n var padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\n\nfunction bytesPad(value) {\n if (value.length % 32 === 0) {\n return value;\n }\n\n var result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n} // ABI Encodes a series of (bytes, bytes, ...)\n\n\nfunction encodeBytes(datas) {\n var result = [];\n var byteCount = 0; // Add place-holders for pointers as we add items\n\n for (var i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n\n for (var _i = 0; _i < datas.length; _i++) {\n var data = arrayify(datas[_i]); // Update the bytes offset\n\n result[_i] = numPad(byteCount); // The length and padded value of data\n\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n\n return hexConcat(result);\n}\n\nexport var Resolver = /*#__PURE__*/function () {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n function Resolver(provider, address, name, resolvedAddress) {\n _classCallCheck(this, Resolver);\n\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\n _createClass(Resolver, [{\n key: \"supportsWildcard\",\n value: function supportsWildcard() {\n var _this = this;\n\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(function (result) {\n return BigNumber.from(result).eq(1);\n }).catch(function (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return false;\n } // Rethrow the error: link is down, etc. Let future attempts retry.\n\n\n _this._supportsEip2544 = null;\n throw error;\n });\n }\n\n return this._supportsEip2544;\n }\n }, {\n key: \"_fetch\",\n value: function _fetch(selector, parameters) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var tx, parseBytes, result;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([selector, namehash(this.name), parameters || \"0x\"])\n }; // Wildcard support; use EIP-2544 to resolve the request\n\n parseBytes = false;\n _context.next = 4;\n return this.supportsWildcard();\n\n case 4:\n if (!_context.sent) {\n _context.next = 7;\n break;\n }\n\n parseBytes = true; // selector(\"resolve(bytes,bytes)\")\n\n tx.data = hexConcat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), tx.data])]);\n\n case 7:\n _context.prev = 7;\n _context.next = 10;\n return this.provider.call(tx);\n\n case 10:\n result = _context.sent;\n\n if (arrayify(result).length % 32 === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx,\n data: result\n });\n }\n\n if (parseBytes) {\n result = _parseBytes(result, 0);\n }\n\n return _context.abrupt(\"return\", result);\n\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](7);\n\n if (!(_context.t0.code === Logger.errors.CALL_EXCEPTION)) {\n _context.next = 20;\n break;\n }\n\n return _context.abrupt(\"return\", null);\n\n case 20:\n throw _context.t0;\n\n case 21:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[7, 16]]);\n }));\n }\n }, {\n key: \"_fetchBytes\",\n value: function _fetchBytes(selector, parameters) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var result;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._fetch(selector, parameters);\n\n case 2:\n result = _context2.sent;\n\n if (!(result != null)) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt(\"return\", _parseBytes(result, 0));\n\n case 5:\n return _context2.abrupt(\"return\", null);\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }\n }, {\n key: \"_getAddress\",\n value: function _getAddress(coinType, hexBytes) {\n var coinInfo = coinInfos[String(coinType)];\n\n if (coinInfo == null) {\n logger.throwError(\"unsupported coin type: \".concat(coinType), Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress(\".concat(coinType, \")\")\n });\n }\n\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n\n var bytes = arrayify(hexBytes); // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n\n if (coinInfo.p2pkh != null) {\n var p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n\n if (p2pkh) {\n var length = parseInt(p2pkh[1], 16);\n\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], \"0x\" + p2pkh[2]]));\n }\n }\n } // P2SH: OP_HASH160 OP_EQUAL\n\n\n if (coinInfo.p2sh != null) {\n var p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n\n if (p2sh) {\n var _length = parseInt(p2sh[1], 16);\n\n if (p2sh[2].length === _length * 2 && _length >= 1 && _length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], \"0x\" + p2sh[2]]));\n }\n }\n } // Bech32\n\n\n if (coinInfo.prefix != null) {\n var _length2 = bytes[1]; // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n\n var _version = bytes[0];\n\n if (_version === 0x00) {\n if (_length2 !== 20 && _length2 !== 32) {\n _version = -1;\n }\n } else {\n _version = -1;\n }\n\n if (_version >= 0 && bytes.length === 2 + _length2 && _length2 >= 1 && _length2 <= 75) {\n var words = bech32.toWords(bytes.slice(2));\n words.unshift(_version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n\n return null;\n }\n }, {\n key: \"getAddress\",\n value: function getAddress(coinType) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var result, hexBytes, address;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (coinType == null) {\n coinType = 60;\n } // If Ethereum, use the standard `addr(bytes32)`\n\n\n if (!(coinType === 60)) {\n _context3.next = 16;\n break;\n }\n\n _context3.prev = 2;\n _context3.next = 5;\n return this._fetch(\"0x3b3b57de\");\n\n case 5:\n result = _context3.sent;\n\n if (!(result === \"0x\" || result === HashZero)) {\n _context3.next = 8;\n break;\n }\n\n return _context3.abrupt(\"return\", null);\n\n case 8:\n return _context3.abrupt(\"return\", this.provider.formatter.callAddress(result));\n\n case 11:\n _context3.prev = 11;\n _context3.t0 = _context3[\"catch\"](2);\n\n if (!(_context3.t0.code === Logger.errors.CALL_EXCEPTION)) {\n _context3.next = 15;\n break;\n }\n\n return _context3.abrupt(\"return\", null);\n\n case 15:\n throw _context3.t0;\n\n case 16:\n _context3.next = 18;\n return this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n\n case 18:\n hexBytes = _context3.sent;\n\n if (!(hexBytes == null || hexBytes === \"0x\")) {\n _context3.next = 21;\n break;\n }\n\n return _context3.abrupt(\"return\", null);\n\n case 21:\n // Compute the address\n address = this._getAddress(coinType, hexBytes);\n\n if (address == null) {\n logger.throwError(\"invalid or unsupported coin data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress(\".concat(coinType, \")\"),\n coinType: coinType,\n data: hexBytes\n });\n }\n\n return _context3.abrupt(\"return\", address);\n\n case 24:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[2, 11]]);\n }));\n }\n }, {\n key: \"getAvatar\",\n value: function getAvatar() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var linkage, avatar, i, match, scheme, selector, owner, comps, addr, tokenId, tokenOwner, balance, tx, metadataUrl, metadata, imageUrl, ipfs;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n linkage = [{\n type: \"name\",\n content: this.name\n }];\n _context4.prev = 1;\n _context4.next = 4;\n return this.getText(\"avatar\");\n\n case 4:\n avatar = _context4.sent;\n\n if (!(avatar == null)) {\n _context4.next = 7;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 7:\n i = 0;\n\n case 8:\n if (!(i < matchers.length)) {\n _context4.next = 91;\n break;\n }\n\n match = avatar.match(matchers[i]);\n\n if (!(match == null)) {\n _context4.next = 12;\n break;\n }\n\n return _context4.abrupt(\"continue\", 88);\n\n case 12:\n scheme = match[1].toLowerCase();\n _context4.t0 = scheme;\n _context4.next = _context4.t0 === \"https\" ? 16 : _context4.t0 === \"data\" ? 18 : _context4.t0 === \"ipfs\" ? 20 : _context4.t0 === \"erc721\" ? 22 : _context4.t0 === \"erc1155\" ? 22 : 88;\n break;\n\n case 16:\n linkage.push({\n type: \"url\",\n content: avatar\n });\n return _context4.abrupt(\"return\", {\n linkage: linkage,\n url: avatar\n });\n\n case 18:\n linkage.push({\n type: \"data\",\n content: avatar\n });\n return _context4.abrupt(\"return\", {\n linkage: linkage,\n url: avatar\n });\n\n case 20:\n linkage.push({\n type: \"ipfs\",\n content: avatar\n });\n return _context4.abrupt(\"return\", {\n linkage: linkage,\n url: getIpfsLink(avatar)\n });\n\n case 22:\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n selector = scheme === \"erc721\" ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({\n type: scheme,\n content: avatar\n }); // The owner of this name\n\n _context4.t1 = this._resolvedAddress;\n\n if (_context4.t1) {\n _context4.next = 29;\n break;\n }\n\n _context4.next = 28;\n return this.getAddress();\n\n case 28:\n _context4.t1 = _context4.sent;\n\n case 29:\n owner = _context4.t1;\n comps = (match[2] || \"\").split(\"/\");\n\n if (!(comps.length !== 2)) {\n _context4.next = 33;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 33:\n _context4.next = 35;\n return this.provider.formatter.address(comps[0]);\n\n case 35:\n addr = _context4.sent;\n tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32); // Check that this account owns the token\n\n if (!(scheme === \"erc721\")) {\n _context4.next = 48;\n break;\n }\n\n _context4.t2 = this.provider.formatter;\n _context4.next = 41;\n return this.provider.call({\n to: addr,\n data: hexConcat([\"0x6352211e\", tokenId])\n });\n\n case 41:\n _context4.t3 = _context4.sent;\n tokenOwner = _context4.t2.callAddress.call(_context4.t2, _context4.t3);\n\n if (!(owner !== tokenOwner)) {\n _context4.next = 45;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 45:\n linkage.push({\n type: \"owner\",\n content: tokenOwner\n });\n _context4.next = 57;\n break;\n\n case 48:\n if (!(scheme === \"erc1155\")) {\n _context4.next = 57;\n break;\n }\n\n _context4.t4 = BigNumber;\n _context4.next = 52;\n return this.provider.call({\n to: addr,\n data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n });\n\n case 52:\n _context4.t5 = _context4.sent;\n balance = _context4.t4.from.call(_context4.t4, _context4.t5);\n\n if (!balance.isZero()) {\n _context4.next = 56;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 56:\n linkage.push({\n type: \"balance\",\n content: balance.toString()\n });\n\n case 57:\n // Call the token contract for the metadata URL\n tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n _context4.t6 = _parseString;\n _context4.next = 61;\n return this.provider.call(tx);\n\n case 61:\n _context4.t7 = _context4.sent;\n metadataUrl = (0, _context4.t6)(_context4.t7, 0);\n\n if (!(metadataUrl == null)) {\n _context4.next = 65;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 65:\n linkage.push({\n type: \"metadata-url-base\",\n content: metadataUrl\n }); // ERC-1155 allows a generic {id} in the URL\n\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({\n type: \"metadata-url-expanded\",\n content: metadataUrl\n });\n } // Transform IPFS metadata links\n\n\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n\n linkage.push({\n type: \"metadata-url\",\n content: metadataUrl\n }); // Get the token metadata\n\n _context4.next = 71;\n return fetchJson(metadataUrl);\n\n case 71:\n metadata = _context4.sent;\n\n if (metadata) {\n _context4.next = 74;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 74:\n linkage.push({\n type: \"metadata\",\n content: JSON.stringify(metadata)\n }); // Pull the image URL out\n\n imageUrl = metadata.image;\n\n if (!(typeof imageUrl !== \"string\")) {\n _context4.next = 78;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 78:\n if (!imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n _context4.next = 81;\n break;\n }\n\n _context4.next = 86;\n break;\n\n case 81:\n // Transform IPFS link to gateway\n ipfs = imageUrl.match(matcherIpfs);\n\n if (!(ipfs == null)) {\n _context4.next = 84;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 84:\n linkage.push({\n type: \"url-ipfs\",\n content: imageUrl\n });\n imageUrl = getIpfsLink(imageUrl);\n\n case 86:\n linkage.push({\n type: \"url\",\n content: imageUrl\n });\n return _context4.abrupt(\"return\", {\n linkage: linkage,\n url: imageUrl\n });\n\n case 88:\n i++;\n _context4.next = 8;\n break;\n\n case 91:\n _context4.next = 95;\n break;\n\n case 93:\n _context4.prev = 93;\n _context4.t8 = _context4[\"catch\"](1);\n\n case 95:\n return _context4.abrupt(\"return\", null);\n\n case 96:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this, [[1, 93]]);\n }));\n }\n }, {\n key: \"getContentHash\",\n value: function getContentHash() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var hexBytes, ipfs, length, ipns, _length3, swarm, skynet, urlSafe, hash;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this._fetchBytes(\"0xbc1c58d1\");\n\n case 2:\n hexBytes = _context5.sent;\n\n if (!(hexBytes == null || hexBytes === \"0x\")) {\n _context5.next = 5;\n break;\n }\n\n return _context5.abrupt(\"return\", null);\n\n case 5:\n // IPFS (CID: 1, Type: DAG-PB)\n ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n\n if (!ipfs) {\n _context5.next = 10;\n break;\n }\n\n length = parseInt(ipfs[3], 16);\n\n if (!(ipfs[4].length === length * 2)) {\n _context5.next = 10;\n break;\n }\n\n return _context5.abrupt(\"return\", \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]));\n\n case 10:\n // IPNS (CID: 1, Type: libp2p-key)\n ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n\n if (!ipns) {\n _context5.next = 15;\n break;\n }\n\n _length3 = parseInt(ipns[3], 16);\n\n if (!(ipns[4].length === _length3 * 2)) {\n _context5.next = 15;\n break;\n }\n\n return _context5.abrupt(\"return\", \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]));\n\n case 15:\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n\n if (!swarm) {\n _context5.next = 19;\n break;\n }\n\n if (!(swarm[1].length === 32 * 2)) {\n _context5.next = 19;\n break;\n }\n\n return _context5.abrupt(\"return\", \"bzz:/\\/\" + swarm[1]);\n\n case 19:\n skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n\n if (!skynet) {\n _context5.next = 25;\n break;\n }\n\n if (!(skynet[1].length === 34 * 2)) {\n _context5.next = 25;\n break;\n }\n\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n urlSafe = {\n \"=\": \"\",\n \"+\": \"-\",\n \"/\": \"_\"\n };\n hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, function (a) {\n return urlSafe[a];\n });\n return _context5.abrupt(\"return\", \"sia:/\\/\" + hash);\n\n case 25:\n return _context5.abrupt(\"return\", logger.throwError(\"invalid or unsupported content hash data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n }));\n\n case 26:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n }\n }, {\n key: \"getText\",\n value: function getText(key) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var keyBytes, hexBytes;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n // The key encoded as parameter to fetchBytes\n keyBytes = toUtf8Bytes(key); // 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\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]); // Pad to word-size (32 bytes)\n\n if (keyBytes.length % 32 !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - key.length % 32)]);\n }\n\n _context6.next = 5;\n return this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n\n case 5:\n hexBytes = _context6.sent;\n\n if (!(hexBytes == null || hexBytes === \"0x\")) {\n _context6.next = 8;\n break;\n }\n\n return _context6.abrupt(\"return\", null);\n\n case 8:\n return _context6.abrupt(\"return\", toUtf8String(hexBytes));\n\n case 9:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n }\n }]);\n\n return Resolver;\n}();\nvar defaultFormatter = null;\nvar nextPollId = 1;\nexport var BaseProvider = /*#__PURE__*/function (_Provider) {\n _inherits(BaseProvider, _Provider);\n\n var _super = _createSuper(BaseProvider);\n\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 function BaseProvider(network) {\n var _this2;\n\n _classCallCheck(this, BaseProvider);\n\n _this2 = _super.call(this); // Events being listened to\n\n _this2._events = [];\n _this2._emitted = {\n block: -2\n };\n _this2.disableCcipRead = false;\n _this2.formatter = (this instanceof BaseProvider ? this.constructor : void 0).getFormatter(); // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n\n defineReadOnly(_assertThisInitialized(_this2), \"anyNetwork\", network === \"any\");\n\n if (_this2.anyNetwork) {\n network = _this2.detectNetwork();\n }\n\n if (network instanceof Promise) {\n _this2._networkPromise = network; // Squash any \"unhandled promise\" errors; that do not need to be handled\n\n network.catch(function (error) {}); // Trigger initial network setting (async)\n\n _this2._ready().catch(function (error) {});\n } else {\n var knownNetwork = getStatic(this instanceof BaseProvider ? this.constructor : void 0, \"getNetwork\")(network);\n\n if (knownNetwork) {\n defineReadOnly(_assertThisInitialized(_this2), \"_network\", knownNetwork);\n\n _this2.emit(\"network\", knownNetwork, null);\n } else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n\n _this2._maxInternalBlockNumber = -1024;\n _this2._lastBlockNumber = -2;\n _this2._maxFilterBlockRange = 10;\n _this2._pollingInterval = 4000;\n _this2._fastQueryDate = 0;\n return _this2;\n }\n\n _createClass(BaseProvider, [{\n key: \"_ready\",\n value: function _ready() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var network;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!(this._network == null)) {\n _context7.next = 17;\n break;\n }\n\n network = null;\n\n if (!this._networkPromise) {\n _context7.next = 11;\n break;\n }\n\n _context7.prev = 3;\n _context7.next = 6;\n return this._networkPromise;\n\n case 6:\n network = _context7.sent;\n _context7.next = 11;\n break;\n\n case 9:\n _context7.prev = 9;\n _context7.t0 = _context7[\"catch\"](3);\n\n case 11:\n if (!(network == null)) {\n _context7.next = 15;\n break;\n }\n\n _context7.next = 14;\n return this.detectNetwork();\n\n case 14:\n network = _context7.sent;\n\n case 15:\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 } // Possible this call stacked so do not call defineReadOnly again\n\n\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n\n this.emit(\"network\", network, null);\n }\n\n case 17:\n return _context7.abrupt(\"return\", this._network);\n\n case 18:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this, [[3, 9]]);\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\n }, {\n key: \"ready\",\n get: function get() {\n var _this3 = this;\n\n return poll(function () {\n return _this3._ready().then(function (network) {\n return network;\n }, function (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\n throw error;\n });\n });\n } // @TODO: Remove this and just create a singleton formatter\n\n }, {\n key: \"ccipReadFetch\",\n value: function ccipReadFetch(tx, calldata, urls) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n var sender, data, errorMessages, i, url, href, json, result, errorMessage;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n if (!(this.disableCcipRead || urls.length === 0)) {\n _context8.next = 2;\n break;\n }\n\n return _context8.abrupt(\"return\", null);\n\n case 2:\n sender = tx.to.toLowerCase();\n data = calldata.toLowerCase();\n errorMessages = [];\n i = 0;\n\n case 6:\n if (!(i < urls.length)) {\n _context8.next = 22;\n break;\n }\n\n url = urls[i]; // URL expansion\n\n href = url.replace(\"{sender}\", sender).replace(\"{data}\", data); // If no {data} is present, use POST; otherwise GET\n\n json = url.indexOf(\"{data}\") >= 0 ? null : JSON.stringify({\n data: data,\n sender: sender\n });\n _context8.next = 12;\n return fetchJson({\n url: href,\n errorPassThrough: true\n }, json, function (value, response) {\n value.status = response.statusCode;\n return value;\n });\n\n case 12:\n result = _context8.sent;\n\n if (!result.data) {\n _context8.next = 15;\n break;\n }\n\n return _context8.abrupt(\"return\", result.data);\n\n case 15:\n errorMessage = result.message || \"unknown error\"; // 4xx indicates the result is not present; stop\n\n if (!(result.status >= 400 && result.status < 500)) {\n _context8.next = 18;\n break;\n }\n\n return _context8.abrupt(\"return\", logger.throwError(\"response not found during CCIP fetch: \".concat(errorMessage), Logger.errors.SERVER_ERROR, {\n url: url,\n errorMessage: errorMessage\n }));\n\n case 18:\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n\n case 19:\n i++;\n _context8.next = 6;\n break;\n\n case 22:\n return _context8.abrupt(\"return\", logger.throwError(\"error encountered during CCIP fetch: \".concat(errorMessages.map(function (m) {\n return JSON.stringify(m);\n }).join(\", \")), Logger.errors.SERVER_ERROR, {\n urls: urls,\n errorMessages: errorMessages\n }));\n\n case 23:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\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\n }, {\n key: \"_getInternalBlockNumber\",\n value: function _getInternalBlockNumber(maxAge) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {\n var _this4 = this;\n\n var internalBlockNumber, result, reqTime, checkInternalBlockNumber;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this._ready();\n\n case 2:\n if (!(maxAge > 0)) {\n _context9.next = 20;\n break;\n }\n\n case 3:\n if (!this._internalBlockNumber) {\n _context9.next = 20;\n break;\n }\n\n // ...\"remember\" which fetch we started with\n internalBlockNumber = this._internalBlockNumber;\n _context9.prev = 5;\n _context9.next = 8;\n return internalBlockNumber;\n\n case 8:\n result = _context9.sent;\n\n if (!(getTime() - result.respTime <= maxAge)) {\n _context9.next = 11;\n break;\n }\n\n return _context9.abrupt(\"return\", result.blockNumber);\n\n case 11:\n return _context9.abrupt(\"break\", 20);\n\n case 14:\n _context9.prev = 14;\n _context9.t0 = _context9[\"catch\"](5);\n\n if (!(this._internalBlockNumber === internalBlockNumber)) {\n _context9.next = 18;\n break;\n }\n\n return _context9.abrupt(\"break\", 20);\n\n case 18:\n _context9.next = 3;\n break;\n\n case 20:\n reqTime = getTime();\n checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then(function (network) {\n return null;\n }, function (error) {\n return error;\n })\n }).then(function (_ref) {\n var blockNumber = _ref.blockNumber,\n networkError = _ref.networkError;\n\n if (networkError) {\n // Unremember this bad internal block number\n if (_this4._internalBlockNumber === checkInternalBlockNumber) {\n _this4._internalBlockNumber = null;\n }\n\n throw networkError;\n }\n\n var respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n\n if (blockNumber < _this4._maxInternalBlockNumber) {\n blockNumber = _this4._maxInternalBlockNumber;\n }\n\n _this4._maxInternalBlockNumber = blockNumber;\n\n _this4._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n\n\n return {\n blockNumber: blockNumber,\n reqTime: reqTime,\n respTime: respTime\n };\n });\n this._internalBlockNumber = checkInternalBlockNumber; // Swallow unhandled exceptions; if needed they are handled else where\n\n checkInternalBlockNumber.catch(function (error) {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (_this4._internalBlockNumber === checkInternalBlockNumber) {\n _this4._internalBlockNumber = null;\n }\n });\n _context9.next = 26;\n return checkInternalBlockNumber;\n\n case 26:\n return _context9.abrupt(\"return\", _context9.sent.blockNumber);\n\n case 27:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this, [[5, 14]]);\n }));\n }\n }, {\n key: \"poll\",\n value: function poll() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee10() {\n var _this5 = this;\n\n var pollId, runners, blockNumber, i;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n pollId = nextPollId++; // Track all running promises, so we can trigger a post-poll once they are complete\n\n runners = [];\n blockNumber = null;\n _context10.prev = 3;\n _context10.next = 6;\n return this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n\n case 6:\n blockNumber = _context10.sent;\n _context10.next = 13;\n break;\n\n case 9:\n _context10.prev = 9;\n _context10.t0 = _context10[\"catch\"](3);\n this.emit(\"error\", _context10.t0);\n return _context10.abrupt(\"return\");\n\n case 13:\n this._setFastBlockNumber(blockNumber); // Emit a poll event after we have the latest (fast) block number\n\n\n this.emit(\"poll\", pollId, blockNumber); // If the block has not changed, meh.\n\n if (!(blockNumber === this._lastBlockNumber)) {\n _context10.next = 18;\n break;\n }\n\n this.emit(\"didPoll\", pollId);\n return _context10.abrupt(\"return\");\n\n case 18:\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n\n if (Math.abs(this._emitted.block - blockNumber) > 1000) {\n logger.warn(\"network block skew detected; skipping block events (emitted=\".concat(this._emitted.block, \" blockNumber\").concat(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 } else {\n // Notify all listener for each block that has passed\n for (i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n } // The emitted block was updated, check for obsolete events\n\n\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach(function (key) {\n // The block event does not expire\n if (key === \"block\") {\n return;\n } // The block we were at when we emitted this event\n\n\n var eventBlockNumber = _this5._emitted[key]; // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n\n if (eventBlockNumber === \"pending\") {\n return;\n } // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n\n\n if (blockNumber - eventBlockNumber > 12) {\n delete _this5._emitted[key];\n }\n });\n } // First polling cycle\n\n\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n } // Find all transaction hashes we are waiting on\n\n\n this._events.forEach(function (event) {\n switch (event.type) {\n case \"tx\":\n {\n var hash = event.hash;\n\n var runner = _this5.getTransactionReceipt(hash).then(function (receipt) {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n\n _this5._emitted[\"t:\" + hash] = receipt.blockNumber;\n\n _this5.emit(hash, receipt);\n\n return null;\n }).catch(function (error) {\n _this5.emit(\"error\", error);\n });\n\n runners.push(runner);\n break;\n }\n\n case \"filter\":\n {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true; // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\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\n\n var filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber; // 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\n var minFromBlock = filter.toBlock - _this5._maxFilterBlockRange;\n\n if (minFromBlock > filter.fromBlock) {\n filter.fromBlock = minFromBlock;\n }\n\n if (filter.fromBlock < 0) {\n filter.fromBlock = 0;\n }\n\n var _runner = _this5.getLogs(filter).then(function (logs) {\n // Allow the next getLogs\n event._inflight = false;\n\n if (logs.length === 0) {\n return;\n }\n\n logs.forEach(function (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 } // Make sure we stall requests to fetch blocks and txs\n\n\n _this5._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n _this5._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n\n _this5.emit(filter, log);\n });\n }).catch(function (error) {\n _this5.emit(\"error\", error); // Allow another getLogs (the range was not updated)\n\n\n event._inflight = false;\n });\n\n runners.push(_runner);\n }\n\n break;\n }\n }\n });\n\n this._lastBlockNumber = blockNumber; // Once all events for this loop have been processed, emit \"didPoll\"\n\n Promise.all(runners).then(function () {\n _this5.emit(\"didPoll\", pollId);\n }).catch(function (error) {\n _this5.emit(\"error\", error);\n });\n return _context10.abrupt(\"return\");\n\n case 26:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this, [[3, 9]]);\n }));\n } // Deprecated; do not use this\n\n }, {\n key: \"resetEventsBlock\",\n value: function resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n\n if (this.polling) {\n this.poll();\n }\n }\n }, {\n key: \"network\",\n get: function get() {\n return this._network;\n } // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n\n }, {\n key: \"detectNetwork\",\n value: function detectNetwork() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee11() {\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt(\"return\", logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n }));\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n }\n }, {\n key: \"getNetwork\",\n value: function getNetwork() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee12() {\n var network, currentNetwork, error;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return this._ready();\n\n case 2:\n network = _context12.sent;\n _context12.next = 5;\n return this.detectNetwork();\n\n case 5:\n currentNetwork = _context12.sent;\n\n if (!(network.chainId !== currentNetwork.chainId)) {\n _context12.next = 23;\n break;\n }\n\n if (!this.anyNetwork) {\n _context12.next = 20;\n break;\n }\n\n this._network = currentNetwork; // Reset all internal block number guards and caches\n\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; // 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\n this.emit(\"network\", currentNetwork, network);\n _context12.next = 19;\n return stall(0);\n\n case 19:\n return _context12.abrupt(\"return\", this._network);\n\n case 20:\n 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 case 23:\n return _context12.abrupt(\"return\", network);\n\n case 24:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n }\n }, {\n key: \"blockNumber\",\n get: function get() {\n var _this6 = this;\n\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then(function (blockNumber) {\n _this6._setFastBlockNumber(blockNumber);\n }, function (error) {});\n\n return this._fastBlockNumber != null ? this._fastBlockNumber : -1;\n }\n }, {\n key: \"polling\",\n get: function get() {\n return this._poller != null;\n },\n set: function set(value) {\n var _this7 = this;\n\n if (value && !this._poller) {\n this._poller = setInterval(function () {\n _this7.poll();\n }, this.pollingInterval);\n\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(function () {\n _this7.poll(); // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n\n\n _this7._bootstrapPoll = setTimeout(function () {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!_this7._poller) {\n _this7.poll();\n } // Clear out the bootstrap so we can do another\n\n\n _this7._bootstrapPoll = null;\n }, _this7.pollingInterval);\n }, 0);\n }\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n }, {\n key: \"pollingInterval\",\n get: function get() {\n return this._pollingInterval;\n },\n set: function set(value) {\n var _this8 = this;\n\n if (typeof value !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n\n this._pollingInterval = value;\n\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(function () {\n _this8.poll();\n }, this._pollingInterval);\n }\n }\n }, {\n key: \"_getFastBlockNumber\",\n value: function _getFastBlockNumber() {\n var _this9 = this;\n\n var now = getTime(); // Stale block number, request a newer value\n\n if (now - this._fastQueryDate > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then(function (blockNumber) {\n if (_this9._fastBlockNumber == null || blockNumber > _this9._fastBlockNumber) {\n _this9._fastBlockNumber = blockNumber;\n }\n\n return _this9._fastBlockNumber;\n });\n }\n\n return this._fastBlockNumberPromise;\n }\n }, {\n key: \"_setFastBlockNumber\",\n value: function _setFastBlockNumber(blockNumber) {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n } // Update the time we updated the blocknumber\n\n\n this._fastQueryDate = getTime(); // Newer block number, use it\n\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n }, {\n key: \"waitForTransaction\",\n value: function waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee13() {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n return _context13.abrupt(\"return\", this._waitForTransaction(transactionHash, confirmations == null ? 1 : confirmations, timeout || 0, null));\n\n case 1:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n }\n }, {\n key: \"_waitForTransaction\",\n value: function _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee16() {\n var _this10 = this;\n\n var receipt;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n _context16.next = 2;\n return this.getTransactionReceipt(transactionHash);\n\n case 2:\n receipt = _context16.sent;\n\n if (!((receipt ? receipt.confirmations : 0) >= confirmations)) {\n _context16.next = 5;\n break;\n }\n\n return _context16.abrupt(\"return\", receipt);\n\n case 5:\n return _context16.abrupt(\"return\", new Promise(function (resolve, reject) {\n var cancelFuncs = [];\n var done = false;\n\n var alreadyDone = function alreadyDone() {\n if (done) {\n return true;\n }\n\n done = true;\n cancelFuncs.forEach(function (func) {\n func();\n });\n return false;\n };\n\n var minedHandler = function minedHandler(receipt) {\n if (receipt.confirmations < confirmations) {\n return;\n }\n\n if (alreadyDone()) {\n return;\n }\n\n resolve(receipt);\n };\n\n _this10.on(transactionHash, minedHandler);\n\n cancelFuncs.push(function () {\n _this10.removeListener(transactionHash, minedHandler);\n });\n\n if (replaceable) {\n var lastBlockNumber = replaceable.startBlock;\n var scannedBlock = null;\n\n var replaceHandler = function replaceHandler(blockNumber) {\n return __awaiter(_this10, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee15() {\n var _this11 = this;\n\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n if (!done) {\n _context15.next = 2;\n break;\n }\n\n return _context15.abrupt(\"return\");\n\n case 2:\n _context15.next = 4;\n return stall(1000);\n\n case 4:\n this.getTransactionCount(replaceable.from).then(function (nonce) {\n return __awaiter(_this11, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee14() {\n var mined, block, ti, tx, _receipt, reason;\n\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n if (!done) {\n _context14.next = 2;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 2:\n if (!(nonce <= replaceable.nonce)) {\n _context14.next = 6;\n break;\n }\n\n lastBlockNumber = blockNumber;\n _context14.next = 41;\n break;\n\n case 6:\n _context14.next = 8;\n return this.getTransaction(transactionHash);\n\n case 8:\n mined = _context14.sent;\n\n if (!(mined && mined.blockNumber != null)) {\n _context14.next = 11;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 11:\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\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n\n case 12:\n if (!(scannedBlock <= blockNumber)) {\n _context14.next = 41;\n break;\n }\n\n if (!done) {\n _context14.next = 15;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 15:\n _context14.next = 17;\n return this.getBlockWithTransactions(scannedBlock);\n\n case 17:\n block = _context14.sent;\n ti = 0;\n\n case 19:\n if (!(ti < block.transactions.length)) {\n _context14.next = 38;\n break;\n }\n\n tx = block.transactions[ti]; // Successfully mined!\n\n if (!(tx.hash === transactionHash)) {\n _context14.next = 23;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 23:\n if (!(tx.from === replaceable.from && tx.nonce === replaceable.nonce)) {\n _context14.next = 35;\n break;\n }\n\n if (!done) {\n _context14.next = 26;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 26:\n _context14.next = 28;\n return this.waitForTransaction(tx.hash, confirmations);\n\n case 28:\n _receipt = _context14.sent;\n\n if (!alreadyDone()) {\n _context14.next = 31;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 31:\n // The reason we were replaced\n reason = \"replaced\";\n\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n } // Explain why we were replaced\n\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: reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt: _receipt\n }));\n return _context14.abrupt(\"return\");\n\n case 35:\n ti++;\n _context14.next = 19;\n break;\n\n case 38:\n scannedBlock++;\n _context14.next = 12;\n break;\n\n case 41:\n if (!done) {\n _context14.next = 43;\n break;\n }\n\n return _context14.abrupt(\"return\");\n\n case 43:\n this.once(\"block\", replaceHandler);\n\n case 44:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n }, function (error) {\n if (done) {\n return;\n }\n\n _this11.once(\"block\", replaceHandler);\n });\n\n case 5:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n };\n\n if (done) {\n return;\n }\n\n _this10.once(\"block\", replaceHandler);\n\n cancelFuncs.push(function () {\n _this10.removeListener(\"block\", replaceHandler);\n });\n }\n\n if (typeof timeout === \"number\" && timeout > 0) {\n var timer = setTimeout(function () {\n if (alreadyDone()) {\n return;\n }\n\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, {\n timeout: timeout\n }));\n }, timeout);\n\n if (timer.unref) {\n timer.unref();\n }\n\n cancelFuncs.push(function () {\n clearTimeout(timer);\n });\n }\n }));\n\n case 6:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n }\n }, {\n key: \"getBlockNumber\",\n value: function getBlockNumber() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee17() {\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n return _context17.abrupt(\"return\", this._getInternalBlockNumber(0));\n\n case 1:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n }\n }, {\n key: \"getGasPrice\",\n value: function getGasPrice() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee18() {\n var result;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n _context18.next = 2;\n return this.getNetwork();\n\n case 2:\n _context18.next = 4;\n return this.perform(\"getGasPrice\", {});\n\n case 4:\n result = _context18.sent;\n _context18.prev = 5;\n return _context18.abrupt(\"return\", BigNumber.from(result));\n\n case 9:\n _context18.prev = 9;\n _context18.t0 = _context18[\"catch\"](5);\n return _context18.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result: result,\n error: _context18.t0\n }));\n\n case 12:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this, [[5, 9]]);\n }));\n }\n }, {\n key: \"getBalance\",\n value: function getBalance(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee19() {\n var params, result;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _context19.next = 2;\n return this.getNetwork();\n\n case 2:\n _context19.next = 4;\n return resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n case 4:\n params = _context19.sent;\n _context19.next = 7;\n return this.perform(\"getBalance\", params);\n\n case 7:\n result = _context19.sent;\n _context19.prev = 8;\n return _context19.abrupt(\"return\", BigNumber.from(result));\n\n case 12:\n _context19.prev = 12;\n _context19.t0 = _context19[\"catch\"](8);\n return _context19.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params: params,\n result: result,\n error: _context19.t0\n }));\n\n case 15:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, this, [[8, 12]]);\n }));\n }\n }, {\n key: \"getTransactionCount\",\n value: function getTransactionCount(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee20() {\n var params, result;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n _context20.next = 2;\n return this.getNetwork();\n\n case 2:\n _context20.next = 4;\n return resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n case 4:\n params = _context20.sent;\n _context20.next = 7;\n return this.perform(\"getTransactionCount\", params);\n\n case 7:\n result = _context20.sent;\n _context20.prev = 8;\n return _context20.abrupt(\"return\", BigNumber.from(result).toNumber());\n\n case 12:\n _context20.prev = 12;\n _context20.t0 = _context20[\"catch\"](8);\n return _context20.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params: params,\n result: result,\n error: _context20.t0\n }));\n\n case 15:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, this, [[8, 12]]);\n }));\n }\n }, {\n key: \"getCode\",\n value: function getCode(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee21() {\n var params, result;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n _context21.next = 2;\n return this.getNetwork();\n\n case 2:\n _context21.next = 4;\n return resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n case 4:\n params = _context21.sent;\n _context21.next = 7;\n return this.perform(\"getCode\", params);\n\n case 7:\n result = _context21.sent;\n _context21.prev = 8;\n return _context21.abrupt(\"return\", hexlify(result));\n\n case 12:\n _context21.prev = 12;\n _context21.t0 = _context21[\"catch\"](8);\n return _context21.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params: params,\n result: result,\n error: _context21.t0\n }));\n\n case 15:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, this, [[8, 12]]);\n }));\n }\n }, {\n key: \"getStorageAt\",\n value: function getStorageAt(addressOrName, position, blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee22() {\n var params, result;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n _context22.next = 2;\n return this.getNetwork();\n\n case 2:\n _context22.next = 4;\n return resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then(function (p) {\n return hexValue(p);\n })\n });\n\n case 4:\n params = _context22.sent;\n _context22.next = 7;\n return this.perform(\"getStorageAt\", params);\n\n case 7:\n result = _context22.sent;\n _context22.prev = 8;\n return _context22.abrupt(\"return\", hexlify(result));\n\n case 12:\n _context22.prev = 12;\n _context22.t0 = _context22[\"catch\"](8);\n return _context22.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params: params,\n result: result,\n error: _context22.t0\n }));\n\n case 15:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this, [[8, 12]]);\n }));\n } // This should be called by any subclass wrapping a TransactionResponse\n\n }, {\n key: \"_wrapTransaction\",\n value: function _wrapTransaction(tx, hash, startBlock) {\n var _this12 = this;\n\n if (hash != null && hexDataLength(hash) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n\n var result = tx; // Check the hash we expect is the same as the hash the server reported\n\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, {\n expectedHash: tx.hash,\n returnedHash: hash\n });\n }\n\n result.wait = function (confirms, timeout) {\n return __awaiter(_this12, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee23() {\n var replacement, receipt;\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n if (confirms == null) {\n confirms = 1;\n }\n\n if (timeout == null) {\n timeout = 0;\n } // Get the details to detect replacement\n\n\n replacement = undefined;\n\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: startBlock\n };\n }\n\n _context23.next = 6;\n return this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n\n case 6:\n receipt = _context23.sent;\n\n if (!(receipt == null && confirms === 0)) {\n _context23.next = 9;\n break;\n }\n\n return _context23.abrupt(\"return\", null);\n\n case 9:\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n\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\n return _context23.abrupt(\"return\", receipt);\n\n case 12:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this);\n }));\n };\n\n return result;\n }\n }, {\n key: \"sendTransaction\",\n value: function sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee24() {\n var hexTx, tx, blockNumber, hash;\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n _context24.next = 2;\n return this.getNetwork();\n\n case 2:\n _context24.next = 4;\n return Promise.resolve(signedTransaction).then(function (t) {\n return hexlify(t);\n });\n\n case 4:\n hexTx = _context24.sent;\n tx = this.formatter.transaction(signedTransaction);\n\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n\n _context24.next = 9;\n return this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n case 9:\n blockNumber = _context24.sent;\n _context24.prev = 10;\n _context24.next = 13;\n return this.perform(\"sendTransaction\", {\n signedTransaction: hexTx\n });\n\n case 13:\n hash = _context24.sent;\n return _context24.abrupt(\"return\", this._wrapTransaction(tx, hash, blockNumber));\n\n case 17:\n _context24.prev = 17;\n _context24.t0 = _context24[\"catch\"](10);\n _context24.t0.transaction = tx;\n _context24.t0.transactionHash = tx.hash;\n throw _context24.t0;\n\n case 22:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, this, [[10, 17]]);\n }));\n }\n }, {\n key: \"_getTransactionRequest\",\n value: function _getTransactionRequest(transaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee25() {\n var _this13 = this;\n\n var values, tx;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return transaction;\n\n case 2:\n values = _context25.sent;\n tx = {};\n [\"from\", \"to\"].forEach(function (key) {\n if (values[key] == null) {\n return;\n }\n\n tx[key] = Promise.resolve(values[key]).then(function (v) {\n return v ? _this13._getAddress(v) : null;\n });\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach(function (key) {\n if (values[key] == null) {\n return;\n }\n\n tx[key] = Promise.resolve(values[key]).then(function (v) {\n return v ? BigNumber.from(v) : null;\n });\n });\n [\"type\"].forEach(function (key) {\n if (values[key] == null) {\n return;\n }\n\n tx[key] = Promise.resolve(values[key]).then(function (v) {\n return v != null ? v : null;\n });\n });\n\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n\n [\"data\"].forEach(function (key) {\n if (values[key] == null) {\n return;\n }\n\n tx[key] = Promise.resolve(values[key]).then(function (v) {\n return v ? hexlify(v) : null;\n });\n });\n _context25.t0 = this.formatter;\n _context25.next = 12;\n return resolveProperties(tx);\n\n case 12:\n _context25.t1 = _context25.sent;\n return _context25.abrupt(\"return\", _context25.t0.transactionRequest.call(_context25.t0, _context25.t1));\n\n case 14:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25, this);\n }));\n }\n }, {\n key: \"_getFilter\",\n value: function _getFilter(filter) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee26() {\n var _this14 = this;\n\n var result;\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n _context26.next = 2;\n return filter;\n\n case 2:\n filter = _context26.sent;\n result = {};\n\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n\n [\"blockHash\", \"topics\"].forEach(function (key) {\n if (filter[key] == null) {\n return;\n }\n\n result[key] = filter[key];\n });\n [\"fromBlock\", \"toBlock\"].forEach(function (key) {\n if (filter[key] == null) {\n return;\n }\n\n result[key] = _this14._getBlockTag(filter[key]);\n });\n _context26.t0 = this.formatter;\n _context26.next = 10;\n return resolveProperties(result);\n\n case 10:\n _context26.t1 = _context26.sent;\n return _context26.abrupt(\"return\", _context26.t0.filter.call(_context26.t0, _context26.t1));\n\n case 12:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26, this);\n }));\n }\n }, {\n key: \"_call\",\n value: function _call(transaction, blockTag, attempt) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee27() {\n var txSender, result, data, sender, urls, urlsOffset, urlsLength, urlsData, u, url, calldata, callbackSelector, extraData, ccipResult, tx;\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt,\n transaction: transaction\n });\n }\n\n txSender = transaction.to;\n _context27.next = 4;\n return this.perform(\"call\", {\n transaction: transaction,\n blockTag: blockTag\n });\n\n case 4:\n result = _context27.sent;\n\n if (!(attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && hexDataLength(result) % 32 === 4)) {\n _context27.next = 31;\n break;\n }\n\n _context27.prev = 6;\n data = hexDataSlice(result, 4); // Check the sender of the OffchainLookup matches the transaction\n\n sender = hexDataSlice(data, 0, 32);\n\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: transaction,\n data: result\n });\n } // Read the URLs from the response\n\n\n urls = [];\n urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n urlsData = hexDataSlice(data, urlsOffset + 32);\n\n for (u = 0; u < urlsLength; u++) {\n url = _parseString(urlsData, u * 32);\n\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: transaction,\n data: result\n });\n }\n\n urls.push(url);\n } // Get the CCIP calldata to forward\n\n\n calldata = _parseBytes(data, 64); // Get the callbackSelector (bytes4)\n\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: transaction,\n data: result\n });\n }\n\n callbackSelector = hexDataSlice(data, 96, 100); // Get the extra data to send back to the contract as context\n\n extraData = _parseBytes(data, 128);\n _context27.next = 21;\n return this.ccipReadFetch(transaction, calldata, urls);\n\n case 21:\n ccipResult = _context27.sent;\n\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: transaction,\n data: result\n });\n }\n\n tx = {\n to: txSender,\n data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])])\n };\n return _context27.abrupt(\"return\", this._call(tx, blockTag, attempt + 1));\n\n case 27:\n _context27.prev = 27;\n _context27.t0 = _context27[\"catch\"](6);\n\n if (!(_context27.t0.code === Logger.errors.SERVER_ERROR)) {\n _context27.next = 31;\n break;\n }\n\n throw _context27.t0;\n\n case 31:\n _context27.prev = 31;\n return _context27.abrupt(\"return\", hexlify(result));\n\n case 35:\n _context27.prev = 35;\n _context27.t1 = _context27[\"catch\"](31);\n return _context27.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: {\n transaction: transaction,\n blockTag: blockTag\n },\n result: result,\n error: _context27.t1\n }));\n\n case 38:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27, this, [[6, 27], [31, 35]]);\n }));\n }\n }, {\n key: \"call\",\n value: function call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee28() {\n var resolved;\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n _context28.next = 2;\n return this.getNetwork();\n\n case 2:\n _context28.next = 4;\n return resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n\n case 4:\n resolved = _context28.sent;\n return _context28.abrupt(\"return\", this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1));\n\n case 6:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28, this);\n }));\n }\n }, {\n key: \"estimateGas\",\n value: function estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee29() {\n var params, result;\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n _context29.next = 2;\n return this.getNetwork();\n\n case 2:\n _context29.next = 4;\n return resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n\n case 4:\n params = _context29.sent;\n _context29.next = 7;\n return this.perform(\"estimateGas\", params);\n\n case 7:\n result = _context29.sent;\n _context29.prev = 8;\n return _context29.abrupt(\"return\", BigNumber.from(result));\n\n case 12:\n _context29.prev = 12;\n _context29.t0 = _context29[\"catch\"](8);\n return _context29.abrupt(\"return\", logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params: params,\n result: result,\n error: _context29.t0\n }));\n\n case 15:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29, this, [[8, 12]]);\n }));\n }\n }, {\n key: \"_getAddress\",\n value: function _getAddress(addressOrName) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee30() {\n var address;\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n _context30.next = 2;\n return addressOrName;\n\n case 2:\n addressOrName = _context30.sent;\n\n if (typeof addressOrName !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n\n _context30.next = 6;\n return this.resolveName(addressOrName);\n\n case 6:\n address = _context30.sent;\n\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName(\".concat(JSON.stringify(addressOrName), \")\")\n });\n }\n\n return _context30.abrupt(\"return\", address);\n\n case 9:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30, this);\n }));\n }\n }, {\n key: \"_getBlock\",\n value: function _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee32() {\n var _this15 = this;\n\n var blockNumber, params;\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n _context32.next = 2;\n return this.getNetwork();\n\n case 2:\n _context32.next = 4;\n return blockHashOrBlockTag;\n\n case 4:\n blockHashOrBlockTag = _context32.sent;\n // If blockTag is a number (not \"latest\", etc), this is the block number\n blockNumber = -128;\n params = {\n includeTransactions: !!includeTransactions\n };\n\n if (!isHexString(blockHashOrBlockTag, 32)) {\n _context32.next = 11;\n break;\n }\n\n params.blockHash = blockHashOrBlockTag;\n _context32.next = 21;\n break;\n\n case 11:\n _context32.prev = 11;\n _context32.next = 14;\n return this._getBlockTag(blockHashOrBlockTag);\n\n case 14:\n params.blockTag = _context32.sent;\n\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n\n _context32.next = 21;\n break;\n\n case 18:\n _context32.prev = 18;\n _context32.t0 = _context32[\"catch\"](11);\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n\n case 21:\n return _context32.abrupt(\"return\", poll(function () {\n return __awaiter(_this15, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee31() {\n var _this16 = this;\n\n var block, _blockNumber, i, tx, confirmations, blockWithTxs;\n\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n _context31.next = 2;\n return this.perform(\"getBlock\", params);\n\n case 2:\n block = _context31.sent;\n\n if (!(block == null)) {\n _context31.next = 11;\n break;\n }\n\n if (!(params.blockHash != null)) {\n _context31.next = 7;\n break;\n }\n\n if (!(this._emitted[\"b:\" + params.blockHash] == null)) {\n _context31.next = 7;\n break;\n }\n\n return _context31.abrupt(\"return\", null);\n\n case 7:\n if (!(params.blockTag != null)) {\n _context31.next = 10;\n break;\n }\n\n if (!(blockNumber > this._emitted.block)) {\n _context31.next = 10;\n break;\n }\n\n return _context31.abrupt(\"return\", null);\n\n case 10:\n return _context31.abrupt(\"return\", undefined);\n\n case 11:\n if (!includeTransactions) {\n _context31.next = 34;\n break;\n }\n\n _blockNumber = null;\n i = 0;\n\n case 14:\n if (!(i < block.transactions.length)) {\n _context31.next = 31;\n break;\n }\n\n tx = block.transactions[i];\n\n if (!(tx.blockNumber == null)) {\n _context31.next = 20;\n break;\n }\n\n tx.confirmations = 0;\n _context31.next = 28;\n break;\n\n case 20:\n if (!(tx.confirmations == null)) {\n _context31.next = 28;\n break;\n }\n\n if (!(_blockNumber == null)) {\n _context31.next = 25;\n break;\n }\n\n _context31.next = 24;\n return this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n case 24:\n _blockNumber = _context31.sent;\n\n case 25:\n // Add the confirmations using the fast block number (pessimistic)\n confirmations = _blockNumber - tx.blockNumber + 1;\n\n if (confirmations <= 0) {\n confirmations = 1;\n }\n\n tx.confirmations = confirmations;\n\n case 28:\n i++;\n _context31.next = 14;\n break;\n\n case 31:\n blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map(function (tx) {\n return _this16._wrapTransaction(tx);\n });\n return _context31.abrupt(\"return\", blockWithTxs);\n\n case 34:\n return _context31.abrupt(\"return\", this.formatter.block(block));\n\n case 35:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31, this);\n }));\n }, {\n oncePoll: this\n }));\n\n case 22:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32, this, [[11, 18]]);\n }));\n }\n }, {\n key: \"getBlock\",\n value: function getBlock(blockHashOrBlockTag) {\n return this._getBlock(blockHashOrBlockTag, false);\n }\n }, {\n key: \"getBlockWithTransactions\",\n value: function getBlockWithTransactions(blockHashOrBlockTag) {\n return this._getBlock(blockHashOrBlockTag, true);\n }\n }, {\n key: \"getTransaction\",\n value: function getTransaction(transactionHash) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee34() {\n var _this17 = this;\n\n var params;\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n _context34.next = 2;\n return this.getNetwork();\n\n case 2:\n _context34.next = 4;\n return transactionHash;\n\n case 4:\n transactionHash = _context34.sent;\n params = {\n transactionHash: this.formatter.hash(transactionHash, true)\n };\n return _context34.abrupt(\"return\", poll(function () {\n return __awaiter(_this17, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee33() {\n var result, tx, blockNumber, confirmations;\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n _context33.next = 2;\n return this.perform(\"getTransaction\", params);\n\n case 2:\n result = _context33.sent;\n\n if (!(result == null)) {\n _context33.next = 7;\n break;\n }\n\n if (!(this._emitted[\"t:\" + transactionHash] == null)) {\n _context33.next = 6;\n break;\n }\n\n return _context33.abrupt(\"return\", null);\n\n case 6:\n return _context33.abrupt(\"return\", undefined);\n\n case 7:\n tx = this.formatter.transactionResponse(result);\n\n if (!(tx.blockNumber == null)) {\n _context33.next = 12;\n break;\n }\n\n tx.confirmations = 0;\n _context33.next = 19;\n break;\n\n case 12:\n if (!(tx.confirmations == null)) {\n _context33.next = 19;\n break;\n }\n\n _context33.next = 15;\n return this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n case 15:\n blockNumber = _context33.sent;\n // Add the confirmations using the fast block number (pessimistic)\n confirmations = blockNumber - tx.blockNumber + 1;\n\n if (confirmations <= 0) {\n confirmations = 1;\n }\n\n tx.confirmations = confirmations;\n\n case 19:\n return _context33.abrupt(\"return\", this._wrapTransaction(tx));\n\n case 20:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33, this);\n }));\n }, {\n oncePoll: this\n }));\n\n case 7:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34, this);\n }));\n }\n }, {\n key: \"getTransactionReceipt\",\n value: function getTransactionReceipt(transactionHash) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee36() {\n var _this18 = this;\n\n var params;\n return _regeneratorRuntime.wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n _context36.next = 2;\n return this.getNetwork();\n\n case 2:\n _context36.next = 4;\n return transactionHash;\n\n case 4:\n transactionHash = _context36.sent;\n params = {\n transactionHash: this.formatter.hash(transactionHash, true)\n };\n return _context36.abrupt(\"return\", poll(function () {\n return __awaiter(_this18, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee35() {\n var result, receipt, blockNumber, confirmations;\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n _context35.next = 2;\n return this.perform(\"getTransactionReceipt\", params);\n\n case 2:\n result = _context35.sent;\n\n if (!(result == null)) {\n _context35.next = 7;\n break;\n }\n\n if (!(this._emitted[\"t:\" + transactionHash] == null)) {\n _context35.next = 6;\n break;\n }\n\n return _context35.abrupt(\"return\", null);\n\n case 6:\n return _context35.abrupt(\"return\", undefined);\n\n case 7:\n if (!(result.blockHash == null)) {\n _context35.next = 9;\n break;\n }\n\n return _context35.abrupt(\"return\", undefined);\n\n case 9:\n receipt = this.formatter.receipt(result);\n\n if (!(receipt.blockNumber == null)) {\n _context35.next = 14;\n break;\n }\n\n receipt.confirmations = 0;\n _context35.next = 21;\n break;\n\n case 14:\n if (!(receipt.confirmations == null)) {\n _context35.next = 21;\n break;\n }\n\n _context35.next = 17;\n return this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n case 17:\n blockNumber = _context35.sent;\n // Add the confirmations using the fast block number (pessimistic)\n confirmations = blockNumber - receipt.blockNumber + 1;\n\n if (confirmations <= 0) {\n confirmations = 1;\n }\n\n receipt.confirmations = confirmations;\n\n case 21:\n return _context35.abrupt(\"return\", receipt);\n\n case 22:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35, this);\n }));\n }, {\n oncePoll: this\n }));\n\n case 7:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36, this);\n }));\n }\n }, {\n key: \"getLogs\",\n value: function getLogs(filter) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee37() {\n var params, logs;\n return _regeneratorRuntime.wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n _context37.next = 2;\n return this.getNetwork();\n\n case 2:\n _context37.next = 4;\n return resolveProperties({\n filter: this._getFilter(filter)\n });\n\n case 4:\n params = _context37.sent;\n _context37.next = 7;\n return this.perform(\"getLogs\", params);\n\n case 7:\n logs = _context37.sent;\n logs.forEach(function (log) {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return _context37.abrupt(\"return\", Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs));\n\n case 10:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37, this);\n }));\n }\n }, {\n key: \"getEtherPrice\",\n value: function getEtherPrice() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee38() {\n return _regeneratorRuntime.wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n _context38.next = 2;\n return this.getNetwork();\n\n case 2:\n return _context38.abrupt(\"return\", this.perform(\"getEtherPrice\", {}));\n\n case 3:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38, this);\n }));\n }\n }, {\n key: \"_getBlockTag\",\n value: function _getBlockTag(blockTag) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee39() {\n var blockNumber;\n return _regeneratorRuntime.wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n _context39.next = 2;\n return blockTag;\n\n case 2:\n blockTag = _context39.sent;\n\n if (!(typeof blockTag === \"number\" && blockTag < 0)) {\n _context39.next = 11;\n break;\n }\n\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n\n _context39.next = 7;\n return this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n case 7:\n blockNumber = _context39.sent;\n blockNumber += blockTag;\n\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n\n return _context39.abrupt(\"return\", this.formatter.blockTag(blockNumber));\n\n case 11:\n return _context39.abrupt(\"return\", this.formatter.blockTag(blockTag));\n\n case 12:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39, this);\n }));\n }\n }, {\n key: \"getResolver\",\n value: function getResolver(name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee40() {\n var currentName, addr, resolver;\n return _regeneratorRuntime.wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n currentName = name;\n\n case 1:\n if (!true) {\n _context40.next = 22;\n break;\n }\n\n if (!(currentName === \"\" || currentName === \".\")) {\n _context40.next = 4;\n break;\n }\n\n return _context40.abrupt(\"return\", null);\n\n case 4:\n if (!(name !== \"eth\" && currentName === \"eth\")) {\n _context40.next = 6;\n break;\n }\n\n return _context40.abrupt(\"return\", null);\n\n case 6:\n _context40.next = 8;\n return this._getResolver(currentName, \"getResolver\");\n\n case 8:\n addr = _context40.sent;\n\n if (!(addr != null)) {\n _context40.next = 19;\n break;\n }\n\n resolver = new Resolver(this, addr, name); // Legacy resolver found, using EIP-2544 so it isn't safe to use\n\n _context40.t0 = currentName !== name;\n\n if (!_context40.t0) {\n _context40.next = 16;\n break;\n }\n\n _context40.next = 15;\n return resolver.supportsWildcard();\n\n case 15:\n _context40.t0 = !_context40.sent;\n\n case 16:\n if (!_context40.t0) {\n _context40.next = 18;\n break;\n }\n\n return _context40.abrupt(\"return\", null);\n\n case 18:\n return _context40.abrupt(\"return\", resolver);\n\n case 19:\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n _context40.next = 1;\n break;\n\n case 22:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40, this);\n }));\n }\n }, {\n key: \"_getResolver\",\n value: function _getResolver(name, operation) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee41() {\n var network, addrData;\n return _regeneratorRuntime.wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n if (operation == null) {\n operation = \"ENS\";\n }\n\n _context41.next = 3;\n return this.getNetwork();\n\n case 3:\n network = _context41.sent;\n\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: operation,\n network: network.name\n });\n }\n\n _context41.prev = 5;\n _context41.next = 8;\n return this.call({\n to: network.ensAddress,\n data: \"0x0178b8bf\" + namehash(name).substring(2)\n });\n\n case 8:\n addrData = _context41.sent;\n return _context41.abrupt(\"return\", this.formatter.callAddress(addrData));\n\n case 12:\n _context41.prev = 12;\n _context41.t0 = _context41[\"catch\"](5);\n\n case 14:\n return _context41.abrupt(\"return\", null);\n\n case 15:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41, this, [[5, 12]]);\n }));\n }\n }, {\n key: \"resolveName\",\n value: function resolveName(name) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee42() {\n var resolver;\n return _regeneratorRuntime.wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n _context42.next = 2;\n return name;\n\n case 2:\n name = _context42.sent;\n _context42.prev = 3;\n return _context42.abrupt(\"return\", Promise.resolve(this.formatter.address(name)));\n\n case 7:\n _context42.prev = 7;\n _context42.t0 = _context42[\"catch\"](3);\n\n if (!isHexString(name)) {\n _context42.next = 11;\n break;\n }\n\n throw _context42.t0;\n\n case 11:\n if (typeof name !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n } // Get the addr from the resolver\n\n\n _context42.next = 14;\n return this.getResolver(name);\n\n case 14:\n resolver = _context42.sent;\n\n if (resolver) {\n _context42.next = 17;\n break;\n }\n\n return _context42.abrupt(\"return\", null);\n\n case 17:\n _context42.next = 19;\n return resolver.getAddress();\n\n case 19:\n return _context42.abrupt(\"return\", _context42.sent);\n\n case 20:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42, this, [[3, 7]]);\n }));\n }\n }, {\n key: \"lookupAddress\",\n value: function lookupAddress(address) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee43() {\n var node, resolverAddr, name, addr;\n return _regeneratorRuntime.wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n _context43.next = 2;\n return address;\n\n case 2:\n address = _context43.sent;\n address = this.formatter.address(address);\n node = address.substring(2).toLowerCase() + \".addr.reverse\";\n _context43.next = 7;\n return this._getResolver(node, \"lookupAddress\");\n\n case 7:\n resolverAddr = _context43.sent;\n\n if (!(resolverAddr == null)) {\n _context43.next = 10;\n break;\n }\n\n return _context43.abrupt(\"return\", null);\n\n case 10:\n _context43.t0 = _parseString;\n _context43.next = 13;\n return this.call({\n to: resolverAddr,\n data: \"0x691f3431\" + namehash(node).substring(2)\n });\n\n case 13:\n _context43.t1 = _context43.sent;\n name = (0, _context43.t0)(_context43.t1, 0);\n _context43.next = 17;\n return this.resolveName(name);\n\n case 17:\n addr = _context43.sent;\n\n if (!(addr != address)) {\n _context43.next = 20;\n break;\n }\n\n return _context43.abrupt(\"return\", null);\n\n case 20:\n return _context43.abrupt(\"return\", name);\n\n case 21:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43, this);\n }));\n }\n }, {\n key: \"getAvatar\",\n value: function getAvatar(nameOrAddress) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee44() {\n var resolver, address, node, resolverAddress, _avatar, name, avatar;\n\n return _regeneratorRuntime.wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n resolver = null;\n\n if (!isHexString(nameOrAddress)) {\n _context44.next = 40;\n break;\n }\n\n // Address; reverse lookup\n address = this.formatter.address(nameOrAddress);\n node = address.substring(2).toLowerCase() + \".addr.reverse\";\n _context44.next = 6;\n return this._getResolver(node, \"getAvatar\");\n\n case 6:\n resolverAddress = _context44.sent;\n\n if (resolverAddress) {\n _context44.next = 9;\n break;\n }\n\n return _context44.abrupt(\"return\", null);\n\n case 9:\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n _context44.prev = 10;\n _context44.next = 13;\n return resolver.getAvatar();\n\n case 13:\n _avatar = _context44.sent;\n\n if (!_avatar) {\n _context44.next = 16;\n break;\n }\n\n return _context44.abrupt(\"return\", _avatar.url);\n\n case 16:\n _context44.next = 22;\n break;\n\n case 18:\n _context44.prev = 18;\n _context44.t0 = _context44[\"catch\"](10);\n\n if (!(_context44.t0.code !== Logger.errors.CALL_EXCEPTION)) {\n _context44.next = 22;\n break;\n }\n\n throw _context44.t0;\n\n case 22:\n _context44.prev = 22;\n _context44.t1 = _parseString;\n _context44.next = 26;\n return this.call({\n to: resolverAddress,\n data: \"0x691f3431\" + namehash(node).substring(2)\n });\n\n case 26:\n _context44.t2 = _context44.sent;\n name = (0, _context44.t1)(_context44.t2, 0);\n _context44.next = 30;\n return this.getResolver(name);\n\n case 30:\n resolver = _context44.sent;\n _context44.next = 38;\n break;\n\n case 33:\n _context44.prev = 33;\n _context44.t3 = _context44[\"catch\"](22);\n\n if (!(_context44.t3.code !== Logger.errors.CALL_EXCEPTION)) {\n _context44.next = 37;\n break;\n }\n\n throw _context44.t3;\n\n case 37:\n return _context44.abrupt(\"return\", null);\n\n case 38:\n _context44.next = 45;\n break;\n\n case 40:\n _context44.next = 42;\n return this.getResolver(nameOrAddress);\n\n case 42:\n resolver = _context44.sent;\n\n if (resolver) {\n _context44.next = 45;\n break;\n }\n\n return _context44.abrupt(\"return\", null);\n\n case 45:\n _context44.next = 47;\n return resolver.getAvatar();\n\n case 47:\n avatar = _context44.sent;\n\n if (!(avatar == null)) {\n _context44.next = 50;\n break;\n }\n\n return _context44.abrupt(\"return\", null);\n\n case 50:\n return _context44.abrupt(\"return\", avatar.url);\n\n case 51:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44, this, [[10, 18], [22, 33]]);\n }));\n }\n }, {\n key: \"perform\",\n value: function perform(method, params) {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, {\n operation: method\n });\n }\n }, {\n key: \"_startEvent\",\n value: function _startEvent(event) {\n this.polling = this._events.filter(function (e) {\n return e.pollable();\n }).length > 0;\n }\n }, {\n key: \"_stopEvent\",\n value: function _stopEvent(event) {\n this.polling = this._events.filter(function (e) {\n return e.pollable();\n }).length > 0;\n }\n }, {\n key: \"_addEventListener\",\n value: function _addEventListener(eventName, listener, once) {\n var event = new Event(getEventTag(eventName), listener, once);\n\n this._events.push(event);\n\n this._startEvent(event);\n\n return this;\n }\n }, {\n key: \"on\",\n value: function on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n }, {\n key: \"once\",\n value: function once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n }, {\n key: \"emit\",\n value: function emit(eventName) {\n var _this19 = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var result = false;\n var stopped = [];\n var eventTag = getEventTag(eventName);\n this._events = this._events.filter(function (event) {\n if (event.tag !== eventTag) {\n return true;\n }\n\n setTimeout(function () {\n event.listener.apply(_this19, args);\n }, 0);\n result = true;\n\n if (event.once) {\n stopped.push(event);\n return false;\n }\n\n return true;\n });\n stopped.forEach(function (event) {\n _this19._stopEvent(event);\n });\n return result;\n }\n }, {\n key: \"listenerCount\",\n value: function listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n\n var eventTag = getEventTag(eventName);\n return this._events.filter(function (event) {\n return event.tag === eventTag;\n }).length;\n }\n }, {\n key: \"listeners\",\n value: function listeners(eventName) {\n if (eventName == null) {\n return this._events.map(function (event) {\n return event.listener;\n });\n }\n\n var eventTag = getEventTag(eventName);\n return this._events.filter(function (event) {\n return event.tag === eventTag;\n }).map(function (event) {\n return event.listener;\n });\n }\n }, {\n key: \"off\",\n value: function off(eventName, listener) {\n var _this20 = this;\n\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n\n var stopped = [];\n var found = false;\n var eventTag = getEventTag(eventName);\n this._events = this._events.filter(function (event) {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n\n if (found) {\n return true;\n }\n\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach(function (event) {\n _this20._stopEvent(event);\n });\n return this;\n }\n }, {\n key: \"removeAllListeners\",\n value: function removeAllListeners(eventName) {\n var _this21 = this;\n\n var stopped = [];\n\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n } else {\n var eventTag = getEventTag(eventName);\n this._events = this._events.filter(function (event) {\n if (event.tag !== eventTag) {\n return true;\n }\n\n stopped.push(event);\n return false;\n });\n }\n\n stopped.forEach(function (event) {\n _this21._stopEvent(event);\n });\n return this;\n }\n }], [{\n key: \"getFormatter\",\n value: function getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n\n return defaultFormatter;\n } // @TODO: Remove this and just use getNetwork\n\n }, {\n key: \"getNetwork\",\n value: function getNetwork(network) {\n return _getNetwork(network == null ? \"homestead\" : network);\n }\n }]);\n\n return BaseProvider;\n}(Provider);","\"use strict\";\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nvar errorGas = [\"call\", \"estimateGas\"];\n\nfunction spelunk(value, requireData) {\n if (value == null) {\n return null;\n } // These *are* the droids we're looking for.\n\n\n if (typeof value.message === \"string\" && value.message.match(\"reverted\")) {\n var data = isHexString(value.data) ? value.data : null;\n\n if (!requireData || data) {\n return {\n message: value.message,\n data: data\n };\n }\n } // Spelunk further...\n\n\n if (_typeof(value) === \"object\") {\n for (var key in value) {\n var result = spelunk(value[key], requireData);\n\n if (result) {\n return result;\n }\n }\n\n return null;\n } // Might be a JSON string we can further descend...\n\n\n if (typeof value === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) {}\n }\n\n return null;\n}\n\nfunction checkError(method, error, params) {\n var transaction = params.transaction || params.signedTransaction; // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n\n if (method === \"call\") {\n var result = spelunk(error, true);\n\n if (result) {\n return result.data;\n } // Nothing descriptive..\n\n\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\",\n transaction: transaction,\n error: error\n });\n }\n\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n var _result = spelunk(error.body, false);\n\n if (_result == null) {\n _result = spelunk(error, false);\n } // Found \"reverted\", this is a CALL_EXCEPTION\n\n\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,\n method: method,\n transaction: transaction,\n error: error\n });\n }\n } // @TODO: Should we spelunk for message too?\n\n\n var message = error.message;\n\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof error.error.message === \"string\") {\n message = error.error.message;\n } else if (typeof error.body === \"string\") {\n message = error.body;\n } else if (typeof error.responseText === \"string\") {\n message = error.responseText;\n }\n\n message = (message || \"\").toLowerCase(); // \"insufficient funds for gas * price + value + cost(data)\"\n\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: error,\n method: method,\n transaction: transaction\n });\n } // \"nonce too low\"\n\n\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error: error,\n method: method,\n transaction: transaction\n });\n } // \"replacement transaction underpriced\"\n\n\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: error,\n method: method,\n transaction: transaction\n });\n } // \"replacement transaction underpriced\"\n\n\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error: error,\n method: method,\n transaction: transaction\n });\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: error,\n method: method,\n transaction: transaction\n });\n }\n\n throw error;\n}\n\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n var error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n\n return payload.result;\n}\n\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n\n return value;\n}\n\nvar _constructorGuard = {};\nexport var JsonRpcSigner = /*#__PURE__*/function (_Signer) {\n _inherits(JsonRpcSigner, _Signer);\n\n var _super = _createSuper(JsonRpcSigner);\n\n function JsonRpcSigner(constructorGuard, provider, addressOrIndex) {\n var _this;\n\n _classCallCheck(this, JsonRpcSigner);\n\n _this = _super.call(this);\n\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n\n defineReadOnly(_assertThisInitialized(_this), \"provider\", provider);\n\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n\n if (typeof addressOrIndex === \"string\") {\n defineReadOnly(_assertThisInitialized(_this), \"_address\", _this.provider.formatter.address(addressOrIndex));\n defineReadOnly(_assertThisInitialized(_this), \"_index\", null);\n } else if (typeof addressOrIndex === \"number\") {\n defineReadOnly(_assertThisInitialized(_this), \"_index\", addressOrIndex);\n defineReadOnly(_assertThisInitialized(_this), \"_address\", null);\n } else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n\n return _this;\n }\n\n _createClass(JsonRpcSigner, [{\n key: \"connect\",\n value: function connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n }, {\n key: \"connectUnchecked\",\n value: function connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n }, {\n key: \"getAddress\",\n value: function getAddress() {\n var _this2 = this;\n\n if (this._address) {\n return Promise.resolve(this._address);\n }\n\n return this.provider.send(\"eth_accounts\", []).then(function (accounts) {\n if (accounts.length <= _this2._index) {\n logger.throwError(\"unknown account #\" + _this2._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n\n return _this2.provider.formatter.address(accounts[_this2._index]);\n });\n }\n }, {\n key: \"sendUncheckedTransaction\",\n value: function sendUncheckedTransaction(transaction) {\n var _this3 = this;\n\n transaction = shallowCopy(transaction);\n var fromAddress = this.getAddress().then(function (address) {\n if (address) {\n address = address.toLowerCase();\n }\n\n return address;\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\n if (transaction.gasLimit == null) {\n var estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then(function (to) {\n return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var address;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(to == null)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\", null);\n\n case 2:\n _context.next = 4;\n return this.provider.resolveName(to);\n\n case 4:\n address = _context.sent;\n\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n\n return _context.abrupt(\"return\", address);\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n });\n }\n\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(function (_ref) {\n var tx = _ref.tx,\n sender = _ref.sender;\n\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n\n var hexTx = _this3.provider.constructor.hexlifyTransaction(tx, {\n from: true\n });\n\n return _this3.provider.send(\"eth_sendTransaction\", [hexTx]).then(function (hash) {\n return hash;\n }, function (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\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n }, {\n key: \"signTransaction\",\n value: function signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n }, {\n key: \"sendTransaction\",\n value: function sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _this4 = this;\n\n var blockNumber, hash;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n\n case 2:\n blockNumber = _context3.sent;\n _context3.next = 5;\n return this.sendUncheckedTransaction(transaction);\n\n case 5:\n hash = _context3.sent;\n _context3.prev = 6;\n _context3.next = 9;\n return poll(function () {\n return __awaiter(_this4, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var tx;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.provider.getTransaction(hash);\n\n case 2:\n tx = _context2.sent;\n\n if (!(tx === null)) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt(\"return\", undefined);\n\n case 5:\n return _context2.abrupt(\"return\", this.provider._wrapTransaction(tx, hash, blockNumber));\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }, {\n oncePoll: this.provider\n });\n\n case 9:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 12:\n _context3.prev = 12;\n _context3.t0 = _context3[\"catch\"](6);\n _context3.t0.transactionHash = hash;\n throw _context3.t0;\n\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[6, 12]]);\n }));\n }\n }, {\n key: \"signMessage\",\n value: function signMessage(message) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var data, address;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n data = typeof message === \"string\" ? toUtf8Bytes(message) : message;\n _context4.next = 3;\n return this.getAddress();\n\n case 3:\n address = _context4.sent;\n _context4.prev = 4;\n _context4.next = 7;\n return this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n\n case 7:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 10:\n _context4.prev = 10;\n _context4.t0 = _context4[\"catch\"](4);\n\n if (typeof _context4.t0.message === \"string\" && _context4.t0.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\n throw _context4.t0;\n\n case 14:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this, [[4, 10]]);\n }));\n }\n }, {\n key: \"_legacySignMessage\",\n value: function _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var data, address;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n data = typeof message === \"string\" ? toUtf8Bytes(message) : message;\n _context5.next = 3;\n return this.getAddress();\n\n case 3:\n address = _context5.sent;\n _context5.prev = 4;\n _context5.next = 7;\n return this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n\n case 7:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 10:\n _context5.prev = 10;\n _context5.t0 = _context5[\"catch\"](4);\n\n if (typeof _context5.t0.message === \"string\" && _context5.t0.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\n throw _context5.t0;\n\n case 14:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[4, 10]]);\n }));\n }\n }, {\n key: \"_signTypedData\",\n value: function _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var _this5 = this;\n\n var populated, address;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return _TypedDataEncoder.resolveNames(domain, types, value, function (name) {\n return _this5.provider.resolveName(name);\n });\n\n case 2:\n populated = _context6.sent;\n _context6.next = 5;\n return this.getAddress();\n\n case 5:\n address = _context6.sent;\n _context6.prev = 6;\n _context6.next = 9;\n return this.provider.send(\"eth_signTypedData_v4\", [address.toLowerCase(), JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))]);\n\n case 9:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 12:\n _context6.prev = 12;\n _context6.t0 = _context6[\"catch\"](6);\n\n if (typeof _context6.t0.message === \"string\" && _context6.t0.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: {\n domain: populated.domain,\n types: types,\n value: populated.value\n }\n });\n }\n\n throw _context6.t0;\n\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this, [[6, 12]]);\n }));\n }\n }, {\n key: \"unlock\",\n value: function unlock(password) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var provider, address;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n provider = this.provider;\n _context7.next = 3;\n return this.getAddress();\n\n case 3:\n address = _context7.sent;\n return _context7.abrupt(\"return\", provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]));\n\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n }\n }]);\n\n return JsonRpcSigner;\n}(Signer);\n\nvar UncheckedJsonRpcSigner = /*#__PURE__*/function (_JsonRpcSigner) {\n _inherits(UncheckedJsonRpcSigner, _JsonRpcSigner);\n\n var _super2 = _createSuper(UncheckedJsonRpcSigner);\n\n function UncheckedJsonRpcSigner() {\n _classCallCheck(this, UncheckedJsonRpcSigner);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(UncheckedJsonRpcSigner, [{\n key: \"sendTransaction\",\n value: function sendTransaction(transaction) {\n var _this6 = this;\n\n return this.sendUncheckedTransaction(transaction).then(function (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: function wait(confirmations) {\n return _this6.provider.waitForTransaction(hash, confirmations);\n }\n };\n });\n }\n }]);\n\n return UncheckedJsonRpcSigner;\n}(JsonRpcSigner);\n\nvar allowedTransactionKeys = {\n chainId: true,\n data: true,\n gasLimit: true,\n gasPrice: true,\n nonce: true,\n to: true,\n value: true,\n type: true,\n accessList: true,\n maxFeePerGas: true,\n maxPriorityFeePerGas: true\n};\nexport var JsonRpcProvider = /*#__PURE__*/function (_BaseProvider) {\n _inherits(JsonRpcProvider, _BaseProvider);\n\n var _super3 = _createSuper(JsonRpcProvider);\n\n function JsonRpcProvider(url, network) {\n var _this7;\n\n _classCallCheck(this, JsonRpcProvider);\n\n var networkOrReady = network; // The network is unknown, query the JSON-RPC for it\n\n if (networkOrReady == null) {\n networkOrReady = new Promise(function (resolve, reject) {\n setTimeout(function () {\n _this7.detectNetwork().then(function (network) {\n resolve(network);\n }, function (error) {\n reject(error);\n });\n }, 0);\n });\n }\n\n _this7 = _super3.call(this, networkOrReady); // Default URL\n\n if (!url) {\n url = getStatic(_this7.constructor, \"defaultUrl\")();\n }\n\n if (typeof url === \"string\") {\n defineReadOnly(_assertThisInitialized(_this7), \"connection\", Object.freeze({\n url: url\n }));\n } else {\n defineReadOnly(_assertThisInitialized(_this7), \"connection\", Object.freeze(shallowCopy(url)));\n }\n\n _this7._nextId = 42;\n return _this7;\n }\n\n _createClass(JsonRpcProvider, [{\n key: \"_cache\",\n get: function get() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n\n return this._eventLoopCache;\n }\n }, {\n key: \"detectNetwork\",\n value: function detectNetwork() {\n var _this8 = this;\n\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork(); // Clear this cache at the beginning of the next event loop\n\n setTimeout(function () {\n _this8._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n\n return this._cache[\"detectNetwork\"];\n }\n }, {\n key: \"_uncachedDetectNetwork\",\n value: function _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n var chainId, getNetwork;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return timer(0);\n\n case 2:\n chainId = null;\n _context8.prev = 3;\n _context8.next = 6;\n return this.send(\"eth_chainId\", []);\n\n case 6:\n chainId = _context8.sent;\n _context8.next = 19;\n break;\n\n case 9:\n _context8.prev = 9;\n _context8.t0 = _context8[\"catch\"](3);\n _context8.prev = 11;\n _context8.next = 14;\n return this.send(\"net_version\", []);\n\n case 14:\n chainId = _context8.sent;\n _context8.next = 19;\n break;\n\n case 17:\n _context8.prev = 17;\n _context8.t1 = _context8[\"catch\"](11);\n\n case 19:\n if (!(chainId != null)) {\n _context8.next = 28;\n break;\n }\n\n getNetwork = getStatic(this.constructor, \"getNetwork\");\n _context8.prev = 21;\n return _context8.abrupt(\"return\", getNetwork(BigNumber.from(chainId).toNumber()));\n\n case 25:\n _context8.prev = 25;\n _context8.t2 = _context8[\"catch\"](21);\n return _context8.abrupt(\"return\", logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: _context8.t2\n }));\n\n case 28:\n return _context8.abrupt(\"return\", logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n }));\n\n case 29:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this, [[3, 9], [11, 17], [21, 25]]);\n }));\n }\n }, {\n key: \"getSigner\",\n value: function getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n }, {\n key: \"getUncheckedSigner\",\n value: function getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n }, {\n key: \"listAccounts\",\n value: function listAccounts() {\n var _this9 = this;\n\n return this.send(\"eth_accounts\", []).then(function (accounts) {\n return accounts.map(function (a) {\n return _this9.formatter.address(a);\n });\n });\n }\n }, {\n key: \"send\",\n value: function send(method, params) {\n var _this10 = this;\n\n var 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 }); // 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\n var cache = [\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0;\n\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n\n var result = fetchJson(this.connection, JSON.stringify(request), getResult).then(function (result) {\n _this10.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: _this10\n });\n\n return result;\n }, function (error) {\n _this10.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: _this10\n });\n\n throw error;\n }); // Cache the fetch, but clear it on the next event loop\n\n if (cache) {\n this._cache[method] = result;\n setTimeout(function () {\n _this10._cache[method] = null;\n }, 0);\n }\n\n return result;\n }\n }, {\n key: \"prepareRequest\",\n value: function prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]];\n\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n } else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n\n return null;\n\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n\n case \"call\":\n {\n var hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, {\n from: true\n }), params.blockTag]];\n }\n\n case \"estimateGas\":\n {\n var _hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n\n return [\"eth_estimateGas\", [_hexlifyTransaction(params.transaction, {\n from: true\n })]];\n }\n\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n\n return [\"eth_getLogs\", [params.filter]];\n\n default:\n break;\n }\n\n return null;\n }\n }, {\n key: \"perform\",\n value: function perform(method, params) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {\n var tx, feeData, args;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n if (!(method === \"call\" || method === \"estimateGas\")) {\n _context9.next = 8;\n break;\n }\n\n tx = params.transaction;\n\n if (!(tx && tx.type != null && BigNumber.from(tx.type).isZero())) {\n _context9.next = 8;\n break;\n }\n\n if (!(tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null)) {\n _context9.next = 8;\n break;\n }\n\n _context9.next = 6;\n return this.getFeeData();\n\n case 6:\n feeData = _context9.sent;\n\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 case 8:\n args = this.prepareRequest(method, params);\n\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, {\n operation: method\n });\n }\n\n _context9.prev = 10;\n _context9.next = 13;\n return this.send(args[0], args[1]);\n\n case 13:\n return _context9.abrupt(\"return\", _context9.sent);\n\n case 16:\n _context9.prev = 16;\n _context9.t0 = _context9[\"catch\"](10);\n return _context9.abrupt(\"return\", checkError(method, _context9.t0, params));\n\n case 19:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this, [[10, 16]]);\n }));\n }\n }, {\n key: \"_startEvent\",\n value: function _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n\n _get(_getPrototypeOf(JsonRpcProvider.prototype), \"_startEvent\", this).call(this, event);\n }\n }, {\n key: \"_startPending\",\n value: function _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n\n var self = this;\n var 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\n var 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\n setTimeout(function () {\n poll();\n }, 0);\n return null;\n }).catch(function (error) {});\n }\n\n poll();\n return filterId;\n }).catch(function (error) {});\n }\n }, {\n key: \"_stopEvent\",\n value: function _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n\n _get(_getPrototypeOf(JsonRpcProvider.prototype), \"_stopEvent\", this).call(this, event);\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\n }], [{\n key: \"defaultUrl\",\n value: function defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n }, {\n key: \"hexlifyTransaction\",\n value: function hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n var allowed = shallowCopy(allowedTransactionKeys);\n\n if (allowExtra) {\n for (var key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n\n checkProperties(transaction, allowed);\n var result = {}; // JSON-RPC now requires numeric values to be \"quantity\" values\n\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n\n var value = hexValue(BigNumber.from(transaction[key]));\n\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n\n result[key] = hexlify(transaction[key]);\n });\n\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n\n return result;\n }\n }]);\n\n return JsonRpcProvider;\n}(BaseProvider);","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar WS = null;\n\ntry {\n WS = WebSocket;\n\n if (WS == null) {\n throw new Error(\"inject please\");\n }\n} catch (error) {\n var logger = new Logger(version);\n\n WS = function WS() {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n };\n} //export default WS;\n//module.exports = WS;\n\n\nexport { WS as WebSocket };","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar 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 */\n\nvar NextId = 1; // For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\n\nexport var WebSocketProvider = /*#__PURE__*/function (_JsonRpcProvider) {\n _inherits(WebSocketProvider, _JsonRpcProvider);\n\n var _super = _createSuper(WebSocketProvider);\n\n function WebSocketProvider(url, network) {\n var _thisSuper, _this;\n\n _classCallCheck(this, WebSocketProvider);\n\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\n if (typeof url === \"string\") {\n _this = _super.call(this, url, network);\n } else {\n _this = _super.call(this, \"_websocket\", network);\n }\n\n _this._pollingInterval = -1;\n _this._wsReady = false;\n\n if (typeof url === \"string\") {\n defineReadOnly(_assertThisInitialized(_this), \"_websocket\", new WebSocket(_this.connection.url));\n } else {\n defineReadOnly(_assertThisInitialized(_this), \"_websocket\", url);\n }\n\n defineReadOnly(_assertThisInitialized(_this), \"_requests\", {});\n defineReadOnly(_assertThisInitialized(_this), \"_subs\", {});\n defineReadOnly(_assertThisInitialized(_this), \"_subIds\", {});\n defineReadOnly(_assertThisInitialized(_this), \"_detectNetwork\", _get((_thisSuper = _assertThisInitialized(_this), _getPrototypeOf(WebSocketProvider.prototype)), \"detectNetwork\", _thisSuper).call(_thisSuper)); // Stall sending requests until the socket is open...\n\n _this.websocket.onopen = function () {\n _this._wsReady = true;\n Object.keys(_this._requests).forEach(function (id) {\n _this.websocket.send(_this._requests[id].payload);\n });\n };\n\n _this.websocket.onmessage = function (messageEvent) {\n var data = messageEvent.data;\n var result = JSON.parse(data);\n\n if (result.id != null) {\n var id = String(result.id);\n var request = _this._requests[id];\n delete _this._requests[id];\n\n if (result.result !== undefined) {\n request.callback(null, result.result);\n\n _this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: _assertThisInitialized(_this)\n });\n } else {\n var error = null;\n\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 } else {\n error = new Error(\"unknown error\");\n }\n\n request.callback(error, undefined);\n\n _this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: _assertThisInitialized(_this)\n });\n }\n } else if (result.method === \"eth_subscription\") {\n // Subscription...\n var sub = _this._subs[result.params.subscription];\n\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result);\n }\n } else {\n console.warn(\"this should not happen\");\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\n\n var fauxPoll = setInterval(function () {\n _this.emit(\"poll\");\n }, 1000);\n\n if (fauxPoll.unref) {\n fauxPoll.unref();\n }\n\n return _possibleConstructorReturn(_this);\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\n\n _createClass(WebSocketProvider, [{\n key: \"websocket\",\n get: function get() {\n return this._websocket;\n }\n }, {\n key: \"detectNetwork\",\n value: function detectNetwork() {\n return this._detectNetwork;\n }\n }, {\n key: \"pollingInterval\",\n get: function get() {\n return 0;\n },\n set: function set(value) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n }, {\n key: \"resetEventsBlock\",\n value: function resetEventsBlock(blockNumber) {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n }, {\n key: \"poll\",\n value: function poll() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", null);\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n }\n }, {\n key: \"polling\",\n set: function set(value) {\n if (!value) {\n return;\n }\n\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n }, {\n key: \"send\",\n value: function send(method, params) {\n var _this2 = this;\n\n var rid = NextId++;\n return new Promise(function (resolve, reject) {\n function callback(error, result) {\n if (error) {\n return reject(error);\n }\n\n return resolve(result);\n }\n\n var payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n\n _this2.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: _this2\n });\n\n _this2._requests[String(rid)] = {\n callback: callback,\n payload: payload\n };\n\n if (_this2._wsReady) {\n _this2.websocket.send(payload);\n }\n });\n }\n }, {\n key: \"_subscribe\",\n value: function _subscribe(tag, param, processFunc) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _this3 = this;\n\n var subIdPromise, subId;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n subIdPromise = this._subIds[tag];\n\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then(function (param) {\n return _this3.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n\n _context2.next = 4;\n return subIdPromise;\n\n case 4:\n subId = _context2.sent;\n this._subs[subId] = {\n tag: tag,\n processFunc: processFunc\n };\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }\n }, {\n key: \"_startEvent\",\n value: function _startEvent(event) {\n var _this4 = this;\n\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [\"newHeads\"], function (result) {\n var blockNumber = BigNumber.from(result.number).toNumber();\n _this4._emitted.block = blockNumber;\n\n _this4.emit(\"block\", blockNumber);\n });\n\n break;\n\n case \"pending\":\n this._subscribe(\"pending\", [\"newPendingTransactions\"], function (result) {\n _this4.emit(\"pending\", result);\n });\n\n break;\n\n case \"filter\":\n this._subscribe(event.tag, [\"logs\", this._getFilter(event.filter)], function (result) {\n if (result.removed == null) {\n result.removed = false;\n }\n\n _this4.emit(event.filter, _this4.formatter.filterLog(result));\n });\n\n break;\n\n case \"tx\":\n {\n var emitReceipt = function emitReceipt(event) {\n var hash = event.hash;\n\n _this4.getTransactionReceipt(hash).then(function (receipt) {\n if (!receipt) {\n return;\n }\n\n _this4.emit(hash, receipt);\n });\n }; // In case it is already mined\n\n\n emitReceipt(event); // 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\n this._subscribe(\"tx\", [\"newHeads\"], function (result) {\n _this4._events.filter(function (e) {\n return e.type === \"tx\";\n }).forEach(emitReceipt);\n });\n\n break;\n }\n // Nothing is needed\n\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n }, {\n key: \"_stopEvent\",\n value: function _stopEvent(event) {\n var _this5 = this;\n\n var tag = event.tag;\n\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter(function (e) {\n return e.type === \"tx\";\n }).length) {\n return;\n }\n\n tag = \"tx\";\n } else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n\n var subId = this._subIds[tag];\n\n if (!subId) {\n return;\n }\n\n delete this._subIds[tag];\n subId.then(function (subId) {\n if (!_this5._subs[subId]) {\n return;\n }\n\n delete _this5._subs[subId];\n\n _this5.send(\"eth_unsubscribe\", [subId]);\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _this6 = this;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (!(this.websocket.readyState === WebSocket.CONNECTING)) {\n _context3.next = 3;\n break;\n }\n\n _context3.next = 3;\n return new Promise(function (resolve) {\n _this6.websocket.onopen = function () {\n resolve(true);\n };\n\n _this6.websocket.onerror = function () {\n resolve(false);\n };\n });\n\n case 3:\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n\n case 4:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n }\n }], [{\n key: \"defaultUrl\",\n value: function defaultUrl() {\n return \"ws:/\\/localhost:8546\";\n }\n }]);\n\n return WebSocketProvider;\n}(JsonRpcProvider);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\"; // 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.\n\nexport var StaticJsonRpcProvider = /*#__PURE__*/function (_JsonRpcProvider) {\n _inherits(StaticJsonRpcProvider, _JsonRpcProvider);\n\n var _super2 = _createSuper(StaticJsonRpcProvider);\n\n function StaticJsonRpcProvider() {\n _classCallCheck(this, StaticJsonRpcProvider);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(StaticJsonRpcProvider, [{\n key: \"detectNetwork\",\n value: function detectNetwork() {\n var _this = this;\n\n var _super = Object.create(null, {\n detectNetwork: {\n get: function get() {\n return _get(_getPrototypeOf(StaticJsonRpcProvider.prototype), \"detectNetwork\", _this);\n }\n }\n });\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var network;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n network = this.network;\n\n if (!(network == null)) {\n _context.next = 7;\n break;\n }\n\n _context.next = 4;\n return _super.detectNetwork.call(this);\n\n case 4:\n network = _context.sent;\n\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n } // If still not set, set it\n\n\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 case 7:\n return _context.abrupt(\"return\", network);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }]);\n\n return StaticJsonRpcProvider;\n}(JsonRpcProvider);\nexport var UrlJsonRpcProvider = /*#__PURE__*/function (_StaticJsonRpcProvide) {\n _inherits(UrlJsonRpcProvider, _StaticJsonRpcProvide);\n\n var _super3 = _createSuper(UrlJsonRpcProvider);\n\n function UrlJsonRpcProvider(network, apiKey) {\n var _this2;\n\n _classCallCheck(this, UrlJsonRpcProvider);\n\n logger.checkAbstract(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, UrlJsonRpcProvider); // Normalize the Network and API Key\n\n network = getStatic(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, \"getNetwork\")(network);\n apiKey = getStatic(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, \"getApiKey\")(apiKey);\n var connection = getStatic(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, \"getUrl\")(network, apiKey);\n _this2 = _super3.call(this, connection, network);\n\n if (typeof apiKey === \"string\") {\n defineReadOnly(_assertThisInitialized(_this2), \"apiKey\", apiKey);\n } else if (apiKey != null) {\n Object.keys(apiKey).forEach(function (key) {\n defineReadOnly(_assertThisInitialized(_this2), key, apiKey[key]);\n });\n }\n\n return _this2;\n }\n\n _createClass(UrlJsonRpcProvider, [{\n key: \"_startPending\",\n value: function _startPending() {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n }, {\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return false;\n }\n }, {\n key: \"getSigner\",\n value: function getSigner(address) {\n return logger.throwError(\"API provider does not support signing\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getSigner\"\n });\n }\n }, {\n key: \"listAccounts\",\n value: function listAccounts() {\n return Promise.resolve([]);\n } // Return a defaultApiKey if null, otherwise validate the API key\n\n }], [{\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n return apiKey;\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\n }, {\n key: \"getUrl\",\n value: function 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\n return UrlJsonRpcProvider;\n}(StaticJsonRpcProvider);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\"; // 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\n\nvar defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nexport var AlchemyWebSocketProvider = /*#__PURE__*/function (_WebSocketProvider) {\n _inherits(AlchemyWebSocketProvider, _WebSocketProvider);\n\n var _super = _createSuper(AlchemyWebSocketProvider);\n\n function AlchemyWebSocketProvider(network, apiKey) {\n var _this;\n\n _classCallCheck(this, AlchemyWebSocketProvider);\n\n var provider = new AlchemyProvider(network, apiKey);\n var url = provider.connection.url.replace(/^http/i, \"ws\").replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n _this = _super.call(this, url, provider.network);\n defineReadOnly(_assertThisInitialized(_this), \"apiKey\", provider.apiKey);\n return _this;\n }\n\n _createClass(AlchemyWebSocketProvider, [{\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.apiKey === defaultApiKey;\n }\n }]);\n\n return AlchemyWebSocketProvider;\n}(WebSocketProvider);\nexport var AlchemyProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) {\n _inherits(AlchemyProvider, _UrlJsonRpcProvider);\n\n var _super2 = _createSuper(AlchemyProvider);\n\n function AlchemyProvider() {\n _classCallCheck(this, AlchemyProvider);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(AlchemyProvider, [{\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.apiKey === defaultApiKey;\n }\n }], [{\n key: \"getWebSocketProvider\",\n value: function getWebSocketProvider(network, apiKey) {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n }, {\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n\n if (apiKey && typeof apiKey !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKey;\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(network, apiKey) {\n var host = null;\n\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\";\n break;\n\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return {\n allowGzip: true,\n url: \"https:/\" + \"/\" + host + apiKey,\n throttleCallback: function throttleCallback(attempt, url) {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n\n return Promise.resolve(true);\n }\n };\n }\n }]);\n\n return AlchemyProvider;\n}(UrlJsonRpcProvider);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nvar defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\n\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\n\nexport var AnkrProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) {\n _inherits(AnkrProvider, _UrlJsonRpcProvider);\n\n var _super = _createSuper(AnkrProvider);\n\n function AnkrProvider() {\n _classCallCheck(this, AnkrProvider);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(AnkrProvider, [{\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.apiKey === defaultApiKey;\n }\n }], [{\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n\n return apiKey;\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(network, apiKey) {\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n\n var connection = {\n allowGzip: true,\n url: \"https:/\\/\" + getHost(network.name) + apiKey,\n throttleCallback: function throttleCallback(attempt, url) {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n\n return connection;\n }\n }]);\n\n return AnkrProvider;\n}(UrlJsonRpcProvider);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nexport var CloudflareProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) {\n _inherits(CloudflareProvider, _UrlJsonRpcProvider);\n\n var _super2 = _createSuper(CloudflareProvider);\n\n function CloudflareProvider() {\n _classCallCheck(this, CloudflareProvider);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(CloudflareProvider, [{\n key: \"perform\",\n value: function perform(method, params) {\n var _this = this;\n\n var _super = Object.create(null, {\n perform: {\n get: function get() {\n return _get(_getPrototypeOf(CloudflareProvider.prototype), \"perform\", _this);\n }\n }\n });\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var block;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(method === \"getBlockNumber\")) {\n _context.next = 5;\n break;\n }\n\n _context.next = 3;\n return _super.perform.call(this, \"getBlock\", {\n blockTag: \"latest\"\n });\n\n case 3:\n block = _context.sent;\n return _context.abrupt(\"return\", block.number);\n\n case 5:\n return _context.abrupt(\"return\", _super.perform.call(this, method, params));\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }], [{\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n\n return null;\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(network, apiKey) {\n var host = null;\n\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host;\n }\n }]);\n\n return CloudflareProvider;\n}(UrlJsonRpcProvider);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\"; // The transaction has already been sanitized by the calls in Provider\n\nfunction getTransactionPostData(transaction) {\n var result = {};\n\n for (var key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n\n var value = transaction[key];\n\n if (key === \"type\" && value === 0) {\n continue;\n } // Quantity-types require no leading zero, unless 0\n\n\n if ({\n type: true,\n gasLimit: true,\n gasPrice: true,\n maxFeePerGs: true,\n maxPriorityFeePerGas: true,\n nonce: true,\n value: true\n }[key]) {\n value = hexValue(hexlify(value));\n } else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map(function (set) {\n return \"{address:\\\"\".concat(set.address, \"\\\",storageKeys:[\\\"\").concat(set.storageKeys.join('\",\"'), \"\\\"]}\");\n }).join(\",\") + \"]\";\n } else {\n value = hexlify(value);\n }\n\n result[key] = value;\n }\n\n return result;\n}\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\n if (result.status != 1 || typeof result.message !== \"string\" || !result.message.match(/^OK/)) {\n var error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n\n throw error;\n }\n\n return result.result;\n}\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 var error = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n var _error = new Error(\"invalid response\");\n\n _error.result = JSON.stringify(result);\n throw _error;\n }\n\n if (result.error) {\n // @TODO: not any\n var _error2 = new Error(result.error.message || \"unknown error\");\n\n if (result.error.code) {\n _error2.code = result.error.code;\n }\n\n if (result.error.data) {\n _error2.data = result.error.data;\n }\n\n throw _error2;\n }\n\n return result.result;\n} // The blockTag was normalized as a string by the Provider pre-perform operations\n\n\nfunction checkLogTag(blockTag) {\n if (blockTag === \"pending\") {\n throw new Error(\"pending not supported\");\n }\n\n if (blockTag === \"latest\") {\n return blockTag;\n }\n\n return parseInt(blockTag.substring(2), 16);\n}\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 var e = error.error; // Etherscan keeps changing their string\n\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n var data = e.data;\n\n if (data) {\n data = \"0x\" + data.replace(/^.*0x/i, \"\");\n }\n\n if (isHexString(data)) {\n return data;\n }\n\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error: error,\n data: \"0x\"\n });\n }\n } // Get the message from any nested error structure\n\n\n var message = error.message;\n\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof error.error.message === \"string\") {\n message = error.error.message;\n } else if (typeof error.body === \"string\") {\n message = error.body;\n } else if (typeof error.responseText === \"string\") {\n message = error.responseText;\n }\n }\n\n message = (message || \"\").toLowerCase(); // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error: error,\n method: method,\n transaction: transaction\n });\n } // \"Transaction with the same hash was already imported.\"\n\n\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: error,\n method: method,\n transaction: transaction\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\n\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error: error,\n method: method,\n transaction: transaction\n });\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: error,\n method: method,\n transaction: transaction\n });\n }\n\n throw error;\n}\n\nexport var EtherscanProvider = /*#__PURE__*/function (_BaseProvider) {\n _inherits(EtherscanProvider, _BaseProvider);\n\n var _super2 = _createSuper(EtherscanProvider);\n\n function EtherscanProvider(network, apiKey) {\n var _this;\n\n _classCallCheck(this, EtherscanProvider);\n\n _this = _super2.call(this, network);\n defineReadOnly(_assertThisInitialized(_this), \"baseUrl\", _this.getBaseUrl());\n defineReadOnly(_assertThisInitialized(_this), \"apiKey\", apiKey || null);\n return _this;\n }\n\n _createClass(EtherscanProvider, [{\n key: \"getBaseUrl\",\n value: function getBaseUrl() {\n switch (this.network ? this.network.name : \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n\n default:\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(module, params) {\n var query = Object.keys(params).reduce(function (accum, key) {\n var value = params[key];\n\n if (value != null) {\n accum += \"&\".concat(key, \"=\").concat(value);\n }\n\n return accum;\n }, \"\");\n var apiKey = this.apiKey ? \"&apikey=\".concat(this.apiKey) : \"\";\n return \"\".concat(this.baseUrl, \"/api?module=\").concat(module).concat(query).concat(apiKey);\n }\n }, {\n key: \"getPostUrl\",\n value: function getPostUrl() {\n return \"\".concat(this.baseUrl, \"/api\");\n }\n }, {\n key: \"getPostData\",\n value: function getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n }, {\n key: \"fetch\",\n value: function fetch(module, params, post) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _this2 = this;\n\n var url, payload, procFunc, connection, payloadStr, result;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n url = post ? this.getPostUrl() : this.getUrl(module, params);\n payload = post ? this.getPostData(module, params) : null;\n procFunc = module === \"proxy\" ? getJsonResult : getResult;\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n connection = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: function throttleCallback(attempt, url) {\n if (_this2.isCommunityResource()) {\n showThrottleMessage();\n }\n\n return Promise.resolve(true);\n }\n };\n payloadStr = null;\n\n if (payload) {\n connection.headers = {\n \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\"\n };\n payloadStr = Object.keys(payload).map(function (key) {\n return \"\".concat(key, \"=\").concat(payload[key]);\n }).join(\"&\");\n }\n\n _context.next = 9;\n return fetchJson(connection, payloadStr, procFunc || getJsonResult);\n\n case 9:\n result = _context.sent;\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n return _context.abrupt(\"return\", result);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n }, {\n key: \"detectNetwork\",\n value: function detectNetwork() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", this.network);\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n }\n }, {\n key: \"perform\",\n value: function perform(method, params) {\n var _this3 = this;\n\n var _super = Object.create(null, {\n perform: {\n get: function get() {\n return _get(_getPrototypeOf(EtherscanProvider.prototype), \"perform\", _this3);\n }\n }\n });\n\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var postData, _postData, args, topic0, logs, blocks, i, log, block;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.t0 = method;\n _context3.next = _context3.t0 === \"getBlockNumber\" ? 3 : _context3.t0 === \"getGasPrice\" ? 4 : _context3.t0 === \"getBalance\" ? 5 : _context3.t0 === \"getTransactionCount\" ? 6 : _context3.t0 === \"getCode\" ? 7 : _context3.t0 === \"getStorageAt\" ? 8 : _context3.t0 === \"sendTransaction\" ? 9 : _context3.t0 === \"getBlock\" ? 10 : _context3.t0 === \"getTransaction\" ? 13 : _context3.t0 === \"getTransactionReceipt\" ? 14 : _context3.t0 === \"call\" ? 15 : _context3.t0 === \"estimateGas\" ? 29 : _context3.t0 === \"getLogs\" ? 41 : _context3.t0 === \"getEtherPrice\" ? 65 : 72;\n break;\n\n case 3:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_blockNumber\"\n }));\n\n case 4:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_gasPrice\"\n }));\n\n case 5:\n return _context3.abrupt(\"return\", this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n }));\n\n case 6:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n }));\n\n case 7:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n }));\n\n case 8:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n }));\n\n case 9:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch(function (error) {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n }));\n\n case 10:\n if (!params.blockTag) {\n _context3.next = 12;\n break;\n }\n\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: params.includeTransactions ? \"true\" : \"false\"\n }));\n\n case 12:\n throw new Error(\"getBlock by blockHash not implemented\");\n\n case 13:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n }));\n\n case 14:\n return _context3.abrupt(\"return\", this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n }));\n\n case 15:\n if (!(params.blockTag !== \"latest\")) {\n _context3.next = 17;\n break;\n }\n\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n\n case 17:\n postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n _context3.prev = 20;\n _context3.next = 23;\n return this.fetch(\"proxy\", postData, true);\n\n case 23:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 26:\n _context3.prev = 26;\n _context3.t1 = _context3[\"catch\"](20);\n return _context3.abrupt(\"return\", checkError(\"call\", _context3.t1, params.transaction));\n\n case 29:\n _postData = getTransactionPostData(params.transaction);\n _postData.module = \"proxy\";\n _postData.action = \"eth_estimateGas\";\n _context3.prev = 32;\n _context3.next = 35;\n return this.fetch(\"proxy\", _postData, true);\n\n case 35:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 38:\n _context3.prev = 38;\n _context3.t2 = _context3[\"catch\"](32);\n return _context3.abrupt(\"return\", checkError(\"estimateGas\", _context3.t2, params.transaction));\n\n case 41:\n args = {\n action: \"getLogs\"\n };\n\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n\n if (params.filter.address) {\n args.address = params.filter.address;\n } // @TODO: We can handle slightly more complicated logs using the logs API\n\n\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, {\n topics: params.filter.topics\n });\n }\n\n if (params.filter.topics.length === 1) {\n topic0 = params.filter.topics[0];\n\n if (typeof topic0 !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, {\n topic0: topic0\n });\n }\n\n args.topic0 = topic0;\n }\n }\n\n _context3.next = 48;\n return this.fetch(\"logs\", args);\n\n case 48:\n logs = _context3.sent;\n // Cache txHash => blockHash\n blocks = {}; // Add any missing blockHash to the logs\n\n i = 0;\n\n case 51:\n if (!(i < logs.length)) {\n _context3.next = 64;\n break;\n }\n\n log = logs[i];\n\n if (!(log.blockHash != null)) {\n _context3.next = 55;\n break;\n }\n\n return _context3.abrupt(\"continue\", 61);\n\n case 55:\n if (!(blocks[log.blockNumber] == null)) {\n _context3.next = 60;\n break;\n }\n\n _context3.next = 58;\n return this.getBlock(log.blockNumber);\n\n case 58:\n block = _context3.sent;\n\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n\n case 60:\n log.blockHash = blocks[log.blockNumber];\n\n case 61:\n i++;\n _context3.next = 51;\n break;\n\n case 64:\n return _context3.abrupt(\"return\", logs);\n\n case 65:\n if (!(this.network.name !== \"homestead\")) {\n _context3.next = 67;\n break;\n }\n\n return _context3.abrupt(\"return\", 0.0);\n\n case 67:\n _context3.t3 = parseFloat;\n _context3.next = 70;\n return this.fetch(\"stats\", {\n action: \"ethprice\"\n });\n\n case 70:\n _context3.t4 = _context3.sent.ethusd;\n return _context3.abrupt(\"return\", (0, _context3.t3)(_context3.t4));\n\n case 72:\n return _context3.abrupt(\"break\", 73);\n\n case 73:\n return _context3.abrupt(\"return\", _super.perform.call(this, method, params));\n\n case 74:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[20, 26], [32, 38]]);\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\n }, {\n key: \"getHistory\",\n value: function getHistory(addressOrName, startBlock, endBlock) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var _this4 = this;\n\n var params, result;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.resolveName(addressOrName);\n\n case 2:\n _context4.t0 = _context4.sent;\n _context4.t1 = startBlock == null ? 0 : startBlock;\n _context4.t2 = endBlock == null ? 99999999 : endBlock;\n params = {\n action: \"txlist\",\n address: _context4.t0,\n startblock: _context4.t1,\n endblock: _context4.t2,\n sort: \"asc\"\n };\n _context4.next = 8;\n return this.fetch(\"account\", params);\n\n case 8:\n result = _context4.sent;\n return _context4.abrupt(\"return\", result.map(function (tx) {\n [\"contractAddress\", \"to\"].forEach(function (key) {\n if (tx[key] == \"\") {\n delete tx[key];\n }\n });\n\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n\n var item = _this4.formatter.transactionResponse(tx);\n\n if (tx.timeStamp) {\n item.timestamp = parseInt(tx.timeStamp);\n }\n\n return item;\n }));\n\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n }\n }, {\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.apiKey == null;\n }\n }]);\n\n return EtherscanProvider;\n}(BaseProvider);","\"use strict\";\n\nexport function shuffled(array) {\n array = array.slice();\n\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\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\";\nvar logger = new Logger(version);\n\nfunction now() {\n 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.\n\n\nfunction checkNetworks(networks) {\n var result = null;\n\n for (var i = 0; i < networks.length; i++) {\n var network = networks[i]; // Null! We do not know our network; bail.\n\n if (network == null) {\n return null;\n }\n\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId && (result.ensAddress === network.ensAddress || result.ensAddress == null && network.ensAddress == null))) {\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n } else {\n result = network;\n }\n }\n\n return result;\n}\n\nfunction median(values, maxDelta) {\n values = values.slice().sort();\n var middle = Math.floor(values.length / 2); // Odd length; take the middle\n\n if (values.length % 2) {\n return values[middle];\n } // Even length; take the average of the two middle\n\n\n var a = values[middle - 1],\n b = values[middle];\n\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n\n return (a + b) / 2;\n}\n\nfunction serialize(value) {\n if (value === null) {\n return \"null\";\n } else if (typeof value === \"number\" || typeof value === \"boolean\") {\n return JSON.stringify(value);\n } else if (typeof value === \"string\") {\n return value;\n } else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n } else if (Array.isArray(value)) {\n return JSON.stringify(value.map(function (i) {\n return serialize(i);\n }));\n } else if (_typeof(value) === \"object\") {\n var keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map(function (key) {\n var v = value[key];\n\n if (typeof v === \"function\") {\n v = \"[function]\";\n } else {\n v = serialize(v);\n }\n\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n\n throw new Error(\"unknown value type: \" + _typeof(value));\n} // Next request ID to use for emitting debug info\n\n\nvar nextRid = 1;\n;\n\nfunction stall(duration) {\n var cancel = null;\n var timer = null;\n var promise = new Promise(function (resolve) {\n cancel = function cancel() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n resolve();\n };\n\n timer = setTimeout(cancel, duration);\n });\n\n var wait = function wait(func) {\n promise = promise.then(func);\n return promise;\n };\n\n function getPromise() {\n return promise;\n }\n\n return {\n cancel: cancel,\n getPromise: getPromise,\n wait: wait\n };\n}\n\nvar ForwardErrors = [Logger.errors.CALL_EXCEPTION, Logger.errors.INSUFFICIENT_FUNDS, Logger.errors.NONCE_EXPIRED, Logger.errors.REPLACEMENT_UNDERPRICED, Logger.errors.UNPREDICTABLE_GAS_LIMIT];\nvar ForwardProperties = [\"address\", \"args\", \"errorArgs\", \"errorSignature\", \"method\", \"transaction\"];\n;\n\nfunction exposeDebugConfig(config, now) {\n var result = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", {\n get: function get() {\n return config.provider;\n }\n });\n\n if (config.start) {\n result.start = config.start;\n }\n\n if (now) {\n result.duration = now - config.start;\n }\n\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n } else {\n result.result = config.result || null;\n }\n }\n\n return result;\n}\n\nfunction normalizedTally(normalize, quorum) {\n return function (configs) {\n // Count the votes for each result\n var tally = {};\n configs.forEach(function (c) {\n var value = normalize(c.result);\n\n if (!tally[value]) {\n tally[value] = {\n count: 0,\n result: c.result\n };\n }\n\n tally[value].count++;\n }); // Check for a quorum on any given result\n\n var keys = Object.keys(tally);\n\n for (var i = 0; i < keys.length; i++) {\n var check = tally[keys[i]];\n\n if (check.count >= quorum) {\n return check.result;\n }\n } // No quroum\n\n\n return undefined;\n };\n}\n\nfunction getProcessFunc(provider, method, params) {\n var normalize = serialize;\n\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 var values = configs.map(function (c) {\n return c.result;\n }); // Get the median block number\n\n var blockNumber = median(configs.map(function (c) {\n return c.result;\n }), 2);\n\n if (blockNumber == null) {\n return undefined;\n }\n\n blockNumber = Math.ceil(blockNumber); // If the next block height is present, its prolly safe to use\n\n if (values.indexOf(blockNumber + 1) >= 0) {\n blockNumber++;\n } // Don't ever roll back the blockNumber\n\n\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n\n return provider._highestBlockNumber;\n };\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 var values = configs.map(function (c) {\n return c.result;\n });\n values.sort();\n return values[Math.floor(values.length / 2)];\n };\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(function (c) {\n return c.result;\n }));\n };\n // No additional normalizing required; serialize is enough\n\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\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function normalize(tx) {\n if (tx == null) {\n return null;\n }\n\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n };\n\n break;\n // We drop the confirmations from transactions as it is approximate\n\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function normalize(block) {\n if (block == null) {\n return null;\n }\n\n block = shallowCopy(block);\n block.transactions = block.transactions.map(function (tx) {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n } else {\n normalize = function normalize(block) {\n if (block == null) {\n return null;\n }\n\n return serialize(block);\n };\n }\n\n break;\n\n default:\n throw new Error(\"unknown method: \" + method);\n } // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n\n\n return normalizedTally(normalize, provider.quorum);\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.\n\n\nfunction waitForSync(config, blockNumber) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var provider;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n provider = config.provider;\n\n if (!(provider.blockNumber != null && provider.blockNumber >= blockNumber || blockNumber === -1)) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", provider);\n\n case 3:\n return _context.abrupt(\"return\", poll(function () {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n // We are synced\n if (provider.blockNumber >= blockNumber) {\n return resolve(provider);\n } // We're done; just quit\n\n\n // We're done; just quit\n if (config.cancelled) {\n return resolve(null);\n } // Try again, next block\n\n\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, {\n oncePoll: provider\n }));\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n}\n\nfunction getRunner(config, currentBlockNumber, method, params) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var provider, filter;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n provider = config.provider;\n _context2.t0 = method;\n _context2.next = _context2.t0 === \"getBlockNumber\" ? 4 : _context2.t0 === \"getGasPrice\" ? 4 : _context2.t0 === \"getEtherPrice\" ? 5 : _context2.t0 === \"getBalance\" ? 8 : _context2.t0 === \"getTransactionCount\" ? 8 : _context2.t0 === \"getCode\" ? 8 : _context2.t0 === \"getStorageAt\" ? 13 : _context2.t0 === \"getBlock\" ? 18 : _context2.t0 === \"call\" ? 23 : _context2.t0 === \"estimateGas\" ? 23 : _context2.t0 === \"getTransaction\" ? 30 : _context2.t0 === \"getTransactionReceipt\" ? 30 : _context2.t0 === \"getLogs\" ? 31 : 37;\n break;\n\n case 4:\n return _context2.abrupt(\"return\", provider[method]());\n\n case 5:\n if (!provider.getEtherPrice) {\n _context2.next = 7;\n break;\n }\n\n return _context2.abrupt(\"return\", provider.getEtherPrice());\n\n case 7:\n return _context2.abrupt(\"break\", 37);\n\n case 8:\n if (!(params.blockTag && isHexString(params.blockTag))) {\n _context2.next = 12;\n break;\n }\n\n _context2.next = 11;\n return waitForSync(config, currentBlockNumber);\n\n case 11:\n provider = _context2.sent;\n\n case 12:\n return _context2.abrupt(\"return\", provider[method](params.address, params.blockTag || \"latest\"));\n\n case 13:\n if (!(params.blockTag && isHexString(params.blockTag))) {\n _context2.next = 17;\n break;\n }\n\n _context2.next = 16;\n return waitForSync(config, currentBlockNumber);\n\n case 16:\n provider = _context2.sent;\n\n case 17:\n return _context2.abrupt(\"return\", provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\"));\n\n case 18:\n if (!(params.blockTag && isHexString(params.blockTag))) {\n _context2.next = 22;\n break;\n }\n\n _context2.next = 21;\n return waitForSync(config, currentBlockNumber);\n\n case 21:\n provider = _context2.sent;\n\n case 22:\n return _context2.abrupt(\"return\", provider[params.includeTransactions ? \"getBlockWithTransactions\" : \"getBlock\"](params.blockTag || params.blockHash));\n\n case 23:\n if (!(params.blockTag && isHexString(params.blockTag))) {\n _context2.next = 27;\n break;\n }\n\n _context2.next = 26;\n return waitForSync(config, currentBlockNumber);\n\n case 26:\n provider = _context2.sent;\n\n case 27:\n if (!(method === \"call\" && params.blockTag)) {\n _context2.next = 29;\n break;\n }\n\n return _context2.abrupt(\"return\", provider[method](params.transaction, params.blockTag));\n\n case 29:\n return _context2.abrupt(\"return\", provider[method](params.transaction));\n\n case 30:\n return _context2.abrupt(\"return\", provider[method](params.transactionHash));\n\n case 31:\n filter = params.filter;\n\n if (!(filter.fromBlock && isHexString(filter.fromBlock) || filter.toBlock && isHexString(filter.toBlock))) {\n _context2.next = 36;\n break;\n }\n\n _context2.next = 35;\n return waitForSync(config, currentBlockNumber);\n\n case 35:\n provider = _context2.sent;\n\n case 36:\n return _context2.abrupt(\"return\", provider.getLogs(filter));\n\n case 37:\n return _context2.abrupt(\"return\", logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n }));\n\n case 38:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n}\n\nexport var FallbackProvider = /*#__PURE__*/function (_BaseProvider) {\n _inherits(FallbackProvider, _BaseProvider);\n\n var _super = _createSuper(FallbackProvider);\n\n function FallbackProvider(providers, quorum) {\n var _this;\n\n _classCallCheck(this, FallbackProvider);\n\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n\n var providerConfigs = providers.map(function (configOrProvider, index) {\n if (Provider.isProvider(configOrProvider)) {\n var stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n var priority = 1;\n return Object.freeze({\n provider: configOrProvider,\n weight: 1,\n stallTimeout: stallTimeout,\n priority: priority\n });\n }\n\n var config = shallowCopy(configOrProvider);\n\n if (config.priority == null) {\n config.priority = 1;\n }\n\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n }\n\n if (config.weight == null) {\n config.weight = 1;\n }\n\n var weight = config.weight;\n\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", \"providers[\".concat(index, \"].weight\"), weight);\n }\n\n return Object.freeze(config);\n });\n var total = providerConfigs.reduce(function (accum, c) {\n return accum + c.weight;\n }, 0);\n\n if (quorum == null) {\n quorum = total / 2;\n } else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n } // Are all providers' networks are known\n\n\n var networkOrReady = checkNetworks(providerConfigs.map(function (c) {\n return c.provider.network;\n })); // Not all networks are known; we must stall\n\n if (networkOrReady == null) {\n networkOrReady = new Promise(function (resolve, reject) {\n setTimeout(function () {\n _this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n\n _this = _super.call(this, networkOrReady); // Preserve a copy, so we do not get mutated\n\n defineReadOnly(_assertThisInitialized(_this), \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(_assertThisInitialized(_this), \"quorum\", quorum);\n _this._highestBlockNumber = -1;\n return _this;\n }\n\n _createClass(FallbackProvider, [{\n key: \"detectNetwork\",\n value: function detectNetwork() {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var networks;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return Promise.all(this.providerConfigs.map(function (c) {\n return c.provider.getNetwork();\n }));\n\n case 2:\n networks = _context3.sent;\n return _context3.abrupt(\"return\", checkNetworks(networks));\n\n case 4:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n }\n }, {\n key: \"perform\",\n value: function perform(method, params) {\n return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var _this2 = this;\n\n var results, _i, result, processFunc, configs, currentBlockNumber, i, first, _loop, _ret;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (!(method === \"sendTransaction\")) {\n _context5.next = 13;\n break;\n }\n\n _context5.next = 3;\n return Promise.all(this.providerConfigs.map(function (c) {\n return c.provider.sendTransaction(params.signedTransaction).then(function (result) {\n return result.hash;\n }, function (error) {\n return error;\n });\n }));\n\n case 3:\n results = _context5.sent;\n _i = 0;\n\n case 5:\n if (!(_i < results.length)) {\n _context5.next = 12;\n break;\n }\n\n result = results[_i];\n\n if (!(typeof result === \"string\")) {\n _context5.next = 9;\n break;\n }\n\n return _context5.abrupt(\"return\", result);\n\n case 9:\n _i++;\n _context5.next = 5;\n break;\n\n case 12:\n throw results[0];\n\n case 13:\n if (!(this._highestBlockNumber === -1 && method !== \"getBlockNumber\")) {\n _context5.next = 16;\n break;\n }\n\n _context5.next = 16;\n return this.getBlockNumber();\n\n case 16:\n processFunc = getProcessFunc(this, method, params); // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n\n configs = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort(function (a, b) {\n return a.priority - b.priority;\n });\n currentBlockNumber = this._highestBlockNumber;\n i = 0;\n first = true;\n _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var t0, inflightWeight, _loop2, waiting, results, _result, errors;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n t0 = now(); // Compute the inflight weight (exclude anything past)\n\n inflightWeight = configs.filter(function (c) {\n return c.runner && t0 - c.start < c.stallTimeout;\n }).reduce(function (accum, c) {\n return accum + c.weight;\n }, 0); // Start running enough to meet quorum\n\n _loop2 = function _loop2() {\n var config = configs[i++];\n var rid = nextRid++;\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(function () {\n config.staller = null;\n });\n config.runner = getRunner(config, currentBlockNumber, method, params).then(function (result) {\n config.done = true;\n config.result = result;\n\n if (_this2.listenerCount(\"debug\")) {\n _this2.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: {\n method: method,\n params: deepCopy(params)\n },\n provider: _this2\n });\n }\n }, function (error) {\n config.done = true;\n config.error = error;\n\n if (_this2.listenerCount(\"debug\")) {\n _this2.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: {\n method: method,\n params: deepCopy(params)\n },\n provider: _this2\n });\n }\n });\n\n if (_this2.listenerCount(\"debug\")) {\n _this2.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: {\n method: method,\n params: deepCopy(params)\n },\n provider: _this2\n });\n }\n\n inflightWeight += config.weight;\n };\n\n while (inflightWeight < _this2.quorum && i < configs.length) {\n _loop2();\n } // Wait for anything meaningful to finish or stall out\n\n\n waiting = [];\n configs.forEach(function (c) {\n if (c.done || !c.runner) {\n return;\n }\n\n waiting.push(c.runner);\n\n if (c.staller) {\n waiting.push(c.staller.getPromise());\n }\n });\n\n if (!waiting.length) {\n _context4.next = 9;\n break;\n }\n\n _context4.next = 9;\n return Promise.race(waiting);\n\n case 9:\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n results = configs.filter(function (c) {\n return c.done && c.error == null;\n });\n\n if (!(results.length >= _this2.quorum)) {\n _context4.next = 19;\n break;\n }\n\n _result = processFunc(results);\n\n if (!(_result !== undefined)) {\n _context4.next = 15;\n break;\n }\n\n // Shut down any stallers\n configs.forEach(function (c) {\n if (c.staller) {\n c.staller.cancel();\n }\n\n c.cancelled = true;\n });\n return _context4.abrupt(\"return\", {\n v: _result\n });\n\n case 15:\n if (first) {\n _context4.next = 18;\n break;\n }\n\n _context4.next = 18;\n return stall(100).getPromise();\n\n case 18:\n first = false;\n\n case 19:\n // No result, check for errors that should be forwarded\n errors = configs.reduce(function (accum, c) {\n if (!c.done || c.error == null) {\n return accum;\n }\n\n var code = c.error.code;\n\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) {\n accum[code] = {\n error: c.error,\n weight: 0\n };\n }\n\n accum[code].weight += c.weight;\n }\n\n return accum;\n }, {});\n Object.keys(errors).forEach(function (errorCode) {\n var tally = errors[errorCode];\n\n if (tally.weight < _this2.quorum) {\n return;\n } // Shut down any stallers\n\n\n configs.forEach(function (c) {\n if (c.staller) {\n c.staller.cancel();\n }\n\n c.cancelled = true;\n });\n var e = tally.error;\n var props = {};\n ForwardProperties.forEach(function (name) {\n if (e[name] == null) {\n return;\n }\n\n props[name] = e[name];\n });\n logger.throwError(e.reason || e.message, errorCode, props);\n }); // All configs have run to completion; we will never get more data\n\n if (!(configs.filter(function (c) {\n return !c.done;\n }).length === 0)) {\n _context4.next = 23;\n break;\n }\n\n return _context4.abrupt(\"return\", \"break\");\n\n case 23:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n });\n\n case 23:\n if (!true) {\n _context5.next = 32;\n break;\n }\n\n return _context5.delegateYield(_loop(), \"t0\", 25);\n\n case 25:\n _ret = _context5.t0;\n\n if (!(_ret === \"break\")) {\n _context5.next = 28;\n break;\n }\n\n return _context5.abrupt(\"break\", 32);\n\n case 28:\n if (!(_typeof(_ret) === \"object\")) {\n _context5.next = 30;\n break;\n }\n\n return _context5.abrupt(\"return\", _ret.v);\n\n case 30:\n _context5.next = 23;\n break;\n\n case 32:\n // Shut down any stallers; shouldn't be any\n configs.forEach(function (c) {\n if (c.staller) {\n c.staller.cancel();\n }\n\n c.cancelled = true;\n });\n return _context5.abrupt(\"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(function (c) {\n return exposeDebugConfig(c);\n }),\n provider: this\n }));\n\n case 34:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n }\n }]);\n\n return FallbackProvider;\n}(BaseProvider);","\"use strict\";\n\nvar IpcProvider = null;\nexport { IpcProvider };","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nvar defaultProjectId = \"84842078b09946638c03157f83405213\";\nexport var InfuraWebSocketProvider = /*#__PURE__*/function (_WebSocketProvider) {\n _inherits(InfuraWebSocketProvider, _WebSocketProvider);\n\n var _super = _createSuper(InfuraWebSocketProvider);\n\n function InfuraWebSocketProvider(network, apiKey) {\n var _this;\n\n _classCallCheck(this, InfuraWebSocketProvider);\n\n var provider = new InfuraProvider(network, apiKey);\n var connection = provider.connection;\n\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n\n var url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n _this = _super.call(this, url, network);\n defineReadOnly(_assertThisInitialized(_this), \"apiKey\", provider.projectId);\n defineReadOnly(_assertThisInitialized(_this), \"projectId\", provider.projectId);\n defineReadOnly(_assertThisInitialized(_this), \"projectSecret\", provider.projectSecret);\n return _this;\n }\n\n _createClass(InfuraWebSocketProvider, [{\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.projectId === defaultProjectId;\n }\n }]);\n\n return InfuraWebSocketProvider;\n}(WebSocketProvider);\nexport var InfuraProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) {\n _inherits(InfuraProvider, _UrlJsonRpcProvider);\n\n var _super2 = _createSuper(InfuraProvider);\n\n function InfuraProvider() {\n _classCallCheck(this, InfuraProvider);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(InfuraProvider, [{\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.projectId === defaultProjectId;\n }\n }], [{\n key: \"getWebSocketProvider\",\n value: function getWebSocketProvider(network, apiKey) {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n }, {\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n var apiKeyObj = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n\n if (apiKey == null) {\n return apiKeyObj;\n }\n\n if (typeof apiKey === \"string\") {\n apiKeyObj.projectId = apiKey;\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 } else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n\n apiKeyObj.apiKey = apiKeyObj.projectId;\n return apiKeyObj;\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(network, apiKey) {\n var host = null;\n\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n var connection = {\n allowGzip: true,\n url: \"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId,\n throttleCallback: function throttleCallback(attempt, url) {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n\n return connection;\n }\n }]);\n\n return InfuraProvider;\n}(UrlJsonRpcProvider);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\"; // Experimental\n\nexport var JsonRpcBatchProvider = /*#__PURE__*/function (_JsonRpcProvider) {\n _inherits(JsonRpcBatchProvider, _JsonRpcProvider);\n\n var _super = _createSuper(JsonRpcBatchProvider);\n\n function JsonRpcBatchProvider() {\n _classCallCheck(this, JsonRpcBatchProvider);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(JsonRpcBatchProvider, [{\n key: \"send\",\n value: function send(method, params) {\n var _this = this;\n\n var request = {\n method: method,\n params: params,\n id: this._nextId++,\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n\n var inflightRequest = {\n request: request,\n resolve: null,\n reject: null\n };\n var promise = new Promise(function (resolve, reject) {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(function () {\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n var batch = _this._pendingBatch;\n _this._pendingBatch = null;\n _this._pendingBatchAggregator = null; // Get the request as an array of requests\n\n var request = batch.map(function (inflight) {\n return inflight.request;\n });\n\n _this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: _this\n });\n\n return fetchJson(_this.connection, JSON.stringify(request)).then(function (result) {\n _this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: _this\n }); // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n\n\n batch.forEach(function (inflightRequest, index) {\n var payload = result[index];\n\n if (payload.error) {\n var error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n } else {\n inflightRequest.resolve(payload.result);\n }\n });\n }, function (error) {\n _this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: _this\n });\n\n batch.forEach(function (inflightRequest) {\n inflightRequest.reject(error);\n });\n });\n }, 10);\n }\n\n return promise;\n }\n }]);\n\n return JsonRpcBatchProvider;\n}(JsonRpcProvider);","/* istanbul ignore file */\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version); // Special API key provided by Nodesmith for ethers.js\n\nvar defaultApiKey = \"ETHERS_JS_SHARED\";\nexport var NodesmithProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) {\n _inherits(NodesmithProvider, _UrlJsonRpcProvider);\n\n var _super = _createSuper(NodesmithProvider);\n\n function NodesmithProvider() {\n _classCallCheck(this, NodesmithProvider);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NodesmithProvider, null, [{\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n if (apiKey && typeof apiKey !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKey || defaultApiKey;\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(network, apiKey) {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n var host = null;\n\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host + \"?apiKey=\" + apiKey;\n }\n }]);\n\n return NodesmithProvider;\n}(UrlJsonRpcProvider);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nvar defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\nexport var PocketProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) {\n _inherits(PocketProvider, _UrlJsonRpcProvider);\n\n var _super = _createSuper(PocketProvider);\n\n function PocketProvider() {\n _classCallCheck(this, PocketProvider);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PocketProvider, [{\n key: \"isCommunityResource\",\n value: function isCommunityResource() {\n return this.applicationId === defaultApplicationId;\n }\n }], [{\n key: \"getApiKey\",\n value: function getApiKey(apiKey) {\n var apiKeyObj = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n }; // Parse applicationId and applicationSecretKey\n\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n } else if (typeof apiKey === \"string\") {\n apiKeyObj.applicationId = apiKey;\n } else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n } else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n } else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKeyObj;\n }\n }, {\n key: \"getUrl\",\n value: function getUrl(network, apiKey) {\n var host = null;\n\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n var url = \"https://\".concat(host, \"/v1/lb/\").concat(apiKey.applicationId);\n var connection = {\n headers: {},\n url: url\n };\n\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey;\n }\n\n return connection;\n }\n }]);\n\n return PocketProvider;\n}(UrlJsonRpcProvider);","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nvar _nextId = 1;\n\nfunction buildWeb3LegacyFetcher(provider, sendFunc) {\n var fetcher = \"Web3LegacyFetcher\";\n return function (method, params) {\n var _this = this;\n\n var request = {\n method: method,\n params: params,\n id: _nextId++,\n jsonrpc: \"2.0\"\n };\n return new Promise(function (resolve, reject) {\n _this.emit(\"debug\", {\n action: \"request\",\n fetcher: fetcher,\n request: deepCopy(request),\n provider: _this\n });\n\n sendFunc(request, function (error, response) {\n if (error) {\n _this.emit(\"debug\", {\n action: \"response\",\n fetcher: fetcher,\n error: error,\n request: request,\n provider: _this\n });\n\n return reject(error);\n }\n\n _this.emit(\"debug\", {\n action: \"response\",\n fetcher: fetcher,\n request: request,\n response: response,\n provider: _this\n });\n\n if (response.error) {\n var _error = new Error(response.error.message);\n\n _error.code = response.error.code;\n _error.data = response.error.data;\n return reject(_error);\n }\n\n resolve(response.result);\n });\n });\n };\n}\n\nfunction buildEip1193Fetcher(provider) {\n return function (method, params) {\n var _this2 = this;\n\n if (params == null) {\n params = [];\n }\n\n var request = {\n method: method,\n params: params\n };\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n return provider.request(request).then(function (response) {\n _this2.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request: request,\n response: response,\n provider: _this2\n });\n\n return response;\n }, function (error) {\n _this2.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request: request,\n error: error,\n provider: _this2\n });\n\n throw error;\n });\n };\n}\n\nexport var Web3Provider = /*#__PURE__*/function (_JsonRpcProvider) {\n _inherits(Web3Provider, _JsonRpcProvider);\n\n var _super = _createSuper(Web3Provider);\n\n function Web3Provider(provider, network) {\n var _this3;\n\n _classCallCheck(this, Web3Provider);\n\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n\n var path = null;\n var jsonRpcFetchFunc = null;\n var subprovider = null;\n\n if (typeof provider === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n } else {\n path = provider.host || provider.path || \"\";\n\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n\n subprovider = provider;\n\n if (provider.request) {\n if (path === \"\") {\n path = \"eip-1193:\";\n }\n\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n } else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n } else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n } else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n\n if (!path) {\n path = \"unknown:\";\n }\n }\n\n _this3 = _super.call(this, path, network);\n defineReadOnly(_assertThisInitialized(_this3), \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(_assertThisInitialized(_this3), \"provider\", subprovider);\n return _this3;\n }\n\n _createClass(Web3Provider, [{\n key: \"send\",\n value: function send(method, params) {\n return this.jsonRpcFetchFunc(method, params);\n }\n }]);\n\n return Web3Provider;\n}(JsonRpcProvider);","\"use strict\";\n\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\";\nvar logger = new Logger(version); ////////////////////////\n// Helper Functions\n\nfunction getDefaultProvider(network, options) {\n if (network == null) {\n network = \"homestead\";\n } // If passed a URL, figure out the right type of provider based on the scheme\n\n\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 var match = network.match(/^(ws|http)s?:/i);\n\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\":\n case \"https\":\n return new JsonRpcProvider(network);\n\n case \"ws\":\n case \"wss\":\n return new WebSocketProvider(network);\n\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n\n var n = getNetwork(network);\n\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n\n return n._defaultProvider({\n FallbackProvider: FallbackProvider,\n AlchemyProvider: AlchemyProvider,\n AnkrProvider: AnkrProvider,\n CloudflareProvider: CloudflareProvider,\n EtherscanProvider: EtherscanProvider,\n InfuraProvider: InfuraProvider,\n JsonRpcProvider: JsonRpcProvider,\n NodesmithProvider: NodesmithProvider,\n PocketProvider: PocketProvider,\n Web3Provider: Web3Provider,\n IpcProvider: IpcProvider\n }, options);\n} ////////////////////////\n// Exports\n\n\nexport { // Abstract Providers (or Abstract-ish)\nProvider, BaseProvider, Resolver, UrlJsonRpcProvider, ///////////////////////\n// Concrete Providers\nFallbackProvider, AlchemyProvider, AlchemyWebSocketProvider, AnkrProvider, CloudflareProvider, EtherscanProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, JsonRpcBatchProvider, NodesmithProvider, PocketProvider, StaticJsonRpcProvider, Web3Provider, WebSocketProvider, IpcProvider, ///////////////////////\n// Signer\nJsonRpcSigner, ///////////////////////\n// Functions\ngetDefaultProvider, getNetwork, isCommunityResource, isCommunityResourcable, showThrottleMessage, ///////////////////////\n// Objects\nFormatter };","export var version = \"solidity/5.7.0\";","\"use strict\";\n\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\";\nvar regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nvar regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nvar regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\nvar Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\n\nfunction _pack(type, value, isArray) {\n switch (type) {\n case \"address\":\n if (isArray) {\n return zeroPad(value, 32);\n }\n\n return arrayify(value);\n\n case \"string\":\n return toUtf8Bytes(value);\n\n case \"bytes\":\n return arrayify(value);\n\n case \"bool\":\n value = value ? \"0x01\" : \"0x00\";\n\n if (isArray) {\n return zeroPad(value, 32);\n }\n\n return arrayify(value);\n }\n\n var match = type.match(regexNumber);\n\n if (match) {\n //let signed = (match[1] === \"int\")\n var size = parseInt(match[2] || \"256\");\n\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\n if (isArray) {\n size = 256;\n }\n\n value = BigNumber.from(value).toTwos(size);\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n\n if (match) {\n var _size = parseInt(match[1]);\n\n if (String(_size) !== match[1] || _size === 0 || _size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type);\n }\n\n if (arrayify(value).byteLength !== _size) {\n logger.throwArgumentError(\"invalid value for \".concat(type), \"value\", value);\n }\n\n if (isArray) {\n return arrayify((value + Zeros).substring(0, 66));\n }\n\n return value;\n }\n\n match = type.match(regexArray);\n\n if (match && Array.isArray(value)) {\n var baseType = match[1];\n var count = parseInt(match[2] || String(value.length));\n\n if (count != value.length) {\n logger.throwArgumentError(\"invalid array length for \".concat(type), \"value\", value);\n }\n\n var result = [];\n value.forEach(function (value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type);\n} // @TODO: Array Enum\n\n\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\n var 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}","\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\nfunction bytes2(data) {\n if (data.length % 4 !== 0) {\n throw new Error(\"bad data\");\n }\n\n var result = [];\n\n for (var i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n\n return result;\n}\n\nfunction createTable(data, func) {\n if (!func) {\n func = function func(value) {\n return [parseInt(value, 16)];\n };\n }\n\n var lo = 0;\n var result = {};\n data.split(\",\").forEach(function (pair) {\n var comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n return result;\n}\n\nfunction createRangeTable(data) {\n var hi = 0;\n return data.split(\",\").map(function (v) {\n var comps = v.split(\"-\");\n\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n var lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return {\n l: lo,\n h: hi\n };\n });\n}\n\nfunction matchMap(value, ranges) {\n var lo = 0;\n\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n lo += range.l;\n\n if (value >= lo && value <= lo + range.h && (value - lo) % (range.d || 1) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) {\n continue;\n }\n\n return range;\n }\n }\n\n return null;\n}\n\nvar Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\"); // @TODO: Make this relative...\n\nvar Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map(function (v) {\n return parseInt(v, 16);\n});\nvar Table_B_2_ranges = [{\n h: 25,\n s: 32,\n l: 65\n}, {\n h: 30,\n s: 32,\n e: [23],\n l: 127\n}, {\n h: 54,\n s: 1,\n e: [48],\n l: 64,\n d: 2\n}, {\n h: 14,\n s: 1,\n l: 57,\n d: 2\n}, {\n h: 44,\n s: 1,\n l: 17,\n d: 2\n}, {\n h: 10,\n s: 1,\n e: [2, 6, 8],\n l: 61,\n d: 2\n}, {\n h: 16,\n s: 1,\n l: 68,\n d: 2\n}, {\n h: 84,\n s: 1,\n e: [18, 24, 66],\n l: 19,\n d: 2\n}, {\n h: 26,\n s: 32,\n e: [17],\n l: 435\n}, {\n h: 22,\n s: 1,\n l: 71,\n d: 2\n}, {\n h: 15,\n s: 80,\n l: 40\n}, {\n h: 31,\n s: 32,\n l: 16\n}, {\n h: 32,\n s: 1,\n l: 80,\n d: 2\n}, {\n h: 52,\n s: 1,\n l: 42,\n d: 2\n}, {\n h: 12,\n s: 1,\n l: 55,\n d: 2\n}, {\n h: 40,\n s: 1,\n e: [38],\n l: 15,\n d: 2\n}, {\n h: 14,\n s: 1,\n l: 48,\n d: 2\n}, {\n h: 37,\n s: 48,\n l: 49\n}, {\n h: 148,\n s: 1,\n l: 6351,\n d: 2\n}, {\n h: 88,\n s: 1,\n l: 160,\n d: 2\n}, {\n h: 15,\n s: 16,\n l: 704\n}, {\n h: 25,\n s: 26,\n l: 854\n}, {\n h: 25,\n s: 32,\n l: 55915\n}, {\n h: 37,\n s: 40,\n l: 1247\n}, {\n h: 25,\n s: -119711,\n l: 53248\n}, {\n h: 25,\n s: -119763,\n l: 52\n}, {\n h: 25,\n s: -119815,\n l: 52\n}, {\n h: 25,\n s: -119867,\n e: [1, 4, 5, 7, 8, 11, 12, 17],\n l: 52\n}, {\n h: 25,\n s: -119919,\n l: 52\n}, {\n h: 24,\n s: -119971,\n e: [2, 7, 8, 17],\n l: 52\n}, {\n h: 24,\n s: -120023,\n e: [2, 7, 13, 15, 16, 17],\n l: 52\n}, {\n h: 25,\n s: -120075,\n l: 52\n}, {\n h: 25,\n s: -120127,\n l: 52\n}, {\n h: 25,\n s: -120179,\n l: 52\n}, {\n h: 25,\n s: -120231,\n l: 52\n}, {\n h: 25,\n s: -120283,\n l: 52\n}, {\n h: 25,\n s: -120335,\n l: 52\n}, {\n h: 24,\n s: -119543,\n e: [17],\n l: 56\n}, {\n h: 24,\n s: -119601,\n e: [17],\n l: 58\n}, {\n h: 24,\n s: -119659,\n e: [17],\n l: 58\n}, {\n h: 24,\n s: -119717,\n e: [17],\n l: 58\n}, {\n h: 24,\n s: -119775,\n e: [17],\n l: 58\n}];\nvar Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nvar Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nvar Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\nvar Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\nfunction flatten(values) {\n return values.reduce(function (accum, value) {\n value.forEach(function (value) {\n accum.push(value);\n });\n return accum;\n }, []);\n}\n\nexport function _nameprepTableA1(codepoint) {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\nexport function _nameprepTableB2(codepoint) {\n var range = matchMap(codepoint, Table_B_2_ranges);\n\n if (range) {\n return [codepoint + range.s];\n }\n\n var codes = Table_B_2_lut_abs[codepoint];\n\n if (codes) {\n return codes;\n }\n\n var shift = Table_B_2_lut_rel[codepoint];\n\n if (shift) {\n return [codepoint + shift[0]];\n }\n\n var complex = Table_B_2_complex[codepoint];\n\n if (complex) {\n return complex;\n }\n\n return null;\n}\nexport function _nameprepTableC(codepoint) {\n return !!matchMap(codepoint, Table_C_ranges);\n}\nexport function nameprep(value) {\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {\n return value.toLowerCase();\n } // Get the code points (keeping the current normalization)\n\n\n var codes = toUtf8CodePoints(value);\n codes = flatten(codes.map(function (code) {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) {\n return [];\n }\n\n if (code >= 0xfe00 && code <= 0xfe0f) {\n return [];\n } // Substitute Table B.2 (Case Folding)\n\n\n var codesTableB2 = _nameprepTableB2(code);\n\n if (codesTableB2) {\n return codesTableB2;\n } // No Substitution\n\n\n return [code];\n })); // Normalize using form KC\n\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC); // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n\n codes.forEach(function (code) {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n }); // Prohibit Unassigned Code Points (Table A.1)\n\n codes.forEach(function (code) {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n }); // IDNA extras\n\n var name = _toUtf8String(codes); // IDNA: 4.2.3.1\n\n\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}","\"use strict\";\n\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 var bytes = toUtf8Bytes(text); // Check we have room for null-termination\n\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n } // Zero-pad (implicitly null-terminates)\n\n\n return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n var data = arrayify(bytes); // Must be 32 bytes with a null-termination\n\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n } // Find the null termination\n\n\n var length = 31;\n\n while (data[length - 1] === 0) {\n length--;\n } // Determine the string value\n\n\n return toUtf8String(data.slice(0, length));\n}","export var version = \"units/5.7.0\";","\"use strict\";\n\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nvar logger = new Logger(version);\nvar names = [\"wei\", \"kwei\", \"mwei\", \"gwei\", \"szabo\", \"finney\", \"ether\"]; // Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\n\nexport function commify(value) {\n var comps = String(value).split(\".\");\n\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 } // Make sure we have at least one whole digit (0 if none)\n\n\n var whole = comps[0];\n var negative = \"\";\n\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n } // Make sure we have at least 1 whole digit with no leading zeros\n\n\n while (whole.substring(0, 1) === \"0\") {\n whole = whole.substring(1);\n }\n\n if (whole === \"\") {\n whole = \"0\";\n }\n\n var suffix = \"\";\n\n if (comps.length === 2) {\n suffix = \".\" + (comps[1] || \"0\");\n }\n\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n var formatted = [];\n\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n var index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\nexport function formatUnits(value, unitName) {\n if (typeof unitName === \"string\") {\n var index = names.indexOf(unitName);\n\n if (index !== -1) {\n unitName = 3 * index;\n }\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\n if (typeof unitName === \"string\") {\n var index = names.indexOf(unitName);\n\n if (index !== -1) {\n unitName = 3 * index;\n }\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}","export var version = \"ethers/5.7.2\";","\"use strict\";\n\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\nimport * as constants from \"@ethersproject/constants\";\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\nimport * as utils from \"./utils\";\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\"; ////////////////////////\n// Compile-Time Constants\n// This is generated by \"npm run dist\"\n\nimport { version } from \"./_version\";\nvar logger = new Logger(version); ////////////////////////\n// Exports\n\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, ////////////////////////\n// Compile-Time Constants\nversion, Wordlist };","\"use strict\"; // To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\n\nimport * as ethers from \"./ethers\";\n\ntry {\n var anyGlobal = window;\n\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n} catch (error) {}\n\nexport { ethers };\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, ////////////////////////\n// Compile-Time Constants\nversion, Wordlist } from \"./ethers\";","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nimport { request } from '@depay/web3-client';\nimport Blockchains from '@depay/web3-blockchains';\nimport { PublicKey, struct, u32, publicKey, u64, u8, bool, rustEnum, str, u16, option, vec, Buffer, BN, TransactionInstruction, SystemProgram } from '@depay/solana-web3.js';\nimport { ethers } from 'ethers';\n\nvar allowanceOnEVM = function allowanceOnEVM(_ref) {\n var blockchain = _ref.blockchain,\n address = _ref.address,\n api = _ref.api,\n owner = _ref.owner,\n spender = _ref.spender;\n return request({\n blockchain: blockchain,\n address: address,\n api: api,\n method: 'allowance',\n params: [owner, spender] // no cache for allowance!\n\n });\n};\n\nvar balanceOnEVM = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {\n var blockchain, address, account, api, id;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n blockchain = _ref2.blockchain, address = _ref2.address, account = _ref2.account, api = _ref2.api, id = _ref2.id;\n\n if (!(address == Blockchains[blockchain].currency.address)) {\n _context.next = 7;\n break;\n }\n\n _context.next = 4;\n return request({\n blockchain: blockchain,\n address: account,\n method: 'balance'\n });\n\n case 4:\n return _context.abrupt(\"return\", _context.sent);\n\n case 7:\n _context.next = 9;\n return request({\n blockchain: blockchain,\n address: address,\n method: 'balanceOf',\n api: api,\n params: id ? [account, id] : [account]\n });\n\n case 9:\n return _context.abrupt(\"return\", _context.sent);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function balanceOnEVM(_x) {\n return _ref3.apply(this, arguments);\n };\n}();\n\nvar decimalsOnEVM = function decimalsOnEVM(_ref4) {\n var blockchain = _ref4.blockchain,\n address = _ref4.address,\n api = _ref4.api;\n return request({\n blockchain: blockchain,\n address: address,\n api: api,\n method: 'decimals',\n cache: 86400000 // 1 day\n\n });\n};\n\nvar ERC1155 = [{\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }],\n \"name\": \"ApprovalForAll\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"values\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"TransferBatch\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"TransferSingle\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"value\",\n \"type\": \"string\"\n }, {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"URI\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"balanceOf\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"accounts\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"balanceOfBatch\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }],\n \"name\": \"isApprovedForAll\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"safeBatchTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"safeTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }],\n \"name\": \"setApprovalForAll\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes4\",\n \"name\": \"interfaceId\",\n \"type\": \"bytes4\"\n }],\n \"name\": \"supportsInterface\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"uri\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar ERC20 = [{\n constant: true,\n inputs: [],\n name: 'name',\n outputs: [{\n name: '',\n type: 'string'\n }],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n}, {\n constant: false,\n inputs: [{\n name: '_spender',\n type: 'address'\n }, {\n name: '_value',\n type: 'uint256'\n }],\n name: 'approve',\n outputs: [{\n name: '',\n type: 'bool'\n }],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function'\n}, {\n constant: true,\n inputs: [],\n name: 'totalSupply',\n outputs: [{\n name: '',\n type: 'uint256'\n }],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n}, {\n constant: false,\n inputs: [{\n name: '_from',\n type: 'address'\n }, {\n name: '_to',\n type: 'address'\n }, {\n name: '_value',\n type: 'uint256'\n }],\n name: 'transferFrom',\n outputs: [{\n name: '',\n type: 'bool'\n }],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function'\n}, {\n constant: true,\n inputs: [],\n name: 'decimals',\n outputs: [{\n name: '',\n type: 'uint8'\n }],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n}, {\n constant: true,\n inputs: [{\n name: '_owner',\n type: 'address'\n }],\n name: 'balanceOf',\n outputs: [{\n name: 'balance',\n type: 'uint256'\n }],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n}, {\n constant: true,\n inputs: [],\n name: 'symbol',\n outputs: [{\n name: '',\n type: 'string'\n }],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n}, {\n constant: false,\n inputs: [{\n name: '_to',\n type: 'address'\n }, {\n name: '_value',\n type: 'uint256'\n }],\n name: 'transfer',\n outputs: [{\n name: '',\n type: 'bool'\n }],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function'\n}, {\n constant: true,\n inputs: [{\n name: '_owner',\n type: 'address'\n }, {\n name: '_spender',\n type: 'address'\n }],\n name: 'allowance',\n outputs: [{\n name: '',\n type: 'uint256'\n }],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n}, {\n payable: true,\n stateMutability: 'payable',\n type: 'fallback'\n}, {\n anonymous: false,\n inputs: [{\n indexed: true,\n name: 'owner',\n type: 'address'\n }, {\n indexed: true,\n name: 'spender',\n type: 'address'\n }, {\n indexed: false,\n name: 'value',\n type: 'uint256'\n }],\n name: 'Approval',\n type: 'event'\n}, {\n anonymous: false,\n inputs: [{\n indexed: true,\n name: 'from',\n type: 'address'\n }, {\n indexed: true,\n name: 'to',\n type: 'address'\n }, {\n indexed: false,\n name: 'value',\n type: 'uint256'\n }],\n name: 'Transfer',\n type: 'event'\n}];\nvar WETH = [{\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"guy\",\n \"type\": \"address\"\n }, {\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"approve\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"withdraw\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint8\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"balanceOf\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"transfer\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [],\n \"name\": \"deposit\",\n \"outputs\": [],\n \"payable\": true,\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"allowance\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"payable\": true,\n \"stateMutability\": \"payable\",\n \"type\": \"fallback\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"name\": \"guy\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Approval\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Transfer\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Deposit\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Withdrawal\",\n \"type\": \"event\"\n}];\nvar uriAPI = [{\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }],\n \"name\": \"uri\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\n\nvar uriToName = function uriToName(tokenURI) {\n return new Promise(function (resolve) {\n if (tokenURI.match(/^ipfs/)) {\n tokenURI = \"https://ipfs.io/ipfs/\".concat(tokenURI.split('://')[1]);\n }\n\n fetch(tokenURI).then(function (response) {\n if (response.ok) {\n return response.json();\n }\n\n resolve();\n }).then(function (responseJson) {\n if (responseJson) {\n var name = responseJson.name;\n\n if (name) {\n resolve(name);\n } else {\n resolve();\n }\n }\n }).catch(function () {\n return resolve();\n });\n });\n};\n\nvar nameOnEVM = function nameOnEVM(_ref5) {\n var blockchain = _ref5.blockchain,\n address = _ref5.address,\n api = _ref5.api,\n id = _ref5.id;\n\n if (id) {\n return new Promise(function (resolve) {\n request({\n blockchain: blockchain,\n address: address,\n api: uriAPI,\n method: 'uri',\n params: [id]\n }).then(function (uri) {\n uri = uri.match('0x{id}') ? uri.replace('0x{id}', id) : uri;\n uriToName(uri).then(resolve);\n }).catch(function (error) {\n console.log('error', error);\n resolve();\n });\n });\n } else {\n return request({\n blockchain: blockchain,\n address: address,\n api: api,\n method: 'name',\n cache: 86400000 // 1 day\n\n });\n }\n};\n\nvar symbolOnEVM = function symbolOnEVM(_ref6) {\n var blockchain = _ref6.blockchain,\n address = _ref6.address,\n api = _ref6.api;\n return request({\n blockchain: blockchain,\n address: address,\n api: api,\n method: 'symbol',\n cache: 86400000 // 1 day\n\n });\n};\n\nvar TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';\nvar ASSOCIATED_TOKEN_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';\n\nfunction _optionalChain$4(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_value = value).call.apply(_value, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar findProgramAddress = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref7) {\n var token, owner, _yield$PublicKey$find, _yield$PublicKey$find2, address;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n token = _ref7.token, owner = _ref7.owner;\n _context2.next = 3;\n return PublicKey.findProgramAddress([new PublicKey(owner).toBuffer(), new PublicKey(TOKEN_PROGRAM).toBuffer(), new PublicKey(token).toBuffer()], new PublicKey(ASSOCIATED_TOKEN_PROGRAM));\n\n case 3:\n _yield$PublicKey$find = _context2.sent;\n _yield$PublicKey$find2 = _slicedToArray(_yield$PublicKey$find, 1);\n address = _yield$PublicKey$find2[0];\n return _context2.abrupt(\"return\", _optionalChain$4([address, 'optionalAccess', function (_) {\n return _.toString;\n }, 'call', function (_2) {\n return _2();\n }]));\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function findProgramAddress(_x2) {\n return _ref8.apply(this, arguments);\n };\n}();\n\nvar MINT_LAYOUT = struct([u32('mintAuthorityOption'), publicKey('mintAuthority'), u64('supply'), u8('decimals'), bool('isInitialized'), u32('freezeAuthorityOption'), publicKey('freezeAuthority')]);\nvar KEY_LAYOUT = rustEnum([struct([], 'uninitialized'), struct([], 'editionV1'), struct([], 'masterEditionV1'), struct([], 'reservationListV1'), struct([], 'metadataV1'), struct([], 'reservationListV2'), struct([], 'masterEditionV2'), struct([], 'editionMarker')]);\nvar CREATOR_LAYOUT = struct([publicKey('address'), bool('verified'), u8('share')]);\nvar DATA_LAYOUT = struct([str('name'), str('symbol'), str('uri'), u16('sellerFeeBasisPoints'), option(vec(CREATOR_LAYOUT.replicate('creators')), 'creators')]);\nvar METADATA_LAYOUT = struct([KEY_LAYOUT.replicate('key'), publicKey('updateAuthority'), publicKey('mint'), DATA_LAYOUT.replicate('data'), bool('primarySaleHappened'), bool('isMutable'), option(u8(), 'editionNonce')]);\nvar TRANSFER_LAYOUT = struct([u8('instruction'), u64('amount')]);\nvar TOKEN_LAYOUT = struct([publicKey('mint'), publicKey('owner'), u64('amount'), u32('delegateOption'), publicKey('delegate'), u8('state'), u32('isNativeOption'), u64('isNative'), u64('delegatedAmount'), u32('closeAuthorityOption'), publicKey('closeAuthority')]);\nvar INITIALIZE_LAYOUT = struct([u8('instruction'), publicKey('owner')]);\nvar CLOSE_LAYOUT = struct([u8('instruction')]);\n\nvar createTransferInstruction = /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref9) {\n var token, amount, from, to, fromTokenAccount, toTokenAccount, keys, data;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n token = _ref9.token, amount = _ref9.amount, from = _ref9.from, to = _ref9.to;\n _context3.next = 3;\n return findProgramAddress({\n token: token,\n owner: from\n });\n\n case 3:\n fromTokenAccount = _context3.sent;\n _context3.next = 6;\n return findProgramAddress({\n token: token,\n owner: to\n });\n\n case 6:\n toTokenAccount = _context3.sent;\n keys = [{\n pubkey: new PublicKey(fromTokenAccount),\n isSigner: false,\n isWritable: true\n }, {\n pubkey: new PublicKey(toTokenAccount),\n isSigner: false,\n isWritable: true\n }, {\n pubkey: new PublicKey(from),\n isSigner: true,\n isWritable: false\n }];\n data = Buffer.alloc(TRANSFER_LAYOUT.span);\n TRANSFER_LAYOUT.encode({\n instruction: 3,\n // TRANSFER\n amount: new BN(amount)\n }, data);\n return _context3.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(TOKEN_PROGRAM),\n data: data\n }));\n\n case 11:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function createTransferInstruction(_x3) {\n return _ref10.apply(this, arguments);\n };\n}();\n\nvar createAssociatedTokenAccountInstruction = /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref11) {\n var token, owner, payer, associatedToken, keys;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n token = _ref11.token, owner = _ref11.owner, payer = _ref11.payer;\n _context4.next = 3;\n return findProgramAddress({\n token: token,\n owner: owner\n });\n\n case 3:\n associatedToken = _context4.sent;\n keys = [{\n pubkey: new PublicKey(payer),\n isSigner: true,\n isWritable: true\n }, {\n pubkey: new PublicKey(associatedToken),\n isSigner: false,\n isWritable: true\n }, {\n pubkey: new PublicKey(owner),\n isSigner: false,\n isWritable: false\n }, {\n pubkey: new PublicKey(token),\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: new PublicKey(TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n }];\n return _context4.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(ASSOCIATED_TOKEN_PROGRAM),\n data: Buffer.alloc(0)\n }));\n\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function createAssociatedTokenAccountInstruction(_x4) {\n return _ref12.apply(this, arguments);\n };\n}();\n\nvar initializeAccountInstruction = function initializeAccountInstruction(_ref13) {\n var account = _ref13.account,\n token = _ref13.token,\n owner = _ref13.owner;\n var keys = [{\n pubkey: new PublicKey(account),\n isSigner: false,\n isWritable: true\n }, {\n pubkey: new PublicKey(token),\n isSigner: false,\n isWritable: false\n }];\n var data = Buffer.alloc(INITIALIZE_LAYOUT.span);\n INITIALIZE_LAYOUT.encode({\n instruction: 18,\n // InitializeAccount3\n owner: new PublicKey(owner)\n }, data);\n return new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(TOKEN_PROGRAM),\n data: data\n });\n};\n\nvar closeAccountInstruction = function closeAccountInstruction(_ref14) {\n var account = _ref14.account,\n owner = _ref14.owner;\n var keys = [{\n pubkey: new PublicKey(account),\n isSigner: false,\n isWritable: true\n }, {\n pubkey: new PublicKey(owner),\n isSigner: false,\n isWritable: true\n }, {\n pubkey: new PublicKey(owner),\n isSigner: true,\n isWritable: false\n }];\n var data = Buffer.alloc(CLOSE_LAYOUT.span);\n CLOSE_LAYOUT.encode({\n instruction: 9 // CloseAccount\n\n }, data);\n return new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(TOKEN_PROGRAM),\n data: data\n });\n};\n\nvar instructions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createTransferInstruction: createTransferInstruction,\n createAssociatedTokenAccountInstruction: createAssociatedTokenAccountInstruction,\n initializeAccountInstruction: initializeAccountInstruction,\n closeAccountInstruction: closeAccountInstruction\n});\n\nvar balanceOnSolana = /*#__PURE__*/function () {\n var _ref16 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref15) {\n var blockchain, address, account, api, tokenAccountAddress, balance;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n blockchain = _ref15.blockchain, address = _ref15.address, account = _ref15.account, api = _ref15.api;\n\n if (!(address == Blockchains[blockchain].currency.address)) {\n _context5.next = 9;\n break;\n }\n\n _context5.t0 = ethers.BigNumber;\n _context5.next = 5;\n return request(\"solana://\".concat(account, \"/balance\"));\n\n case 5:\n _context5.t1 = _context5.sent;\n return _context5.abrupt(\"return\", _context5.t0.from.call(_context5.t0, _context5.t1));\n\n case 9:\n _context5.next = 11;\n return findProgramAddress({\n token: address,\n owner: account\n });\n\n case 11:\n tokenAccountAddress = _context5.sent;\n _context5.next = 14;\n return request(\"solana://\".concat(tokenAccountAddress, \"/getTokenAccountBalance\"));\n\n case 14:\n balance = _context5.sent;\n\n if (!balance) {\n _context5.next = 19;\n break;\n }\n\n return _context5.abrupt(\"return\", ethers.BigNumber.from(balance.value.amount));\n\n case 19:\n return _context5.abrupt(\"return\", ethers.BigNumber.from('0'));\n\n case 20:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function balanceOnSolana(_x5) {\n return _ref16.apply(this, arguments);\n };\n}();\n\nvar decimalsOnSolana = /*#__PURE__*/function () {\n var _ref18 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref17) {\n var blockchain, address, data;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n blockchain = _ref17.blockchain, address = _ref17.address;\n _context6.next = 3;\n return request({\n blockchain: blockchain,\n address: address,\n api: MINT_LAYOUT\n });\n\n case 3:\n data = _context6.sent;\n return _context6.abrupt(\"return\", data.decimals);\n\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function decimalsOnSolana(_x6) {\n return _ref18.apply(this, arguments);\n };\n}();\n\nvar findAccount = /*#__PURE__*/function () {\n var _ref20 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref19) {\n var token, owner, address, existingAccount;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n token = _ref19.token, owner = _ref19.owner;\n _context7.next = 3;\n return findProgramAddress({\n token: token,\n owner: owner\n });\n\n case 3:\n address = _context7.sent;\n _context7.next = 6;\n return request({\n blockchain: 'solana',\n address: address,\n api: TOKEN_LAYOUT,\n cache: 1000 // 1s\n\n });\n\n case 6:\n existingAccount = _context7.sent;\n return _context7.abrupt(\"return\", existingAccount);\n\n case 8:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n\n return function findAccount(_x7) {\n return _ref20.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$3(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return (_value2 = value).call.apply(_value2, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar METADATA_ACCOUNT = 'metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s';\nvar METADATA_REPLACE = new RegExp(\"\\0\", 'g');\n\nvar getMetaDataPDA = /*#__PURE__*/function () {\n var _ref22 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(_ref21) {\n var metaDataPublicKey, mintPublicKey, seed;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n metaDataPublicKey = _ref21.metaDataPublicKey, mintPublicKey = _ref21.mintPublicKey;\n seed = [Buffer.from('metadata'), metaDataPublicKey.toBuffer(), mintPublicKey.toBuffer()];\n _context8.next = 4;\n return PublicKey.findProgramAddress(seed, metaDataPublicKey);\n\n case 4:\n return _context8.abrupt(\"return\", _context8.sent[0]);\n\n case 5:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function getMetaDataPDA(_x8) {\n return _ref22.apply(this, arguments);\n };\n}();\n\nvar getMetaData = /*#__PURE__*/function () {\n var _ref24 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(_ref23) {\n var blockchain, address, mintPublicKey, metaDataPublicKey, tokenMetaDataPublicKey, metaData;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n blockchain = _ref23.blockchain, address = _ref23.address;\n mintPublicKey = new PublicKey(address);\n metaDataPublicKey = new PublicKey(METADATA_ACCOUNT);\n _context9.next = 5;\n return getMetaDataPDA({\n metaDataPublicKey: metaDataPublicKey,\n mintPublicKey: mintPublicKey\n });\n\n case 5:\n tokenMetaDataPublicKey = _context9.sent;\n _context9.next = 8;\n return request({\n blockchain: blockchain,\n address: tokenMetaDataPublicKey.toString(),\n api: METADATA_LAYOUT,\n cache: 86400000 // 1 day\n\n });\n\n case 8:\n metaData = _context9.sent;\n return _context9.abrupt(\"return\", {\n name: _optionalChain$3([metaData, 'optionalAccess', function (_) {\n return _.data;\n }, 'optionalAccess', function (_2) {\n return _2.name;\n }, 'optionalAccess', function (_3) {\n return _3.replace;\n }, 'call', function (_4) {\n return _4(METADATA_REPLACE, '');\n }]),\n symbol: _optionalChain$3([metaData, 'optionalAccess', function (_5) {\n return _5.data;\n }, 'optionalAccess', function (_6) {\n return _6.symbol;\n }, 'optionalAccess', function (_7) {\n return _7.replace;\n }, 'call', function (_8) {\n return _8(METADATA_REPLACE, '');\n }])\n });\n\n case 10:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function getMetaData(_x9) {\n return _ref24.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$2(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value3;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_value3 = value).call.apply(_value3, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar nameOnSolana = /*#__PURE__*/function () {\n var _ref26 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref25) {\n var blockchain, address, metaData;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n blockchain = _ref25.blockchain, address = _ref25.address;\n _context10.next = 3;\n return getMetaData({\n blockchain: blockchain,\n address: address\n });\n\n case 3:\n metaData = _context10.sent;\n return _context10.abrupt(\"return\", _optionalChain$2([metaData, 'optionalAccess', function (_) {\n return _.name;\n }]));\n\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function nameOnSolana(_x10) {\n return _ref26.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$1(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value4;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return (_value4 = value).call.apply(_value4, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar symbolOnSolana = /*#__PURE__*/function () {\n var _ref28 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(_ref27) {\n var blockchain, address, metaData;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n blockchain = _ref27.blockchain, address = _ref27.address;\n _context11.next = 3;\n return getMetaData({\n blockchain: blockchain,\n address: address\n });\n\n case 3:\n metaData = _context11.sent;\n return _context11.abrupt(\"return\", _optionalChain$1([metaData, 'optionalAccess', function (_) {\n return _.symbol;\n }]));\n\n case 5:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n\n return function symbolOnSolana(_x11) {\n return _ref28.apply(this, arguments);\n };\n}();\n\nvar supported = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.solana = ['solana'];\n\nfunction _optionalChain(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value5;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return (_value5 = value).call.apply(_value5, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Token = /*#__PURE__*/function () {\n function Token(_ref29) {\n var blockchain = _ref29.blockchain,\n address = _ref29.address;\n\n _classCallCheck(this, Token);\n\n this.blockchain = blockchain;\n\n if (supported.evm.includes(this.blockchain)) {\n this.address = ethers.utils.getAddress(address);\n } else if (supported.solana.includes(this.blockchain)) {\n this.address = address;\n }\n }\n\n _createClass(Token, [{\n key: \"decimals\",\n value: function () {\n var _decimals = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12() {\n var decimals;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n if (!(this.address == Blockchains.findByName(this.blockchain).currency.address)) {\n _context12.next = 2;\n break;\n }\n\n return _context12.abrupt(\"return\", Blockchains.findByName(this.blockchain).currency.decimals);\n\n case 2:\n _context12.prev = 2;\n\n if (!supported.evm.includes(this.blockchain)) {\n _context12.next = 9;\n break;\n }\n\n _context12.next = 6;\n return decimalsOnEVM({\n blockchain: this.blockchain,\n address: this.address,\n api: Token[this.blockchain].DEFAULT\n });\n\n case 6:\n decimals = _context12.sent;\n _context12.next = 13;\n break;\n\n case 9:\n if (!supported.solana.includes(this.blockchain)) {\n _context12.next = 13;\n break;\n }\n\n _context12.next = 12;\n return decimalsOnSolana({\n blockchain: this.blockchain,\n address: this.address\n });\n\n case 12:\n decimals = _context12.sent;\n\n case 13:\n _context12.next = 17;\n break;\n\n case 15:\n _context12.prev = 15;\n _context12.t0 = _context12[\"catch\"](2);\n\n case 17:\n return _context12.abrupt(\"return\", decimals);\n\n case 18:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this, [[2, 15]]);\n }));\n\n function decimals() {\n return _decimals.apply(this, arguments);\n }\n\n return decimals;\n }()\n }, {\n key: \"symbol\",\n value: function () {\n var _symbol = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13() {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (!(this.address == Blockchains.findByName(this.blockchain).currency.address)) {\n _context13.next = 2;\n break;\n }\n\n return _context13.abrupt(\"return\", Blockchains.findByName(this.blockchain).currency.symbol);\n\n case 2:\n if (!supported.evm.includes(this.blockchain)) {\n _context13.next = 8;\n break;\n }\n\n _context13.next = 5;\n return symbolOnEVM({\n blockchain: this.blockchain,\n address: this.address,\n api: Token[this.blockchain].DEFAULT\n });\n\n case 5:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 8:\n if (!supported.solana.includes(this.blockchain)) {\n _context13.next = 12;\n break;\n }\n\n _context13.next = 11;\n return symbolOnSolana({\n blockchain: this.blockchain,\n address: this.address\n });\n\n case 11:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 12:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function symbol() {\n return _symbol.apply(this, arguments);\n }\n\n return symbol;\n }()\n }, {\n key: \"name\",\n value: function () {\n var _name = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(args) {\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n if (!(this.address == Blockchains.findByName(this.blockchain).currency.address)) {\n _context14.next = 2;\n break;\n }\n\n return _context14.abrupt(\"return\", Blockchains.findByName(this.blockchain).currency.name);\n\n case 2:\n if (!supported.evm.includes(this.blockchain)) {\n _context14.next = 8;\n break;\n }\n\n _context14.next = 5;\n return nameOnEVM({\n blockchain: this.blockchain,\n address: this.address,\n api: Token[this.blockchain].DEFAULT,\n id: _optionalChain([args, 'optionalAccess', function (_) {\n return _.id;\n }])\n });\n\n case 5:\n return _context14.abrupt(\"return\", _context14.sent);\n\n case 8:\n if (!supported.solana.includes(this.blockchain)) {\n _context14.next = 12;\n break;\n }\n\n _context14.next = 11;\n return nameOnSolana({\n blockchain: this.blockchain,\n address: this.address\n });\n\n case 11:\n return _context14.abrupt(\"return\", _context14.sent);\n\n case 12:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function name(_x12) {\n return _name.apply(this, arguments);\n }\n\n return name;\n }()\n }, {\n key: \"balance\",\n value: function () {\n var _balance = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(account, id) {\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n if (!supported.evm.includes(this.blockchain)) {\n _context15.next = 6;\n break;\n }\n\n _context15.next = 3;\n return balanceOnEVM({\n blockchain: this.blockchain,\n account: account,\n address: this.address,\n api: id ? Token[this.blockchain][1155] : Token[this.blockchain].DEFAULT,\n id: id\n });\n\n case 3:\n return _context15.abrupt(\"return\", _context15.sent);\n\n case 6:\n if (!supported.solana.includes(this.blockchain)) {\n _context15.next = 10;\n break;\n }\n\n _context15.next = 9;\n return balanceOnSolana({\n blockchain: this.blockchain,\n account: account,\n address: this.address,\n api: Token[this.blockchain].DEFAULT\n });\n\n case 9:\n return _context15.abrupt(\"return\", _context15.sent);\n\n case 10:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function balance(_x13, _x14) {\n return _balance.apply(this, arguments);\n }\n\n return balance;\n }()\n }, {\n key: \"allowance\",\n value: function () {\n var _allowance = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(owner, spender) {\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n if (!(this.address == Blockchains.findByName(this.blockchain).currency.address)) {\n _context16.next = 2;\n break;\n }\n\n return _context16.abrupt(\"return\", ethers.BigNumber.from(Blockchains.findByName(this.blockchain).maxInt));\n\n case 2:\n if (!supported.evm.includes(this.blockchain)) {\n _context16.next = 8;\n break;\n }\n\n _context16.next = 5;\n return allowanceOnEVM({\n blockchain: this.blockchain,\n address: this.address,\n api: Token[this.blockchain].DEFAULT,\n owner: owner,\n spender: spender\n });\n\n case 5:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 8:\n if (!supported.solana.includes(this.blockchain)) {\n _context16.next = 10;\n break;\n }\n\n return _context16.abrupt(\"return\", ethers.BigNumber.from(Blockchains.findByName(this.blockchain).maxInt));\n\n case 10:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function allowance(_x15, _x16) {\n return _allowance.apply(this, arguments);\n }\n\n return allowance;\n }()\n }, {\n key: \"BigNumber\",\n value: function () {\n var _BigNumber = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(amount) {\n var decimals;\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n _context17.next = 2;\n return this.decimals();\n\n case 2:\n decimals = _context17.sent;\n return _context17.abrupt(\"return\", ethers.utils.parseUnits(Token.safeAmount({\n amount: parseFloat(amount),\n decimals: decimals\n }).toString(), decimals));\n\n case 4:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function BigNumber(_x17) {\n return _BigNumber.apply(this, arguments);\n }\n\n return BigNumber;\n }()\n }, {\n key: \"readable\",\n value: function () {\n var _readable = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(amount) {\n var decimals, readable;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n _context18.next = 2;\n return this.decimals();\n\n case 2:\n decimals = _context18.sent;\n readable = ethers.utils.formatUnits(amount.toString(), decimals);\n readable = readable.replace(/\\.0+$/, '');\n return _context18.abrupt(\"return\", readable);\n\n case 6:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function readable(_x18) {\n return _readable.apply(this, arguments);\n }\n\n return readable;\n }()\n }]);\n\n return Token;\n}();\n\nToken.BigNumber = /*#__PURE__*/function () {\n var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(_ref30) {\n var amount, blockchain, address, token;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n amount = _ref30.amount, blockchain = _ref30.blockchain, address = _ref30.address;\n token = new Token({\n blockchain: blockchain,\n address: address\n });\n return _context19.abrupt(\"return\", token.BigNumber(amount));\n\n case 3:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19);\n }));\n\n return function (_x19) {\n return _ref31.apply(this, arguments);\n };\n}();\n\nToken.readable = /*#__PURE__*/function () {\n var _ref33 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref32) {\n var amount, blockchain, address, token;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n amount = _ref32.amount, blockchain = _ref32.blockchain, address = _ref32.address;\n token = new Token({\n blockchain: blockchain,\n address: address\n });\n return _context20.abrupt(\"return\", token.readable(amount));\n\n case 3:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20);\n }));\n\n return function (_x20) {\n return _ref33.apply(this, arguments);\n };\n}();\n\nToken.safeAmount = function (_ref34) {\n var amount = _ref34.amount,\n decimals = _ref34.decimals;\n return parseFloat(amount.toFixed(decimals));\n};\n\nToken.ethereum = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.bsc = {\n DEFAULT: ERC20,\n BEP20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.polygon = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.fantom = {\n DEFAULT: ERC20,\n FTM20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.arbitrum = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.avalanche = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n ARC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.gnosis = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.optimism = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.base = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.worldchain = {\n DEFAULT: ERC20,\n ERC20: ERC20,\n 20: ERC20,\n 1155: ERC1155,\n WRAPPED: WETH\n};\nToken.solana = _objectSpread({\n MINT_LAYOUT: MINT_LAYOUT,\n METADATA_LAYOUT: METADATA_LAYOUT,\n TRANSFER_LAYOUT: TRANSFER_LAYOUT,\n METADATA_ACCOUNT: METADATA_ACCOUNT,\n TOKEN_PROGRAM: TOKEN_PROGRAM,\n TOKEN_LAYOUT: TOKEN_LAYOUT,\n ASSOCIATED_TOKEN_PROGRAM: ASSOCIATED_TOKEN_PROGRAM,\n findProgramAddress: findProgramAddress,\n findAccount: findAccount,\n getMetaData: getMetaData,\n getMetaDataPDA: getMetaDataPDA\n}, instructions);\nexport { Token as default };","function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, void 0, groups); }; var _super = RegExp.prototype, _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = new RegExp(re, flags); return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype); } function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { return groups[name] = result[g[name]], groups; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); return result && (result.groups = buildGroups(result, this)), result; }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if (\"string\" == typeof substitution) { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) { return \"$\" + groups[name]; })); } if (\"function\" == typeof substitution) { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = arguments; return \"object\" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); }); } return _super[Symbol.replace].call(this, str, substitution); }, _wrapRegExp.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { Connection, Buffer, PublicKey, TransactionInstruction, TransactionMessage, VersionedTransaction, ACCOUNT_LAYOUT } from '@depay/solana-web3.js';\nimport Blockchains from '@depay/web3-blockchains';\nimport { ethers } from 'ethers';\n\nvar _window;\n\nvar getWindow = function getWindow() {\n if (_window) {\n return _window;\n }\n\n if ((typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object') {\n _window = global;\n } else {\n _window = window;\n }\n\n return _window;\n};\n\nvar getConfiguration = function getConfiguration() {\n if (getWindow()._Web3ClientConfiguration === undefined) {\n getWindow()._Web3ClientConfiguration = {};\n }\n\n return getWindow()._Web3ClientConfiguration;\n};\n\nvar setConfiguration = function setConfiguration(configuration) {\n getWindow()._Web3ClientConfiguration = !!configuration ? configuration : {};\n return getWindow()._Web3ClientConfiguration;\n};\n\nfunction _optionalChain$5(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_value = value).call.apply(_value, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar BATCH_INTERVAL$1 = 10;\nvar CHUNK_SIZE$1 = 50;\nvar MAX_RETRY$1 = 5;\n\nvar StaticJsonRpcBatchProvider = /*#__PURE__*/function (_ethers$providers$Jso) {\n _inherits(StaticJsonRpcBatchProvider, _ethers$providers$Jso);\n\n var _super = _createSuper(StaticJsonRpcBatchProvider);\n\n function StaticJsonRpcBatchProvider(url, network, endpoints, failover) {\n var _this;\n\n _classCallCheck(this, StaticJsonRpcBatchProvider);\n\n _this = _super.call(this, url);\n _this._network = network;\n _this._endpoint = url;\n _this._endpoints = endpoints;\n _this._failover = failover;\n _this._pendingBatch = [];\n return _this;\n }\n\n _createClass(StaticJsonRpcBatchProvider, [{\n key: \"handleError\",\n value: function handleError(error, attempt, chunk) {\n if (attempt < MAX_RETRY$1 && error) {\n var index = this._endpoints.indexOf(this._endpoint) + 1;\n\n this._failover();\n\n this._endpoint = index >= this._endpoints.length ? this._endpoints[0] : this._endpoints[index];\n this.requestChunk(chunk, this._endpoint, attempt + 1);\n } else {\n chunk.forEach(function (inflightRequest) {\n inflightRequest.reject(error);\n });\n }\n }\n }, {\n key: \"detectNetwork\",\n value: function detectNetwork() {\n return Promise.resolve(Blockchains.findByName(this._network).id);\n }\n }, {\n key: \"batchRequest\",\n value: function batchRequest(batch, attempt) {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n if (batch.length === 0) resolve([]); // Do nothing if requests is empty\n\n fetch(_this2._endpoint, {\n method: 'POST',\n body: JSON.stringify(batch),\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n }).then(function (response) {\n if (response.ok) {\n response.json().then(function (parsedJson) {\n if (parsedJson.find(function (entry) {\n return _optionalChain$5([entry, 'optionalAccess', function (_) {\n return _.error;\n }]) && [-32062, -32016].includes(_optionalChain$5([entry, 'optionalAccess', function (_2) {\n return _2.error;\n }, 'optionalAccess', function (_3) {\n return _3.code;\n }]));\n })) {\n if (attempt < MAX_RETRY$1) {\n reject('Error in batch found!');\n } else {\n resolve(parsedJson);\n }\n } else {\n resolve(parsedJson);\n }\n }).catch(reject);\n } else {\n reject(\"\".concat(response.status, \" \").concat(response.text));\n }\n }).catch(reject);\n });\n }\n }, {\n key: \"requestChunk\",\n value: function requestChunk(chunk, endpoint, attempt) {\n var _this3 = this;\n\n var batch = chunk.map(function (inflight) {\n return inflight.request;\n });\n\n try {\n return this.batchRequest(batch, attempt).then(function (result) {\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n chunk.forEach(function (inflightRequest, index) {\n var payload = result[index];\n\n if (_optionalChain$5([payload, 'optionalAccess', function (_4) {\n return _4.error;\n }])) {\n var error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n } else if (_optionalChain$5([payload, 'optionalAccess', function (_5) {\n return _5.result;\n }])) {\n inflightRequest.resolve(payload.result);\n } else {\n inflightRequest.reject();\n }\n });\n }).catch(function (error) {\n return _this3.handleError(error, attempt, chunk);\n });\n } catch (error) {\n this.handleError(error, attempt, chunk);\n }\n }\n }, {\n key: \"send\",\n value: function send(method, params) {\n var _this4 = this;\n\n var request = {\n method: method,\n params: params,\n id: this._nextId++,\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n\n var inflightRequest = {\n request: request,\n resolve: null,\n reject: null\n };\n var promise = new Promise(function (resolve, reject) {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(function () {\n // Get the current batch and clear it, so new requests\n // go into the next batch\n var batch = _this4._pendingBatch;\n _this4._pendingBatch = [];\n _this4._pendingBatchAggregator = null; // Prepare Chunks of CHUNK_SIZE\n\n var chunks = [];\n\n for (var i = 0; i < Math.ceil(batch.length / CHUNK_SIZE$1); i++) {\n chunks[i] = batch.slice(i * CHUNK_SIZE$1, (i + 1) * CHUNK_SIZE$1);\n }\n\n chunks.forEach(function (chunk) {\n // Get the request as an array of requests\n chunk.map(function (inflight) {\n return inflight.request;\n });\n return _this4.requestChunk(chunk, _this4._endpoint, 1);\n });\n }, getConfiguration().batchInterval || BATCH_INTERVAL$1);\n }\n\n return promise;\n }\n }]);\n\n return StaticJsonRpcBatchProvider;\n}(ethers.providers.JsonRpcProvider);\n\nfunction _optionalChain$4(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return (_value2 = value).call.apply(_value2, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getAllProviders$1 = function getAllProviders$1() {\n if (getWindow()._Web3ClientProviders == undefined) {\n getWindow()._Web3ClientProviders = {};\n }\n\n return getWindow()._Web3ClientProviders;\n};\n\nvar setProvider$2 = function setProvider$2(blockchain, provider) {\n if (provider == undefined) {\n return;\n }\n\n if (getAllProviders$1()[blockchain] === undefined) {\n getAllProviders$1()[blockchain] = [];\n }\n\n var index = getAllProviders$1()[blockchain].indexOf(provider);\n\n if (index > -1) {\n getAllProviders$1()[blockchain].splice(index, 1);\n }\n\n getAllProviders$1()[blockchain].unshift(provider);\n};\n\nvar setProviderEndpoints$2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(blockchain, endpoints) {\n var detectFastest,\n provider,\n window,\n responseTimes,\n fastestResponse,\n fastestIndex,\n _args2 = arguments;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n detectFastest = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : true;\n getAllProviders$1()[blockchain] = endpoints.map(function (endpoint, index) {\n return new StaticJsonRpcBatchProvider(endpoint, blockchain, endpoints, function () {\n if (getAllProviders$1()[blockchain].length === 1) {\n setProviderEndpoints$2(blockchain, endpoints, detectFastest);\n } else {\n getAllProviders$1()[blockchain].splice(index, 1);\n }\n });\n });\n window = getWindow();\n\n if (!(window.fetch == undefined || typeof process != 'undefined' && process['env'] && process['env']['NODE_ENV'] == 'test' || typeof window.cy != 'undefined' || detectFastest === false)) {\n _context2.next = 7;\n break;\n }\n\n provider = getAllProviders$1()[blockchain][0];\n _context2.next = 13;\n break;\n\n case 7:\n _context2.next = 9;\n return Promise.all(endpoints.map(function (endpoint) {\n return new Promise( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {\n var timeout, before, response, after;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n timeout = 900;\n before = new Date().getTime();\n setTimeout(function () {\n return resolve(timeout);\n }, timeout);\n _context.prev = 3;\n _context.next = 6;\n return fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n referrer: \"\",\n referrerPolicy: \"no-referrer\",\n body: JSON.stringify({\n method: 'net_version',\n id: 1,\n jsonrpc: '2.0'\n }),\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n });\n\n case 6:\n response = _context.sent;\n _context.next = 11;\n break;\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n\n case 11:\n if (_optionalChain$4([response, 'optionalAccess', function (_) {\n return _.ok;\n }])) {\n _context.next = 13;\n break;\n }\n\n return _context.abrupt(\"return\", resolve(999));\n\n case 13:\n after = new Date().getTime();\n resolve(after - before);\n\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 9]]);\n }));\n\n return function (_x3) {\n return _ref2.apply(this, arguments);\n };\n }());\n }));\n\n case 9:\n responseTimes = _context2.sent;\n fastestResponse = Math.min.apply(Math, _toConsumableArray(responseTimes));\n fastestIndex = responseTimes.indexOf(fastestResponse);\n provider = getAllProviders$1()[blockchain][fastestIndex];\n\n case 13:\n setProvider$2(blockchain, provider);\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function setProviderEndpoints$2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar getProvider$2 = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n providers = getAllProviders$1();\n\n if (!(providers && providers[blockchain])) {\n _context4.next = 3;\n break;\n }\n\n return _context4.abrupt(\"return\", providers[blockchain][0]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProviderPromise && window._Web3ClientGetProviderPromise[blockchain])) {\n _context4.next = 8;\n break;\n }\n\n _context4.next = 7;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 7:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 8:\n if (!window._Web3ClientGetProviderPromise) {\n window._Web3ClientGetProviderPromise = {};\n }\n\n window._Web3ClientGetProviderPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(resolve) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return setProviderEndpoints$2(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain][0]);\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function (_x5) {\n return _ref4.apply(this, arguments);\n };\n }());\n _context4.next = 12;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 12:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function getProvider$2(_x4) {\n return _ref3.apply(this, arguments);\n };\n}();\n\nvar getProviders$2 = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n providers = getAllProviders$1();\n\n if (!(providers && providers[blockchain])) {\n _context6.next = 3;\n break;\n }\n\n return _context6.abrupt(\"return\", providers[blockchain]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProvidersPromise && window._Web3ClientGetProvidersPromise[blockchain])) {\n _context6.next = 8;\n break;\n }\n\n _context6.next = 7;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 7:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 8:\n if (!window._Web3ClientGetProvidersPromise) {\n window._Web3ClientGetProvidersPromise = {};\n }\n\n window._Web3ClientGetProvidersPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(resolve) {\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return setProviderEndpoints$2(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain]);\n\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function (_x7) {\n return _ref6.apply(this, arguments);\n };\n }());\n _context6.next = 12;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 12:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function getProviders$2(_x6) {\n return _ref5.apply(this, arguments);\n };\n}();\n\nvar EVM = {\n getProvider: getProvider$2,\n getProviders: getProviders$2,\n setProviderEndpoints: setProviderEndpoints$2,\n setProvider: setProvider$2\n};\n\nfunction _optionalChain$3(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value3;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_value3 = value).call.apply(_value3, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar BATCH_INTERVAL = 10;\nvar CHUNK_SIZE = 50;\nvar MAX_RETRY = 10;\n\nvar StaticJsonRpcSequentialProvider = /*#__PURE__*/function (_Connection) {\n _inherits(StaticJsonRpcSequentialProvider, _Connection);\n\n var _super2 = _createSuper(StaticJsonRpcSequentialProvider);\n\n function StaticJsonRpcSequentialProvider(url, network, endpoints, failover) {\n var _this5;\n\n _classCallCheck(this, StaticJsonRpcSequentialProvider);\n\n _this5 = _super2.call(this, url);\n _this5._provider = new Connection(url);\n _this5._network = network;\n _this5._endpoint = url;\n _this5._endpoints = endpoints;\n _this5._failover = failover;\n _this5._pendingBatch = [];\n _this5._rpcRequest = _this5._rpcRequestReplacement.bind(_assertThisInitialized(_this5));\n return _this5;\n }\n\n _createClass(StaticJsonRpcSequentialProvider, [{\n key: \"handleError\",\n value: function handleError(error, attempt, chunk) {\n if (attempt < MAX_RETRY) {\n var index = this._endpoints.indexOf(this._endpoint) + 1;\n this._endpoint = index >= this._endpoints.length ? this._endpoints[0] : this._endpoints[index];\n this._provider = new Connection(this._endpoint);\n this.requestChunk(chunk, attempt + 1);\n } else {\n chunk.forEach(function (inflightRequest) {\n inflightRequest.reject(error);\n });\n }\n }\n }, {\n key: \"batchRequest\",\n value: function batchRequest(requests, attempt) {\n var _this6 = this;\n\n return new Promise(function (resolve, reject) {\n if (requests.length === 0) resolve([]); // Do nothing if requests is empty\n\n var batch = requests.map(function (params) {\n return _this6._rpcClient.request(params.methodName, params.args);\n });\n fetch(_this6._endpoint, {\n method: 'POST',\n body: JSON.stringify(batch),\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: AbortSignal.timeout(60000) // 60-second timeout\n\n }).then(function (response) {\n if (response.ok) {\n response.json().then(function (parsedJson) {\n if (parsedJson.find(function (entry) {\n return _optionalChain$3([entry, 'optionalAccess', function (_) {\n return _.error;\n }]);\n })) {\n if (attempt < MAX_RETRY) {\n reject('Error in batch found!');\n } else {\n resolve(parsedJson);\n }\n } else {\n resolve(parsedJson);\n }\n }).catch(reject);\n } else {\n reject(\"\".concat(response.status, \" \").concat(response.text));\n }\n }).catch(reject);\n });\n }\n }, {\n key: \"requestChunk\",\n value: function requestChunk(chunk, attempt) {\n var _this7 = this;\n\n var batch = chunk.map(function (inflight) {\n return inflight.request;\n });\n\n try {\n return this.batchRequest(batch, attempt).then(function (result) {\n chunk.forEach(function (inflightRequest, index) {\n var payload = result[index];\n\n if (_optionalChain$3([payload, 'optionalAccess', function (_2) {\n return _2.error;\n }])) {\n var error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n } else if (payload) {\n inflightRequest.resolve(payload);\n } else {\n inflightRequest.reject();\n }\n });\n }).catch(function (error) {\n return _this7.handleError(error, attempt, chunk);\n });\n } catch (error) {\n return this.handleError(error, attempt, chunk);\n }\n }\n }, {\n key: \"_rpcRequestReplacement\",\n value: function _rpcRequestReplacement(methodName, args) {\n var _this8 = this;\n\n var request = {\n methodName: methodName,\n args: args\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n\n var inflightRequest = {\n request: request,\n resolve: null,\n reject: null\n };\n var promise = new Promise(function (resolve, reject) {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(function () {\n // Get the current batch and clear it, so new requests\n // go into the next batch\n var batch = _this8._pendingBatch;\n _this8._pendingBatch = [];\n _this8._pendingBatchAggregator = null; // Prepare Chunks of CHUNK_SIZE\n\n var chunks = [];\n\n for (var i = 0; i < Math.ceil(batch.length / CHUNK_SIZE); i++) {\n chunks[i] = batch.slice(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE);\n }\n\n chunks.forEach(function (chunk) {\n // Get the request as an array of requests\n chunk.map(function (inflight) {\n return inflight.request;\n });\n return _this8.requestChunk(chunk, 1);\n });\n }, getConfiguration().batchInterval || BATCH_INTERVAL);\n }\n\n return promise;\n }\n }]);\n\n return StaticJsonRpcSequentialProvider;\n}(Connection);\n\nfunction _optionalChain$2(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value4;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return (_value4 = value).call.apply(_value4, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getAllProviders = function getAllProviders() {\n if (getWindow()._Web3ClientProviders == undefined) {\n getWindow()._Web3ClientProviders = {};\n }\n\n return getWindow()._Web3ClientProviders;\n};\n\nvar setProvider$1 = function setProvider$1(blockchain, provider) {\n if (provider == undefined) {\n return;\n }\n\n if (getAllProviders()[blockchain] === undefined) {\n getAllProviders()[blockchain] = [];\n }\n\n var index = getAllProviders()[blockchain].indexOf(provider);\n\n if (index > -1) {\n getAllProviders()[blockchain].splice(index, 1);\n }\n\n getAllProviders()[blockchain].unshift(provider);\n};\n\nvar setProviderEndpoints$1 = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(blockchain, endpoints) {\n var detectFastest,\n provider,\n window,\n responseTimes,\n fastestResponse,\n fastestIndex,\n _args8 = arguments;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n detectFastest = _args8.length > 2 && _args8[2] !== undefined ? _args8[2] : true;\n getAllProviders()[blockchain] = endpoints.map(function (endpoint, index) {\n return new StaticJsonRpcSequentialProvider(endpoint, blockchain, endpoints, function () {\n if (getAllProviders()[blockchain].length === 1) {\n setProviderEndpoints$1(blockchain, endpoints, detectFastest);\n } else {\n getAllProviders()[blockchain].splice(index, 1);\n }\n });\n });\n window = getWindow();\n\n if (!(window.fetch == undefined || typeof process != 'undefined' && process['env'] && process['env']['NODE_ENV'] == 'test' || typeof window.cy != 'undefined' || detectFastest === false)) {\n _context8.next = 7;\n break;\n }\n\n provider = getAllProviders()[blockchain][0];\n _context8.next = 13;\n break;\n\n case 7:\n _context8.next = 9;\n return Promise.all(endpoints.map(function (endpoint) {\n return new Promise( /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(resolve) {\n var timeout, before, response, after;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n timeout = 900;\n before = new Date().getTime();\n setTimeout(function () {\n return resolve(timeout);\n }, timeout);\n _context7.prev = 3;\n _context7.next = 6;\n return fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n referrer: \"\",\n referrerPolicy: \"no-referrer\",\n body: JSON.stringify({\n method: 'getIdentity',\n id: 1,\n jsonrpc: '2.0'\n }),\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n });\n\n case 6:\n response = _context7.sent;\n _context7.next = 11;\n break;\n\n case 9:\n _context7.prev = 9;\n _context7.t0 = _context7[\"catch\"](3);\n\n case 11:\n if (_optionalChain$2([response, 'optionalAccess', function (_) {\n return _.ok;\n }])) {\n _context7.next = 13;\n break;\n }\n\n return _context7.abrupt(\"return\", resolve(999));\n\n case 13:\n after = new Date().getTime();\n resolve(after - before);\n\n case 15:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, null, [[3, 9]]);\n }));\n\n return function (_x10) {\n return _ref8.apply(this, arguments);\n };\n }());\n }));\n\n case 9:\n responseTimes = _context8.sent;\n fastestResponse = Math.min.apply(Math, _toConsumableArray(responseTimes));\n fastestIndex = responseTimes.indexOf(fastestResponse);\n provider = getAllProviders()[blockchain][fastestIndex];\n\n case 13:\n setProvider$1(blockchain, provider);\n\n case 14:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function setProviderEndpoints$1(_x8, _x9) {\n return _ref7.apply(this, arguments);\n };\n}();\n\nvar getProvider$1 = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n providers = getAllProviders();\n\n if (!(providers && providers[blockchain])) {\n _context10.next = 3;\n break;\n }\n\n return _context10.abrupt(\"return\", providers[blockchain][0]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProviderPromise && window._Web3ClientGetProviderPromise[blockchain])) {\n _context10.next = 8;\n break;\n }\n\n _context10.next = 7;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 7:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 8:\n if (!window._Web3ClientGetProviderPromise) {\n window._Web3ClientGetProviderPromise = {};\n }\n\n window._Web3ClientGetProviderPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(resolve) {\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return setProviderEndpoints$1(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain][0]);\n\n case 3:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function (_x12) {\n return _ref10.apply(this, arguments);\n };\n }());\n _context10.next = 12;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 12:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 13:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function getProvider$1(_x11) {\n return _ref9.apply(this, arguments);\n };\n}();\n\nvar getProviders$1 = /*#__PURE__*/function () {\n var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n providers = getAllProviders();\n\n if (!(providers && providers[blockchain])) {\n _context12.next = 3;\n break;\n }\n\n return _context12.abrupt(\"return\", providers[blockchain]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProvidersPromise && window._Web3ClientGetProvidersPromise[blockchain])) {\n _context12.next = 8;\n break;\n }\n\n _context12.next = 7;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 7:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 8:\n if (!window._Web3ClientGetProvidersPromise) {\n window._Web3ClientGetProvidersPromise = {};\n }\n\n window._Web3ClientGetProvidersPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(resolve) {\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return setProviderEndpoints$1(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain]);\n\n case 3:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n\n return function (_x14) {\n return _ref12.apply(this, arguments);\n };\n }());\n _context12.next = 12;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 12:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 13:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n\n return function getProviders$1(_x13) {\n return _ref11.apply(this, arguments);\n };\n}();\n\nvar Solana = {\n getProvider: getProvider$1,\n getProviders: getProviders$1,\n setProviderEndpoints: setProviderEndpoints$1,\n setProvider: setProvider$1\n};\nvar supported = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.solana = ['solana'];\n\nfunction _optionalChain$1(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value5;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return (_value5 = value).call.apply(_value5, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getCacheStore = function getCacheStore() {\n if (getWindow()._Web3ClientCacheStore == undefined) {\n getWindow()._Web3ClientCacheStore = {};\n }\n\n return getWindow()._Web3ClientCacheStore;\n};\n\nvar getPromiseStore = function getPromiseStore() {\n if (getWindow()._Web3ClientPromiseStore == undefined) {\n getWindow()._Web3ClientPromiseStore = {};\n }\n\n return getWindow()._Web3ClientPromiseStore;\n};\n\nvar resetCache = function resetCache() {\n getWindow()._Web3ClientCacheStore = {};\n getWindow()._Web3ClientPromiseStore = {};\n getWindow()._Web3ClientProviders = {};\n getWindow()._Web3ClientGetProviderPromise = undefined;\n};\n\nvar set = function set(_ref13) {\n var key = _ref13.key,\n value = _ref13.value,\n expires = _ref13.expires;\n getCacheStore()[key] = {\n expiresAt: Date.now() + expires,\n value: value\n };\n};\n\nvar get = function get(_ref14) {\n var key = _ref14.key,\n expires = _ref14.expires;\n var cachedEntry = getCacheStore()[key];\n\n if (_optionalChain$1([cachedEntry, 'optionalAccess', function (_) {\n return _.expiresAt;\n }]) > Date.now()) {\n return cachedEntry.value;\n }\n};\n\nvar getPromise = function getPromise(_ref15) {\n var key = _ref15.key;\n return getPromiseStore()[key];\n};\n\nvar setPromise = function setPromise(_ref16) {\n var key = _ref16.key,\n promise = _ref16.promise;\n getPromiseStore()[key] = promise;\n return promise;\n};\n\nvar deletePromise = function deletePromise(_ref17) {\n var key = _ref17.key;\n getPromiseStore()[key] = undefined;\n};\n\nvar cache = function cache(_ref18) {\n var call = _ref18.call,\n key = _ref18.key,\n _ref18$expires = _ref18.expires,\n expires = _ref18$expires === void 0 ? 0 : _ref18$expires;\n return new Promise(function (resolve, reject) {\n var value;\n key = JSON.stringify(key); // get existing promise (of a previous pending request asking for the exact same thing)\n\n var existingPromise = getPromise({\n key: key\n });\n\n if (existingPromise) {\n return existingPromise.then(resolve).catch(reject);\n }\n\n setPromise({\n key: key,\n promise: new Promise(function (resolveQueue, rejectQueue) {\n if (expires === 0) {\n return call().then(function (value) {\n resolve(value);\n resolveQueue(value);\n }).catch(function (error) {\n reject(error);\n rejectQueue(error);\n });\n } // get cached value\n\n\n value = get({\n key: key,\n expires: expires\n });\n\n if (value) {\n resolve(value);\n resolveQueue(value);\n return value;\n } // set new cache value\n\n\n call().then(function (value) {\n if (value) {\n set({\n key: key,\n value: value,\n expires: expires\n });\n }\n\n resolve(value);\n resolveQueue(value);\n }).catch(function (error) {\n reject(error);\n rejectQueue(error);\n });\n })\n }).then(function () {\n deletePromise({\n key: key\n });\n }).catch(function () {\n deletePromise({\n key: key\n });\n });\n });\n};\n\nvar getProvider = /*#__PURE__*/function () {\n var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(blockchain) {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (!supported.evm.includes(blockchain)) {\n _context13.next = 6;\n break;\n }\n\n _context13.next = 3;\n return EVM.getProvider(blockchain);\n\n case 3:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 6:\n if (!supported.solana.includes(blockchain)) {\n _context13.next = 12;\n break;\n }\n\n _context13.next = 9;\n return Solana.getProvider(blockchain);\n\n case 9:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 12:\n throw 'Unknown blockchain: ' + blockchain;\n\n case 13:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n return function getProvider(_x15) {\n return _ref19.apply(this, arguments);\n };\n}();\n\nvar getProviders = /*#__PURE__*/function () {\n var _ref20 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(blockchain) {\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n if (!supported.evm.includes(blockchain)) {\n _context14.next = 6;\n break;\n }\n\n _context14.next = 3;\n return EVM.getProviders(blockchain);\n\n case 3:\n return _context14.abrupt(\"return\", _context14.sent);\n\n case 6:\n if (!supported.solana.includes(blockchain)) {\n _context14.next = 12;\n break;\n }\n\n _context14.next = 9;\n return Solana.getProviders(blockchain);\n\n case 9:\n return _context14.abrupt(\"return\", _context14.sent);\n\n case 12:\n throw 'Unknown blockchain: ' + blockchain;\n\n case 13:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function getProviders(_x16) {\n return _ref20.apply(this, arguments);\n };\n}();\n\nvar setProvider = function setProvider(blockchain, provider) {\n if (supported.evm.includes(blockchain)) {\n return EVM.setProvider(blockchain, provider);\n } else if (supported.solana.includes(blockchain)) {\n return Solana.setProvider(blockchain, provider);\n } else {\n throw 'Unknown blockchain: ' + blockchain;\n }\n};\n\nvar setProviderEndpoints = function setProviderEndpoints(blockchain, endpoints, detectFastest) {\n if (supported.evm.includes(blockchain)) {\n return EVM.setProviderEndpoints(blockchain, endpoints, detectFastest);\n } else if (supported.solana.includes(blockchain)) {\n return Solana.setProviderEndpoints(blockchain, endpoints, detectFastest);\n } else {\n throw 'Unknown blockchain: ' + blockchain;\n }\n};\n\nfunction _optionalChain(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value6;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return (_value6 = value).call.apply(_value6, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar simulate = /*#__PURE__*/function () {\n var _ref22 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref21) {\n var blockchain, from, to, keys, api, params, data, instruction, instructions, messageV0, transactionV0, result, provider;\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n blockchain = _ref21.blockchain, from = _ref21.from, to = _ref21.to, keys = _ref21.keys, api = _ref21.api, params = _ref21.params;\n\n if (supported.solana.includes(blockchain)) {\n _context15.next = 3;\n break;\n }\n\n throw \"\".concat(blockchain, \" not supported for simulation!\");\n\n case 3:\n data = Buffer.alloc(api.span);\n api.encode(params, data);\n keys = keys.map(function (key) {\n return _objectSpread(_objectSpread({}, key), {}, {\n pubkey: new PublicKey(key.pubkey)\n });\n });\n instruction = new TransactionInstruction({\n programId: new PublicKey(to),\n keys: keys,\n data: data\n });\n instructions = [];\n instructions.push(instruction);\n messageV0 = new TransactionMessage({\n payerKey: new PublicKey(from),\n instructions: instructions\n }).compileToV0Message();\n transactionV0 = new VersionedTransaction(messageV0);\n _context15.prev = 11;\n _context15.next = 14;\n return getProvider('solana');\n\n case 14:\n provider = _context15.sent;\n _context15.next = 17;\n return provider.simulateTransaction(transactionV0);\n\n case 17:\n result = _context15.sent;\n _context15.next = 23;\n break;\n\n case 20:\n _context15.prev = 20;\n _context15.t0 = _context15[\"catch\"](11);\n console.log(_context15.t0);\n\n case 23:\n return _context15.abrupt(\"return\", {\n logs: _optionalChain([result, 'optionalAccess', function (_) {\n return _.value;\n }, 'optionalAccess', function (_2) {\n return _2.logs;\n }])\n });\n\n case 24:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, null, [[11, 20]]);\n }));\n\n return function simulate(_x17) {\n return _ref22.apply(this, arguments);\n };\n}();\n\nvar findFragment = function findFragment(_ref23) {\n var fragments = _ref23.fragments,\n method = _ref23.method,\n params = _ref23.params;\n return fragments.find(function (fragment) {\n return fragment.name == method && (fragment.inputs && params && _typeof(params) === 'object' ? fragment.inputs.length == Object.keys(params).length : true);\n });\n};\n\nvar getContractArguments = function getContractArguments(_ref24) {\n var contract = _ref24.contract,\n method = _ref24.method,\n params = _ref24.params;\n var fragment = findFragment({\n fragments: contract.interface.fragments,\n method: method,\n params: params\n });\n\n if (params instanceof Array) {\n return params;\n } else if (params instanceof Object) {\n return fragment.inputs.map(function (input) {\n return params[input.name];\n });\n }\n};\n\nvar tupleParamsToMethodSignature = function tupleParamsToMethodSignature(components) {\n return \"(\".concat(components.map(function (component) {\n if (component.type === 'tuple') {\n return tupleParamsToMethodSignature(component.components);\n } else {\n return component.type;\n }\n }).join(','), \")\");\n};\n\nvar estimateEVM = function estimateEVM(_ref25) {\n var provider = _ref25.provider,\n from = _ref25.from,\n to = _ref25.to,\n value = _ref25.value,\n method = _ref25.method,\n api = _ref25.api,\n params = _ref25.params;\n\n if (typeof api == \"undefined\") {\n return provider.estimateGas({\n from: from,\n to: to,\n value: value\n });\n } else {\n var contract = new ethers.Contract(to, api, provider);\n var fragment = findFragment({\n fragments: contract.interface.fragments,\n method: method,\n params: params\n });\n var contractArguments = getContractArguments({\n contract: contract,\n method: method,\n params: params\n });\n\n if (contract[method] === undefined) {\n method = \"\".concat(method, \"(\").concat(fragment.inputs.map(function (input) {\n if (input.type === 'tuple') {\n return tupleParamsToMethodSignature(input.components);\n } else {\n return input.type;\n }\n }).join(','), \")\");\n }\n\n var contractMethod = contract.estimateGas[method];\n\n if (contractArguments) {\n return contractMethod.apply(void 0, _toConsumableArray(contractArguments).concat([{\n from: from,\n value: value\n }]));\n } else {\n return contractMethod({\n from: from,\n value: value\n });\n }\n }\n};\n\nvar estimate = /*#__PURE__*/function () {\n var _ref27 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(_ref26) {\n var blockchain, from, to, value, method, api, params, cache$1, provider;\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n blockchain = _ref26.blockchain, from = _ref26.from, to = _ref26.to, value = _ref26.value, method = _ref26.method, api = _ref26.api, params = _ref26.params, cache$1 = _ref26.cache;\n\n if (supported.includes(blockchain)) {\n _context17.next = 3;\n break;\n }\n\n throw 'Unknown blockchain: ' + blockchain;\n\n case 3:\n if (typeof value == 'undefined') {\n value = '0';\n }\n\n _context17.next = 6;\n return getProvider(blockchain);\n\n case 6:\n provider = _context17.sent;\n _context17.next = 9;\n return cache({\n expires: cache$1 || 0,\n key: [blockchain, from, to, value, method, params],\n call: function () {\n var _call = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16() {\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n return _context16.abrupt(\"return\", estimateEVM({\n provider: provider,\n from: from,\n to: to,\n value: value,\n method: method,\n api: api,\n params: params\n }));\n\n case 1:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16);\n }));\n\n function call() {\n return _call.apply(this, arguments);\n }\n\n return call;\n }()\n });\n\n case 9:\n return _context17.abrupt(\"return\", _context17.sent);\n\n case 10:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n\n return function estimate(_x18) {\n return _ref27.apply(this, arguments);\n };\n}();\n\nvar paramsToContractArgs = function paramsToContractArgs(_ref28) {\n var contract = _ref28.contract,\n method = _ref28.method,\n params = _ref28.params;\n var fragment = contract.interface.fragments.find(function (fragment) {\n return fragment.name == method;\n });\n return fragment.inputs.map(function (input, index) {\n if (Array.isArray(params)) {\n return params[index];\n } else {\n return params[input.name];\n }\n });\n};\n\nvar contractCall = function contractCall(_ref29) {\n var address = _ref29.address,\n api = _ref29.api,\n method = _ref29.method,\n params = _ref29.params,\n provider = _ref29.provider,\n block = _ref29.block;\n var contract = new ethers.Contract(address, api, provider);\n var args = paramsToContractArgs({\n contract: contract,\n method: method,\n params: params\n });\n var fragment = contract.interface.fragments.find(function (fragment) {\n return fragment.name === method;\n });\n\n if (contract[method] === undefined) {\n method = \"\".concat(method, \"(\").concat(fragment.inputs.map(function (input) {\n return input.type;\n }).join(','), \")\");\n }\n\n if (fragment && fragment.stateMutability === 'nonpayable') {\n var _contract$callStatic;\n\n return (_contract$callStatic = contract.callStatic)[method].apply(_contract$callStatic, _toConsumableArray(args).concat([{\n blockTag: block\n }]));\n } else {\n return contract[method].apply(contract, _toConsumableArray(args).concat([{\n blockTag: block\n }]));\n }\n};\n\nvar balance$1 = function balance$1(_ref30) {\n var address = _ref30.address,\n provider = _ref30.provider;\n return provider.getBalance(address);\n};\n\nvar transactionCount = function transactionCount(_ref31) {\n var address = _ref31.address,\n provider = _ref31.provider;\n return provider.getTransactionCount(address);\n};\n\nvar singleRequest$1 = function singleRequest$1(_ref32) {\n var blockchain = _ref32.blockchain,\n address = _ref32.address,\n api = _ref32.api,\n method = _ref32.method,\n params = _ref32.params,\n block = _ref32.block,\n provider = _ref32.provider;\n\n if (api) {\n return contractCall({\n address: address,\n api: api,\n method: method,\n params: params,\n provider: provider,\n block: block\n });\n } else if (method === 'latestBlockNumber') {\n return provider.getBlockNumber();\n } else if (method === 'balance') {\n return balance$1({\n address: address,\n provider: provider\n });\n } else if (method === 'transactionCount') {\n return transactionCount({\n address: address,\n provider: provider\n });\n }\n};\n\nvar requestEVM = /*#__PURE__*/function () {\n var _ref34 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(_ref33) {\n var blockchain, address, api, method, params, block, timeout, strategy, providers, allRequestsFailed, allRequestsInParallel, timeoutPromise, provider, _request;\n\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n blockchain = _ref33.blockchain, address = _ref33.address, api = _ref33.api, method = _ref33.method, params = _ref33.params, block = _ref33.block, timeout = _ref33.timeout, strategy = _ref33.strategy;\n strategy = strategy ? strategy : getConfiguration().strategy || 'failover';\n timeout = timeout ? timeout : getConfiguration().timeout || undefined;\n\n if (!(strategy === 'fastest')) {\n _context18.next = 14;\n break;\n }\n\n _context18.next = 6;\n return EVM.getProviders(blockchain);\n\n case 6:\n providers = _context18.sent;\n allRequestsFailed = [];\n allRequestsInParallel = providers.map(function (provider) {\n return new Promise(function (resolve) {\n allRequestsFailed.push(singleRequest$1({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider\n }).then(resolve));\n });\n });\n timeoutPromise = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout || 10000);\n });\n allRequestsFailed = Promise.all(allRequestsFailed.map(function (request) {\n return new Promise(function (resolve) {\n request.catch(resolve);\n });\n })).then(function () {\n return;\n });\n return _context18.abrupt(\"return\", Promise.race([].concat(_toConsumableArray(allRequestsInParallel), [timeoutPromise, allRequestsFailed])));\n\n case 14:\n _context18.next = 16;\n return EVM.getProvider(blockchain);\n\n case 16:\n provider = _context18.sent;\n _request = singleRequest$1({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider\n });\n\n if (!timeout) {\n _context18.next = 23;\n break;\n }\n\n timeout = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout);\n });\n return _context18.abrupt(\"return\", Promise.race([_request, timeout]));\n\n case 23:\n return _context18.abrupt(\"return\", _request);\n\n case 24:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n\n return function requestEVM(_x19) {\n return _ref34.apply(this, arguments);\n };\n}();\n\nvar accountInfo = /*#__PURE__*/function () {\n var _ref36 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(_ref35) {\n var address, api, method, params, provider, block, info;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n address = _ref35.address, api = _ref35.api, method = _ref35.method, params = _ref35.params, provider = _ref35.provider, block = _ref35.block;\n _context19.next = 3;\n return provider.getAccountInfo(new PublicKey(address));\n\n case 3:\n info = _context19.sent;\n\n if (!(!info || !info.data)) {\n _context19.next = 6;\n break;\n }\n\n return _context19.abrupt(\"return\");\n\n case 6:\n return _context19.abrupt(\"return\", api.decode(info.data));\n\n case 7:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19);\n }));\n\n return function accountInfo(_x20) {\n return _ref36.apply(this, arguments);\n };\n}();\n\nvar balance = function balance(_ref37) {\n var address = _ref37.address,\n provider = _ref37.provider;\n return provider.getBalance(new PublicKey(address));\n};\n\nvar singleRequest = /*#__PURE__*/function () {\n var _ref39 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref38) {\n var blockchain, address, api, method, params, block, provider, providers, nextProvider;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n blockchain = _ref38.blockchain, address = _ref38.address, api = _ref38.api, method = _ref38.method, params = _ref38.params, block = _ref38.block, provider = _ref38.provider, providers = _ref38.providers;\n _context20.prev = 1;\n\n if (!(method == undefined || method === 'getAccountInfo')) {\n _context20.next = 9;\n break;\n }\n\n if (api == undefined) {\n api = ACCOUNT_LAYOUT;\n }\n\n _context20.next = 6;\n return accountInfo({\n address: address,\n api: api,\n method: method,\n params: params,\n provider: provider,\n block: block\n });\n\n case 6:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 9:\n if (!(method === 'getProgramAccounts')) {\n _context20.next = 15;\n break;\n }\n\n _context20.next = 12;\n return provider.getProgramAccounts(new PublicKey(address), params).then(function (accounts) {\n if (api) {\n return accounts.map(function (account) {\n account.data = api.decode(account.account.data);\n return account;\n });\n } else {\n return accounts;\n }\n });\n\n case 12:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 15:\n if (!(method === 'getTokenAccountBalance')) {\n _context20.next = 21;\n break;\n }\n\n _context20.next = 18;\n return provider.getTokenAccountBalance(new PublicKey(address));\n\n case 18:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 21:\n if (!(method === 'latestBlockNumber')) {\n _context20.next = 27;\n break;\n }\n\n _context20.next = 24;\n return provider.getSlot(params ? params : undefined);\n\n case 24:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 27:\n if (!(method === 'balance')) {\n _context20.next = 31;\n break;\n }\n\n _context20.next = 30;\n return balance({\n address: address,\n provider: provider\n });\n\n case 30:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 31:\n _context20.next = 41;\n break;\n\n case 33:\n _context20.prev = 33;\n _context20.t0 = _context20[\"catch\"](1);\n\n if (!(providers && _context20.t0 && ['Failed to fetch', 'limit reached', '504', '503', '502', '500', '429', '426', '422', '413', '409', '408', '406', '405', '404', '403', '402', '401', '400'].some(function (errorType) {\n return _context20.t0.toString().match(errorType);\n }))) {\n _context20.next = 40;\n break;\n }\n\n nextProvider = providers[providers.indexOf(provider) + 1] || providers[0];\n return _context20.abrupt(\"return\", singleRequest({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: nextProvider,\n providers: providers\n }));\n\n case 40:\n throw _context20.t0;\n\n case 41:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, null, [[1, 33]]);\n }));\n\n return function singleRequest(_x21) {\n return _ref39.apply(this, arguments);\n };\n}();\n\nvar requestSolana = /*#__PURE__*/function () {\n var _ref41 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref40) {\n var blockchain, address, api, method, params, block, timeout, strategy, providers, allRequestsFailed, allRequestsInParallel, timeoutPromise, provider, _request2;\n\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n blockchain = _ref40.blockchain, address = _ref40.address, api = _ref40.api, method = _ref40.method, params = _ref40.params, block = _ref40.block, timeout = _ref40.timeout, strategy = _ref40.strategy;\n strategy = strategy ? strategy : getConfiguration().strategy || 'failover';\n timeout = timeout ? timeout : getConfiguration().timeout || undefined;\n _context21.next = 5;\n return Solana.getProviders(blockchain);\n\n case 5:\n providers = _context21.sent;\n\n if (!(strategy === 'fastest')) {\n _context21.next = 14;\n break;\n }\n\n allRequestsFailed = [];\n allRequestsInParallel = providers.map(function (provider) {\n return new Promise(function (resolve) {\n allRequestsFailed.push(singleRequest({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider\n }).then(resolve));\n });\n });\n timeoutPromise = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout || 60000);\n }); // 60s default timeout\n\n allRequestsFailed = Promise.all(allRequestsFailed.map(function (request) {\n return new Promise(function (resolve) {\n request.catch(resolve);\n });\n })).then(function () {\n return;\n });\n return _context21.abrupt(\"return\", Promise.race([].concat(_toConsumableArray(allRequestsInParallel), [timeoutPromise, allRequestsFailed])));\n\n case 14:\n _context21.next = 16;\n return Solana.getProvider(blockchain);\n\n case 16:\n provider = _context21.sent;\n _request2 = singleRequest({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider,\n providers: providers\n });\n\n if (!timeout) {\n _context21.next = 23;\n break;\n }\n\n timeout = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout);\n });\n return _context21.abrupt(\"return\", Promise.race([_request2, timeout]));\n\n case 23:\n return _context21.abrupt(\"return\", _request2);\n\n case 24:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21);\n }));\n\n return function requestSolana(_x22) {\n return _ref41.apply(this, arguments);\n };\n}();\n\nvar parseUrl = function parseUrl(url) {\n if (_typeof(url) == 'object') {\n return url;\n }\n\n var deconstructed = url.match( /*#__PURE__*/_wrapRegExp(/([0-9A-Z_a-z]+):\\/\\/([0-9A-Z_a-z]+)(\\/([0-9A-Z_a-z]+)*)?/, {\n blockchain: 1,\n part1: 2,\n part2: 4\n }));\n\n if (deconstructed.groups.part2 == undefined) {\n if (deconstructed.groups.part1.match(/\\d/)) {\n return {\n blockchain: deconstructed.groups.blockchain,\n address: deconstructed.groups.part1\n };\n } else {\n return {\n blockchain: deconstructed.groups.blockchain,\n method: deconstructed.groups.part1\n };\n }\n } else {\n return {\n blockchain: deconstructed.groups.blockchain,\n address: deconstructed.groups.part1,\n method: deconstructed.groups.part2\n };\n }\n};\n\nvar request = /*#__PURE__*/function () {\n var _ref42 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(url, options) {\n var _parseUrl, blockchain, address, method, _ref43, api, params, cache$1, block, timeout, strategy, cacheKey;\n\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _parseUrl = parseUrl(url), blockchain = _parseUrl.blockchain, address = _parseUrl.address, method = _parseUrl.method;\n _ref43 = (_typeof(url) == 'object' ? url : options) || {}, api = _ref43.api, params = _ref43.params, cache$1 = _ref43.cache, block = _ref43.block, timeout = _ref43.timeout, strategy = _ref43.strategy, cacheKey = _ref43.cacheKey;\n _context23.next = 4;\n return cache({\n expires: cache$1 || 0,\n key: cacheKey || [blockchain, address, method, params, block],\n call: function () {\n var _call2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22() {\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n if (!supported.evm.includes(blockchain)) {\n _context22.next = 6;\n break;\n }\n\n _context22.next = 3;\n return requestEVM({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n strategy: strategy,\n timeout: timeout\n });\n\n case 3:\n return _context22.abrupt(\"return\", _context22.sent);\n\n case 6:\n if (!supported.solana.includes(blockchain)) {\n _context22.next = 12;\n break;\n }\n\n _context22.next = 9;\n return requestSolana({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n strategy: strategy,\n timeout: timeout\n });\n\n case 9:\n return _context22.abrupt(\"return\", _context22.sent);\n\n case 12:\n throw 'Unknown blockchain: ' + blockchain;\n\n case 13:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22);\n }));\n\n function call() {\n return _call2.apply(this, arguments);\n }\n\n return call;\n }()\n });\n\n case 4:\n return _context23.abrupt(\"return\", _context23.sent);\n\n case 5:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23);\n }));\n\n return function request(_x23, _x24) {\n return _ref42.apply(this, arguments);\n };\n}();\n\nexport { estimate, getProvider, getProviders, request, resetCache, setConfiguration, setProvider, setProviderEndpoints, simulate };","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\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; // Reduction context\n\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\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 var Buffer;\n\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 BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && _typeof(num) === 'object' && 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\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\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\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\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\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\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\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\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\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\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this._strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // '0' - '9'\n\n if (c >= 48 && c <= 57) {\n return c - 48; // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55; // '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\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\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\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\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\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\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\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\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n b = c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa; // '0' - '9'\n } else {\n b = c;\n }\n\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\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; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\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\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\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\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\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype._strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\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\n return this;\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\n\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 var zeros = [];\n var groupSizes = [];\n var groupBases = [];\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 = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\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\n if (off >= 26) {\n off -= 26;\n i--;\n }\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\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\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\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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\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\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\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 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 res[position++] = word & 0xff;\n\n if (position < res.length) {\n res[position++] = word >> 8 & 0xff;\n }\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\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 res[position--] = word & 0xff;\n\n if (position >= 0) {\n res[position--] = word >> 8 & 0xff;\n }\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\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\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\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 var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\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 w[bit] = num.words[off] >>> wbit & 0x01;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\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\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\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\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 }; // Or `num` with `this` in-place\n\n\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 }; // Or `num` with `this`\n\n\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 }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\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 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 }; // And `num` with `this`\n\n\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 }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\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 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 }; // Xor `num` with `this`\n\n\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 }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this._strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\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 }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\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(); // 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 } // a.length > b.length\n\n\n var a, b;\n\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\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\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\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // 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 }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\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 return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\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(); // -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 } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\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\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\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 } // Copy rest of the words\n\n\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 }; // Subtract `num` from `this`\n\n\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; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\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\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\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\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\n\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 out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\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 var carry = 0;\n var hncarry = 0;\n\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\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 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 hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\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\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 }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\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\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\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 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 var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\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\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 rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\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\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\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\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\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\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 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 var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, 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 out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n }; // Multiply `this` by `num`\n\n\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 }; // Multiply employing FFT\n\n\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 }; // In-place Multiplication\n\n\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 assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\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; // NOTE: lo is 27bit maximum\n\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 }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\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 res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\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 }; // 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\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\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 h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\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\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 } // Push carried bits as a mask\n\n\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 }; // Shift-left\n\n\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 }; // Shift-right\n\n\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 }; // Test if n bit is set\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\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 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\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 }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\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 } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\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 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\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\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(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\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\n this.negative = 1;\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\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\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\n if (diff.negative === 0) {\n a = diff;\n\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 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q._strip();\n }\n\n a._strip(); // Denormalize\n\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\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\n\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\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\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\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\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 }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\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 }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\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 assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\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 }; // WARNING: DEPRECATED\n\n\n BN.prototype.modn = function modn(num) {\n return this.modrn(num);\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var carry = 0;\n\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\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 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 } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\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 ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\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 }; // 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\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\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 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 ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\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\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 var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\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\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\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 }; // Invert number in the field F(num)\n\n\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 }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\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\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\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 if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n\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 var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\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 var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\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 var res = 0;\n\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 if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\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 // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\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 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\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(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\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\n prev >>>= 22;\n input.words[i - 10] = prev;\n\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; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\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 } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\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 num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\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\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\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, '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 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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\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 var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\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\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\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\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 var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\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\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\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\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 res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\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 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 // Montgomery method engine\n //\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 this.shift = this.m.bitLength();\n\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 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\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 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\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);","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e25) { throw _e25; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e26) { didErr = true; err = _e26; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar CoinbaseWalletSdk = function (t) {\n var e = {};\n\n function n(r) {\n if (e[r]) return e[r].exports;\n var i = e[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports;\n }\n\n return n.m = t, n.c = e, n.d = function (t, e, r) {\n n.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, n.t = function (t, e) {\n if (1 & e && (t = n(t)), 8 & e) return t;\n if (4 & e && \"object\" == _typeof(t) && t && t.__esModule) return t;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var i in t) {\n n.d(r, i, function (e) {\n return t[e];\n }.bind(null, i));\n }\n return r;\n }, n.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return n.d(e, \"a\", e), e;\n }, n.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, n.p = \"\", n(n.s = 125);\n}([function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n /*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n \n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n \n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */\n\n var _r2 = function r(t, e) {\n return (_r2 = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (t, e) {\n t.__proto__ = e;\n } || function (t, e) {\n for (var n in e) {\n e.hasOwnProperty(n) && (t[n] = e[n]);\n }\n })(t, e);\n };\n\n function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n _r2(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n());\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return l;\n });\n\n var r = n(0),\n i = n(26),\n o = n(58),\n s = n(4),\n a = n(43),\n u = n(14),\n c = n(36),\n l = function (t) {\n function e(n, r, i) {\n var s = t.call(this) || this;\n\n switch (s.syncErrorValue = null, s.syncErrorThrown = !1, s.syncErrorThrowable = !1, s.isStopped = !1, arguments.length) {\n case 0:\n s.destination = o.a;\n break;\n\n case 1:\n if (!n) {\n s.destination = o.a;\n break;\n }\n\n if (\"object\" == _typeof(n)) {\n n instanceof e ? (s.syncErrorThrowable = n.syncErrorThrowable, s.destination = n, n.add(s)) : (s.syncErrorThrowable = !0, s.destination = new h(s, n));\n break;\n }\n\n default:\n s.syncErrorThrowable = !0, s.destination = new h(s, n, r, i);\n }\n\n return s;\n }\n\n return r.a(e, t), e.prototype[a.a] = function () {\n return this;\n }, e.create = function (t, n, r) {\n var i = new e(t, n, r);\n return i.syncErrorThrowable = !1, i;\n }, e.prototype.next = function (t) {\n this.isStopped || this._next(t);\n }, e.prototype.error = function (t) {\n this.isStopped || (this.isStopped = !0, this._error(t));\n }, e.prototype.complete = function () {\n this.isStopped || (this.isStopped = !0, this._complete());\n }, e.prototype.unsubscribe = function () {\n this.closed || (this.isStopped = !0, t.prototype.unsubscribe.call(this));\n }, e.prototype._next = function (t) {\n this.destination.next(t);\n }, e.prototype._error = function (t) {\n this.destination.error(t), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.destination.complete(), this.unsubscribe();\n }, e.prototype._unsubscribeAndRecycle = function () {\n var t = this._parentOrParents;\n return this._parentOrParents = null, this.unsubscribe(), this.closed = !1, this.isStopped = !1, this._parentOrParents = t, this;\n }, e;\n }(s.a),\n h = function (t) {\n function e(e, n, r, s) {\n var a,\n u = t.call(this) || this;\n u._parentSubscriber = e;\n var c = u;\n return Object(i.a)(n) ? a = n : n && (a = n.next, r = n.error, s = n.complete, n !== o.a && (c = Object.create(n), Object(i.a)(c.unsubscribe) && u.add(c.unsubscribe.bind(c)), c.unsubscribe = u.unsubscribe.bind(u))), u._context = c, u._next = a, u._error = r, u._complete = s, u;\n }\n\n return r.a(e, t), e.prototype.next = function (t) {\n if (!this.isStopped && this._next) {\n var e = this._parentSubscriber;\n u.a.useDeprecatedSynchronousErrorHandling && e.syncErrorThrowable ? this.__tryOrSetError(e, this._next, t) && this.unsubscribe() : this.__tryOrUnsub(this._next, t);\n }\n }, e.prototype.error = function (t) {\n if (!this.isStopped) {\n var e = this._parentSubscriber,\n n = u.a.useDeprecatedSynchronousErrorHandling;\n if (this._error) n && e.syncErrorThrowable ? (this.__tryOrSetError(e, this._error, t), this.unsubscribe()) : (this.__tryOrUnsub(this._error, t), this.unsubscribe());else if (e.syncErrorThrowable) n ? (e.syncErrorValue = t, e.syncErrorThrown = !0) : Object(c.a)(t), this.unsubscribe();else {\n if (this.unsubscribe(), n) throw t;\n Object(c.a)(t);\n }\n }\n }, e.prototype.complete = function () {\n var t = this;\n\n if (!this.isStopped) {\n var e = this._parentSubscriber;\n\n if (this._complete) {\n var n = function n() {\n return t._complete.call(t._context);\n };\n\n u.a.useDeprecatedSynchronousErrorHandling && e.syncErrorThrowable ? (this.__tryOrSetError(e, n), this.unsubscribe()) : (this.__tryOrUnsub(n), this.unsubscribe());\n } else this.unsubscribe();\n }\n }, e.prototype.__tryOrUnsub = function (t, e) {\n try {\n t.call(this._context, e);\n } catch (t) {\n if (this.unsubscribe(), u.a.useDeprecatedSynchronousErrorHandling) throw t;\n Object(c.a)(t);\n }\n }, e.prototype.__tryOrSetError = function (t, e, n) {\n if (!u.a.useDeprecatedSynchronousErrorHandling) throw new Error(\"bad call\");\n\n try {\n e.call(this._context, n);\n } catch (e) {\n return u.a.useDeprecatedSynchronousErrorHandling ? (t.syncErrorValue = e, t.syncErrorThrown = !0, !0) : (Object(c.a)(e), !0);\n }\n\n return !1;\n }, e.prototype._unsubscribe = function () {\n var t = this._parentSubscriber;\n this._context = null, this._parentSubscriber = null, t.unsubscribe();\n }, e;\n }(l);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return a;\n }), n.d(e, \"b\", function () {\n return u;\n }), n.d(e, \"c\", function () {\n return c;\n });\n\n var r = n(0),\n i = n(1),\n o = n(3),\n s = n(35),\n a = function (t) {\n function e(e) {\n var n = t.call(this) || this;\n return n.parent = e, n;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.parent.notifyNext(t);\n }, e.prototype._error = function (t) {\n this.parent.notifyError(t), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.parent.notifyComplete(), this.unsubscribe();\n }, e;\n }(i.a),\n u = (i.a, function (t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function (t) {\n this.destination.next(t);\n }, e.prototype.notifyError = function (t) {\n this.destination.error(t);\n }, e.prototype.notifyComplete = function () {\n this.destination.complete();\n }, e;\n }(i.a));\n\n i.a;\n\n function c(t, e) {\n if (!e.closed) {\n if (t instanceof o.a) return t.subscribe(e);\n var n;\n\n try {\n n = Object(s.a)(t)(e);\n } catch (t) {\n e.error(t);\n }\n\n return n;\n }\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return l;\n });\n var r = n(56),\n i = n(1),\n o = n(43),\n s = n(58);\n\n var a = n(22),\n u = n(41),\n c = n(14),\n l = function () {\n function t(t) {\n this._isScalar = !1, t && (this._subscribe = t);\n }\n\n return t.prototype.lift = function (e) {\n var n = new t();\n return n.source = this, n.operator = e, n;\n }, t.prototype.subscribe = function (t, e, n) {\n var r = this.operator,\n a = function (t, e, n) {\n if (t) {\n if (t instanceof i.a) return t;\n if (t[o.a]) return t[o.a]();\n }\n\n return t || e || n ? new i.a(t, e, n) : new i.a(s.a);\n }(t, e, n);\n\n if (r ? a.add(r.call(a, this.source)) : a.add(this.source || c.a.useDeprecatedSynchronousErrorHandling && !a.syncErrorThrowable ? this._subscribe(a) : this._trySubscribe(a)), c.a.useDeprecatedSynchronousErrorHandling && a.syncErrorThrowable && (a.syncErrorThrowable = !1, a.syncErrorThrown)) throw a.syncErrorValue;\n return a;\n }, t.prototype._trySubscribe = function (t) {\n try {\n return this._subscribe(t);\n } catch (e) {\n c.a.useDeprecatedSynchronousErrorHandling && (t.syncErrorThrown = !0, t.syncErrorValue = e), Object(r.a)(t) ? t.error(e) : console.warn(e);\n }\n }, t.prototype.forEach = function (t, e) {\n var n = this;\n return new (e = h(e))(function (e, r) {\n var i;\n i = n.subscribe(function (e) {\n try {\n t(e);\n } catch (t) {\n r(t), i && i.unsubscribe();\n }\n }, r, e);\n });\n }, t.prototype._subscribe = function (t) {\n var e = this.source;\n return e && e.subscribe(t);\n }, t.prototype[a.a] = function () {\n return this;\n }, t.prototype.pipe = function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return 0 === t.length ? this : Object(u.b)(t)(this);\n }, t.prototype.toPromise = function (t) {\n var e = this;\n return new (t = h(t))(function (t, n) {\n var r;\n e.subscribe(function (t) {\n return r = t;\n }, function (t) {\n return n(t);\n }, function () {\n return t(r);\n });\n });\n }, t.create = function (e) {\n return new t(e);\n }, t;\n }();\n\n function h(t) {\n if (t || (t = c.a.Promise || Promise), !t) throw new Error(\"no Promise impl found\");\n return t;\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return a;\n });\n\n var r = n(8),\n i = n(55),\n o = n(26),\n s = n(44),\n a = function () {\n function t(t) {\n this.closed = !1, this._parentOrParents = null, this._subscriptions = null, t && (this._ctorUnsubscribe = !0, this._unsubscribe = t);\n }\n\n var e;\n return t.prototype.unsubscribe = function () {\n var e;\n\n if (!this.closed) {\n var n = this._parentOrParents,\n a = this._ctorUnsubscribe,\n c = this._unsubscribe,\n l = this._subscriptions;\n if (this.closed = !0, this._parentOrParents = null, this._subscriptions = null, n instanceof t) n.remove(this);else if (null !== n) for (var h = 0; h < n.length; ++h) {\n n[h].remove(this);\n }\n\n if (Object(o.a)(c)) {\n a && (this._unsubscribe = void 0);\n\n try {\n c.call(this);\n } catch (t) {\n e = t instanceof s.a ? u(t.errors) : [t];\n }\n }\n\n if (Object(r.a)(l)) {\n h = -1;\n\n for (var d = l.length; ++h < d;) {\n var f = l[h];\n if (Object(i.a)(f)) try {\n f.unsubscribe();\n } catch (t) {\n e = e || [], t instanceof s.a ? e = e.concat(u(t.errors)) : e.push(t);\n }\n }\n }\n\n if (e) throw new s.a(e);\n }\n }, t.prototype.add = function (e) {\n var n = e;\n if (!e) return t.EMPTY;\n\n switch (_typeof(e)) {\n case \"function\":\n n = new t(e);\n\n case \"object\":\n if (n === this || n.closed || \"function\" != typeof n.unsubscribe) return n;\n if (this.closed) return n.unsubscribe(), n;\n\n if (!(n instanceof t)) {\n var r = n;\n (n = new t())._subscriptions = [r];\n }\n\n break;\n\n default:\n throw new Error(\"unrecognized teardown \" + e + \" added to Subscription.\");\n }\n\n var i = n._parentOrParents;\n if (null === i) n._parentOrParents = this;else if (i instanceof t) {\n if (i === this) return n;\n n._parentOrParents = [i, this];\n } else {\n if (-1 !== i.indexOf(this)) return n;\n i.push(this);\n }\n var o = this._subscriptions;\n return null === o ? this._subscriptions = [n] : o.push(n), n;\n }, t.prototype.remove = function (t) {\n var e = this._subscriptions;\n\n if (e) {\n var n = e.indexOf(t);\n -1 !== n && e.splice(n, 1);\n }\n }, t.EMPTY = ((e = new t()).closed = !0, e), t;\n }();\n\n function u(t) {\n return t.reduce(function (t, e) {\n return t.concat(e instanceof s.a ? e.errors : e);\n }, []);\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"Component\", function () {\n return S;\n }), n.d(e, \"Fragment\", function () {\n return _;\n }), n.d(e, \"cloneElement\", function () {\n return V;\n }), n.d(e, \"createContext\", function () {\n return q;\n }), n.d(e, \"createElement\", function () {\n return m;\n }), n.d(e, \"createRef\", function () {\n return w;\n }), n.d(e, \"h\", function () {\n return m;\n }), n.d(e, \"hydrate\", function () {\n return z;\n }), n.d(e, \"isValidElement\", function () {\n return s;\n }), n.d(e, \"options\", function () {\n return i;\n }), n.d(e, \"render\", function () {\n return H;\n }), n.d(e, \"toChildArray\", function () {\n return I;\n });\n var r,\n i,\n o,\n s,\n a,\n u,\n c,\n l,\n h,\n d = {},\n f = [],\n p = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,\n b = Array.isArray;\n\n function y(t, e) {\n for (var n in e) {\n t[n] = e[n];\n }\n\n return t;\n }\n\n function g(t) {\n var e = t.parentNode;\n e && e.removeChild(t);\n }\n\n function m(t, e, n) {\n var i,\n o,\n s,\n a = {};\n\n for (s in e) {\n \"key\" == s ? i = e[s] : \"ref\" == s ? o = e[s] : a[s] = e[s];\n }\n\n if (arguments.length > 2 && (a.children = arguments.length > 3 ? r.call(arguments, 2) : n), \"function\" == typeof t && null != t.defaultProps) for (s in t.defaultProps) {\n void 0 === a[s] && (a[s] = t.defaultProps[s]);\n }\n return v(t, a, i, o, null);\n }\n\n function v(t, e, n, r, s) {\n var a = {\n type: t,\n props: e,\n key: n,\n ref: r,\n __k: null,\n __: null,\n __b: 0,\n __e: null,\n __d: void 0,\n __c: null,\n __h: null,\n constructor: void 0,\n __v: null == s ? ++o : s\n };\n return null == s && null != i.vnode && i.vnode(a), a;\n }\n\n function w() {\n return {\n current: null\n };\n }\n\n function _(t) {\n return t.children;\n }\n\n function S(t, e) {\n this.props = t, this.context = e;\n }\n\n function E(t, e) {\n if (null == e) return t.__ ? E(t.__, t.__.__k.indexOf(t) + 1) : null;\n\n for (var n; e < t.__k.length; e++) {\n if (null != (n = t.__k[e]) && null != n.__e) return n.__e;\n }\n\n return \"function\" == typeof t.type ? E(t) : null;\n }\n\n function M(t) {\n var e, n;\n\n if (null != (t = t.__) && null != t.__c) {\n for (t.__e = t.__c.base = null, e = 0; e < t.__k.length; e++) {\n if (null != (n = t.__k[e]) && null != n.__e) {\n t.__e = t.__c.base = n.__e;\n break;\n }\n }\n\n return M(t);\n }\n }\n\n function x(t) {\n (!t.__d && (t.__d = !0) && a.push(t) && !k.__r++ || u !== i.debounceRendering) && ((u = i.debounceRendering) || c)(k);\n }\n\n function k() {\n var t, e, n, r, i, o, s, u, c;\n\n for (a.sort(l); t = a.shift();) {\n t.__d && (e = a.length, r = void 0, i = void 0, o = void 0, u = (s = (n = t).__v).__e, (c = n.__P) && (r = [], i = [], (o = y({}, s)).__v = s.__v + 1, L(c, s, o, n.__n, void 0 !== c.ownerSVGElement, null != s.__h ? [u] : null, r, null == u ? E(s) : u, s.__h, i), D(r, s, i), s.__e != u && M(s)), a.length > e && a.sort(l));\n }\n\n k.__r = 0;\n }\n\n function C(t, e, n, r, i, o, s, a, u, c, l) {\n var h,\n p,\n y,\n g,\n m,\n w,\n S,\n M,\n x,\n k = 0,\n C = r && r.__k || f,\n I = C.length,\n R = I,\n N = e.length;\n\n for (n.__k = [], h = 0; h < N; h++) {\n null != (g = n.__k[h] = null == (g = e[h]) || \"boolean\" == typeof g || \"function\" == typeof g ? null : \"string\" == typeof g || \"number\" == typeof g || \"bigint\" == typeof g ? v(null, g, null, null, g) : b(g) ? v(_, {\n children: g\n }, null, null, null) : g.__b > 0 ? v(g.type, g.props, g.key, g.ref ? g.ref : null, g.__v) : g) ? (g.__ = n, g.__b = n.__b + 1, -1 === (M = j(g, C, S = h + k, R)) ? y = d : (y = C[M] || d, C[M] = void 0, R--), L(t, g, y, i, o, s, a, u, c, l), m = g.__e, (p = g.ref) && y.ref != p && (y.ref && F(y.ref, null, g), l.push(p, g.__c || m, g)), null != m && (null == w && (w = m), (x = y === d || null === y.__v) ? -1 == M && k-- : M !== S && (M === S + 1 ? k++ : M > S ? R > N - S ? k += M - S : k-- : k = M < S && M == S - 1 ? M - S : 0), S = h + k, \"function\" != typeof g.type || M === S && y.__k !== g.__k ? \"function\" == typeof g.type || M === S && !x ? void 0 !== g.__d ? (u = g.__d, g.__d = void 0) : u = m.nextSibling : u = O(t, m, u) : u = A(g, u, t), \"function\" == typeof n.type && (n.__d = u))) : (y = C[h]) && null == y.key && y.__e && (y.__e == u && (u = E(y)), U(y, y, !1), C[h] = null);\n }\n\n for (n.__e = w, h = I; h--;) {\n null != C[h] && (\"function\" == typeof n.type && null != C[h].__e && C[h].__e == n.__d && (n.__d = C[h].__e.nextSibling), U(C[h], C[h]));\n }\n }\n\n function A(t, e, n) {\n for (var r, i = t.__k, o = 0; i && o < i.length; o++) {\n (r = i[o]) && (r.__ = t, e = \"function\" == typeof r.type ? A(r, e, n) : O(n, r.__e, e));\n }\n\n return e;\n }\n\n function I(t, e) {\n return e = e || [], null == t || \"boolean\" == typeof t || (b(t) ? t.some(function (t) {\n I(t, e);\n }) : e.push(t)), e;\n }\n\n function O(t, e, n) {\n return null == n || n.parentNode !== t ? t.insertBefore(e, null) : e == n && null != e.parentNode || t.insertBefore(e, n), e.nextSibling;\n }\n\n function j(t, e, n, r) {\n var i = t.key,\n o = t.type,\n s = n - 1,\n a = n + 1,\n u = e[n];\n if (null === u || u && i == u.key && o === u.type) return n;\n if (r > (null != u ? 1 : 0)) for (; s >= 0 || a < e.length;) {\n if (s >= 0) {\n if ((u = e[s]) && i == u.key && o === u.type) return s;\n s--;\n }\n\n if (a < e.length) {\n if ((u = e[a]) && i == u.key && o === u.type) return a;\n a++;\n }\n }\n return -1;\n }\n\n function R(t, e, n) {\n \"-\" === e[0] ? t.setProperty(e, null == n ? \"\" : n) : t[e] = null == n ? \"\" : \"number\" != typeof n || p.test(e) ? n : n + \"px\";\n }\n\n function N(t, e, n, r, i) {\n var o;\n\n t: if (\"style\" === e) {\n if (\"string\" == typeof n) t.style.cssText = n;else {\n if (\"string\" == typeof r && (t.style.cssText = r = \"\"), r) for (e in r) {\n n && e in n || R(t.style, e, \"\");\n }\n if (n) for (e in n) {\n r && n[e] === r[e] || R(t.style, e, n[e]);\n }\n }\n } else if (\"o\" === e[0] && \"n\" === e[1]) o = e !== (e = e.replace(/(PointerCapture)$|Capture$/, \"$1\")), e = e.toLowerCase() in t ? e.toLowerCase().slice(2) : e.slice(2), t.l || (t.l = {}), t.l[e + o] = n, n ? r || t.addEventListener(e, o ? P : T, o) : t.removeEventListener(e, o ? P : T, o);else if (\"dangerouslySetInnerHTML\" !== e) {\n if (i) e = e.replace(/xlink(H|:h)/, \"h\").replace(/sName$/, \"s\");else if (\"width\" !== e && \"height\" !== e && \"href\" !== e && \"list\" !== e && \"form\" !== e && \"tabIndex\" !== e && \"download\" !== e && \"rowSpan\" !== e && \"colSpan\" !== e && e in t) try {\n t[e] = null == n ? \"\" : n;\n break t;\n } catch (t) {}\n \"function\" == typeof n || (null == n || !1 === n && \"-\" !== e[4] ? t.removeAttribute(e) : t.setAttribute(e, n));\n }\n }\n\n function T(t) {\n return this.l[t.type + !1](i.event ? i.event(t) : t);\n }\n\n function P(t) {\n return this.l[t.type + !0](i.event ? i.event(t) : t);\n }\n\n function L(t, e, n, r, o, s, a, u, c, l) {\n var h,\n d,\n f,\n p,\n g,\n m,\n v,\n w,\n E,\n M,\n x,\n k,\n A,\n I,\n O,\n j = e.type;\n if (void 0 !== e.constructor) return null;\n null != n.__h && (c = n.__h, u = e.__e = n.__e, e.__h = null, s = [u]), (h = i.__b) && h(e);\n\n t: if (\"function\" == typeof j) try {\n if (w = e.props, E = (h = j.contextType) && r[h.__c], M = h ? E ? E.props.value : h.__ : r, n.__c ? v = (d = e.__c = n.__c).__ = d.__E : (\"prototype\" in j && j.prototype.render ? e.__c = d = new j(w, M) : (e.__c = d = new S(w, M), d.constructor = j, d.render = W), E && E.sub(d), d.props = w, d.state || (d.state = {}), d.context = M, d.__n = r, f = d.__d = !0, d.__h = [], d._sb = []), null == d.__s && (d.__s = d.state), null != j.getDerivedStateFromProps && (d.__s == d.state && (d.__s = y({}, d.__s)), y(d.__s, j.getDerivedStateFromProps(w, d.__s))), p = d.props, g = d.state, d.__v = e, f) null == j.getDerivedStateFromProps && null != d.componentWillMount && d.componentWillMount(), null != d.componentDidMount && d.__h.push(d.componentDidMount);else {\n if (null == j.getDerivedStateFromProps && w !== p && null != d.componentWillReceiveProps && d.componentWillReceiveProps(w, M), !d.__e && (null != d.shouldComponentUpdate && !1 === d.shouldComponentUpdate(w, d.__s, M) || e.__v === n.__v)) {\n for (e.__v !== n.__v && (d.props = w, d.state = d.__s, d.__d = !1), e.__e = n.__e, e.__k = n.__k, e.__k.forEach(function (t) {\n t && (t.__ = e);\n }), x = 0; x < d._sb.length; x++) {\n d.__h.push(d._sb[x]);\n }\n\n d._sb = [], d.__h.length && a.push(d);\n break t;\n }\n\n null != d.componentWillUpdate && d.componentWillUpdate(w, d.__s, M), null != d.componentDidUpdate && d.__h.push(function () {\n d.componentDidUpdate(p, g, m);\n });\n }\n\n if (d.context = M, d.props = w, d.__P = t, d.__e = !1, k = i.__r, A = 0, \"prototype\" in j && j.prototype.render) {\n for (d.state = d.__s, d.__d = !1, k && k(e), h = d.render(d.props, d.state, d.context), I = 0; I < d._sb.length; I++) {\n d.__h.push(d._sb[I]);\n }\n\n d._sb = [];\n } else do {\n d.__d = !1, k && k(e), h = d.render(d.props, d.state, d.context), d.state = d.__s;\n } while (d.__d && ++A < 25);\n\n d.state = d.__s, null != d.getChildContext && (r = y(y({}, r), d.getChildContext())), f || null == d.getSnapshotBeforeUpdate || (m = d.getSnapshotBeforeUpdate(p, g)), C(t, b(O = null != h && h.type === _ && null == h.key ? h.props.children : h) ? O : [O], e, n, r, o, s, a, u, c, l), d.base = e.__e, e.__h = null, d.__h.length && a.push(d), v && (d.__E = d.__ = null);\n } catch (t) {\n e.__v = null, (c || null != s) && (e.__e = u, e.__h = !!c, s[s.indexOf(u)] = null), i.__e(t, e, n);\n } else null == s && e.__v === n.__v ? (e.__k = n.__k, e.__e = n.__e) : e.__e = B(n.__e, e, n, r, o, s, a, c, l);\n\n (h = i.diffed) && h(e);\n }\n\n function D(t, e, n) {\n for (var r = 0; r < n.length; r++) {\n F(n[r], n[++r], n[++r]);\n }\n\n i.__c && i.__c(e, t), t.some(function (e) {\n try {\n t = e.__h, e.__h = [], t.some(function (t) {\n t.call(e);\n });\n } catch (t) {\n i.__e(t, e.__v);\n }\n });\n }\n\n function B(t, e, n, i, o, s, a, u, c) {\n var l,\n h,\n f,\n p = n.props,\n y = e.props,\n m = e.type,\n v = 0;\n if (\"svg\" === m && (o = !0), null != s) for (; v < s.length; v++) {\n if ((l = s[v]) && \"setAttribute\" in l == !!m && (m ? l.localName === m : 3 === l.nodeType)) {\n t = l, s[v] = null;\n break;\n }\n }\n\n if (null == t) {\n if (null === m) return document.createTextNode(y);\n t = o ? document.createElementNS(\"http://www.w3.org/2000/svg\", m) : document.createElement(m, y.is && y), s = null, u = !1;\n }\n\n if (null === m) p === y || u && t.data === y || (t.data = y);else {\n if (s = s && r.call(t.childNodes), h = (p = n.props || d).dangerouslySetInnerHTML, f = y.dangerouslySetInnerHTML, !u) {\n if (null != s) for (p = {}, v = 0; v < t.attributes.length; v++) {\n p[t.attributes[v].name] = t.attributes[v].value;\n }\n (f || h) && (f && (h && f.__html == h.__html || f.__html === t.innerHTML) || (t.innerHTML = f && f.__html || \"\"));\n }\n\n if (function (t, e, n, r, i) {\n var o;\n\n for (o in n) {\n \"children\" === o || \"key\" === o || o in e || N(t, o, null, n[o], r);\n }\n\n for (o in e) {\n i && \"function\" != typeof e[o] || \"children\" === o || \"key\" === o || \"value\" === o || \"checked\" === o || n[o] === e[o] || N(t, o, e[o], n[o], r);\n }\n }(t, y, p, o, u), f) e.__k = [];else if (C(t, b(v = e.props.children) ? v : [v], e, n, i, o && \"foreignObject\" !== m, s, a, s ? s[0] : n.__k && E(n, 0), u, c), null != s) for (v = s.length; v--;) {\n null != s[v] && g(s[v]);\n }\n u || (\"value\" in y && void 0 !== (v = y.value) && (v !== t.value || \"progress\" === m && !v || \"option\" === m && v !== p.value) && N(t, \"value\", v, p.value, !1), \"checked\" in y && void 0 !== (v = y.checked) && v !== t.checked && N(t, \"checked\", v, p.checked, !1));\n }\n return t;\n }\n\n function F(t, e, n) {\n try {\n \"function\" == typeof t ? t(e) : t.current = e;\n } catch (t) {\n i.__e(t, n);\n }\n }\n\n function U(t, e, n) {\n var r, o;\n\n if (i.unmount && i.unmount(t), (r = t.ref) && (r.current && r.current !== t.__e || F(r, null, e)), null != (r = t.__c)) {\n if (r.componentWillUnmount) try {\n r.componentWillUnmount();\n } catch (t) {\n i.__e(t, e);\n }\n r.base = r.__P = null, t.__c = void 0;\n }\n\n if (r = t.__k) for (o = 0; o < r.length; o++) {\n r[o] && U(r[o], e, n || \"function\" != typeof t.type);\n }\n n || null == t.__e || g(t.__e), t.__ = t.__e = t.__d = void 0;\n }\n\n function W(t, e, n) {\n return this.constructor(t, n);\n }\n\n function H(t, e, n) {\n var o, s, a, u;\n i.__ && i.__(t, e), s = (o = \"function\" == typeof n) ? null : n && n.__k || e.__k, a = [], u = [], L(e, t = (!o && n || e).__k = m(_, null, [t]), s || d, d, void 0 !== e.ownerSVGElement, !o && n ? [n] : s ? null : e.firstChild ? r.call(e.childNodes) : null, a, !o && n ? n : s ? s.__e : e.firstChild, o, u), D(a, t, u);\n }\n\n function z(t, e) {\n H(t, e, z);\n }\n\n function V(t, e, n) {\n var i,\n o,\n s,\n a,\n u = y({}, t.props);\n\n for (s in t.type && t.type.defaultProps && (a = t.type.defaultProps), e) {\n \"key\" == s ? i = e[s] : \"ref\" == s ? o = e[s] : u[s] = void 0 === e[s] && void 0 !== a ? a[s] : e[s];\n }\n\n return arguments.length > 2 && (u.children = arguments.length > 3 ? r.call(arguments, 2) : n), v(t.type, u, i || t.key, o || t.ref, null);\n }\n\n function q(t, e) {\n var n = {\n __c: e = \"__cC\" + h++,\n __: t,\n Consumer: function Consumer(t, e) {\n return t.children(e);\n },\n Provider: function Provider(t) {\n var n, r;\n return this.getChildContext || (n = [], (r = {})[e] = this, this.getChildContext = function () {\n return r;\n }, this.shouldComponentUpdate = function (t) {\n this.props.value !== t.value && n.some(function (t) {\n t.__e = !0, x(t);\n });\n }, this.sub = function (t) {\n n.push(t);\n var e = t.componentWillUnmount;\n\n t.componentWillUnmount = function () {\n n.splice(n.indexOf(t), 1), e && e.call(t);\n };\n }), t.children;\n }\n };\n return n.Provider.__ = n.Consumer.contextType = n;\n }\n\n r = f.slice, i = {\n __e: function __e(t, e, n, r) {\n for (var i, o, s; e = e.__;) {\n if ((i = e.__c) && !i.__) try {\n if ((o = i.constructor) && null != o.getDerivedStateFromError && (i.setState(o.getDerivedStateFromError(t)), s = i.__d), null != i.componentDidCatch && (i.componentDidCatch(t, r || {}), s = i.__d), s) return i.__E = i;\n } catch (e) {\n t = e;\n }\n }\n\n throw t;\n }\n }, o = 0, s = function s(t) {\n return null != t && void 0 === t.constructor;\n }, S.prototype.setState = function (t, e) {\n var n;\n n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = y({}, this.state), \"function\" == typeof t && (t = t(y({}, n), this.props)), t && y(n, t), null != t && this.__v && (e && this._sb.push(e), x(this));\n }, S.prototype.forceUpdate = function (t) {\n this.__v && (this.__e = !0, t && this.__h.push(t), x(this));\n }, S.prototype.render = _, a = [], c = \"function\" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, l = function l(t, e) {\n return t.__v.__b - e.__v.__b;\n }, k.__r = 0, h = 0;\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return l;\n }), n.d(e, \"a\", function () {\n return h;\n });\n\n var r = n(0),\n i = n(3),\n o = n(1),\n s = n(4),\n a = n(23),\n u = n(80),\n c = n(43),\n l = function (t) {\n function e(e) {\n var n = t.call(this, e) || this;\n return n.destination = e, n;\n }\n\n return r.a(e, t), e;\n }(o.a),\n h = function (t) {\n function e() {\n var e = t.call(this) || this;\n return e.observers = [], e.closed = !1, e.isStopped = !1, e.hasError = !1, e.thrownError = null, e;\n }\n\n return r.a(e, t), e.prototype[c.a] = function () {\n return new l(this);\n }, e.prototype.lift = function (t) {\n var e = new d(this, this);\n return e.operator = t, e;\n }, e.prototype.next = function (t) {\n if (this.closed) throw new a.a();\n if (!this.isStopped) for (var e = this.observers, n = e.length, r = e.slice(), i = 0; i < n; i++) {\n r[i].next(t);\n }\n }, e.prototype.error = function (t) {\n if (this.closed) throw new a.a();\n this.hasError = !0, this.thrownError = t, this.isStopped = !0;\n\n for (var e = this.observers, n = e.length, r = e.slice(), i = 0; i < n; i++) {\n r[i].error(t);\n }\n\n this.observers.length = 0;\n }, e.prototype.complete = function () {\n if (this.closed) throw new a.a();\n this.isStopped = !0;\n\n for (var t = this.observers, e = t.length, n = t.slice(), r = 0; r < e; r++) {\n n[r].complete();\n }\n\n this.observers.length = 0;\n }, e.prototype.unsubscribe = function () {\n this.isStopped = !0, this.closed = !0, this.observers = null;\n }, e.prototype._trySubscribe = function (e) {\n if (this.closed) throw new a.a();\n return t.prototype._trySubscribe.call(this, e);\n }, e.prototype._subscribe = function (t) {\n if (this.closed) throw new a.a();\n return this.hasError ? (t.error(this.thrownError), s.a.EMPTY) : this.isStopped ? (t.complete(), s.a.EMPTY) : (this.observers.push(t), new u.a(this, t));\n }, e.prototype.asObservable = function () {\n var t = new i.a();\n return t.source = this, t;\n }, e.create = function (t, e) {\n return new d(t, e);\n }, e;\n }(i.a),\n d = function (t) {\n function e(e, n) {\n var r = t.call(this) || this;\n return r.destination = e, r.source = n, r;\n }\n\n return r.a(e, t), e.prototype.next = function (t) {\n var e = this.destination;\n e && e.next && e.next(t);\n }, e.prototype.error = function (t) {\n var e = this.destination;\n e && e.error && this.destination.error(t);\n }, e.prototype.complete = function () {\n var t = this.destination;\n t && t.complete && this.destination.complete();\n }, e.prototype._subscribe = function (t) {\n return this.source ? this.source.subscribe(t) : s.a.EMPTY;\n }, e;\n }(h);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return i;\n }), n.d(e, \"a\", function () {\n return o;\n });\n var r = n(32),\n i = new (n(30).a)(r.a),\n o = i;\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n return Array.isArray || function (t) {\n return t && \"number\" == typeof t.length;\n };\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(0),\n i = n(1);\n\n function o(t, e) {\n return function (n) {\n if (\"function\" != typeof t) throw new TypeError(\"argument is not a function. Are you looking for `mapTo()`?\");\n return n.lift(new s(t, e));\n };\n }\n\n var s = function () {\n function t(t, e) {\n this.project = t, this.thisArg = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new a(t, this.project, this.thisArg));\n }, t;\n }(),\n a = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.project = n, i.count = 0, i.thisArg = r || i, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e;\n\n try {\n e = this.project.call(this.thisArg, t, this.count++);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.destination.next(e);\n }, e;\n }(i.a);\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n return t && \"function\" == typeof t.schedule;\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n }), n.d(e, \"b\", function () {\n return o;\n });\n var r = n(3),\n i = new r.a(function (t) {\n return t.complete();\n });\n\n function o(t) {\n return t ? function (t) {\n return new r.a(function (e) {\n return t.schedule(function () {\n return e.complete();\n });\n });\n }(t) : i;\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return s;\n });\n var r = n(3),\n i = n(35),\n o = n(79);\n\n function s(t, e) {\n return e ? Object(o.a)(t, e) : t instanceof r.a ? t : new r.a(Object(i.a)(t));\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return a;\n });\n\n var r = n(0),\n i = function (t) {\n function e(e, n, r) {\n var i = t.call(this) || this;\n return i.parent = e, i.outerValue = n, i.outerIndex = r, i.index = 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.parent.notifyNext(this.outerValue, t, this.outerIndex, this.index++, this);\n }, e.prototype._error = function (t) {\n this.parent.notifyError(t, this), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.parent.notifyComplete(this), this.unsubscribe();\n }, e;\n }(n(1).a),\n o = n(35),\n s = n(3);\n\n function a(t, e, n, r, a) {\n if (void 0 === a && (a = new i(t, n, r)), !a.closed) return e instanceof s.a ? e.subscribe(a) : Object(o.a)(e)(a);\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n var r = !1,\n i = {\n Promise: void 0,\n\n set useDeprecatedSynchronousErrorHandling(t) {\n t && new Error().stack;\n r = t;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return r;\n }\n\n };\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n return t;\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n\n var r = n(0),\n i = function (t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function (t, e, n, r, i) {\n this.destination.next(e);\n }, e.prototype.notifyError = function (t, e) {\n this.destination.error(t);\n }, e.prototype.notifyComplete = function (t) {\n this.destination.complete();\n }, e;\n }(n(1).a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(0),\n i = n(1);\n\n function o(t, e) {\n return function (n) {\n return n.lift(new s(t, e));\n };\n }\n\n var s = function () {\n function t(t, e) {\n this.predicate = t, this.thisArg = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new a(t, this.predicate, this.thisArg));\n }, t;\n }(),\n a = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.predicate = n, i.thisArg = r, i.count = 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e;\n\n try {\n e = this.predicate.call(this.thisArg, t, this.count++);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n e && this.destination.next(t);\n }, e;\n }(i.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return r;\n }), n.d(e, \"a\", function () {\n return a;\n });\n var r,\n i = n(11),\n o = n(39),\n s = n(50);\n r || (r = {});\n\n var a = function () {\n function t(t, e, n) {\n this.kind = t, this.value = e, this.error = n, this.hasValue = \"N\" === t;\n }\n\n return t.prototype.observe = function (t) {\n switch (this.kind) {\n case \"N\":\n return t.next && t.next(this.value);\n\n case \"E\":\n return t.error && t.error(this.error);\n\n case \"C\":\n return t.complete && t.complete();\n }\n }, t.prototype.do = function (t, e, n) {\n switch (this.kind) {\n case \"N\":\n return t && t(this.value);\n\n case \"E\":\n return e && e(this.error);\n\n case \"C\":\n return n && n();\n }\n }, t.prototype.accept = function (t, e, n) {\n return t && \"function\" == typeof t.next ? this.observe(t) : this.do(t, e, n);\n }, t.prototype.toObservable = function () {\n switch (this.kind) {\n case \"N\":\n return Object(o.a)(this.value);\n\n case \"E\":\n return Object(s.a)(this.error);\n\n case \"C\":\n return Object(i.b)();\n }\n\n throw new Error(\"unexpected notification kind value\");\n }, t.createNext = function (e) {\n return void 0 !== e ? new t(\"N\", e) : t.undefinedValueNotification;\n }, t.createError = function (e) {\n return new t(\"E\", void 0, e);\n }, t.createComplete = function () {\n return t.completeNotification;\n }, t.completeNotification = new t(\"C\"), t.undefinedValueNotification = new t(\"N\", void 0), t;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n (function (t) {\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n var r = n(128),\n i = n(129),\n o = n(130);\n\n function s() {\n return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;\n }\n\n function a(t, e) {\n if (s() < e) throw new RangeError(\"Invalid typed array length\");\n return u.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = u.prototype : (null === t && (t = new u(e)), t.length = e), t;\n }\n\n function u(t, e, n) {\n if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, n);\n\n if (\"number\" == typeof t) {\n if (\"string\" == typeof e) throw new Error(\"If encoding is specified then the first argument must be a string\");\n return h(this, t);\n }\n\n return c(this, t, e, n);\n }\n\n function c(t, e, n, r) {\n if (\"number\" == typeof e) throw new TypeError('\"value\" argument must not be a number');\n return \"undefined\" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function (t, e, n, r) {\n if (e.byteLength, n < 0 || e.byteLength < n) throw new RangeError(\"'offset' is out of bounds\");\n if (e.byteLength < n + (r || 0)) throw new RangeError(\"'length' is out of bounds\");\n e = void 0 === n && void 0 === r ? new Uint8Array(e) : void 0 === r ? new Uint8Array(e, n) : new Uint8Array(e, n, r);\n u.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = u.prototype : t = d(t, e);\n return t;\n }(t, e, n, r) : \"string\" == typeof e ? function (t, e, n) {\n \"string\" == typeof n && \"\" !== n || (n = \"utf8\");\n if (!u.isEncoding(n)) throw new TypeError('\"encoding\" must be a valid string encoding');\n var r = 0 | p(e, n),\n i = (t = a(t, r)).write(e, n);\n i !== r && (t = t.slice(0, i));\n return t;\n }(t, e, n) : function (t, e) {\n if (u.isBuffer(e)) {\n var n = 0 | f(e.length);\n return 0 === (t = a(t, n)).length || e.copy(t, 0, 0, n), t;\n }\n\n if (e) {\n if (\"undefined\" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || \"length\" in e) return \"number\" != typeof e.length || (r = e.length) != r ? a(t, 0) : d(t, e);\n if (\"Buffer\" === e.type && o(e.data)) return d(t, e.data);\n }\n\n var r;\n throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\");\n }(t, e);\n }\n\n function l(t) {\n if (\"number\" != typeof t) throw new TypeError('\"size\" argument must be a number');\n if (t < 0) throw new RangeError('\"size\" argument must not be negative');\n }\n\n function h(t, e) {\n if (l(e), t = a(t, e < 0 ? 0 : 0 | f(e)), !u.TYPED_ARRAY_SUPPORT) for (var n = 0; n < e; ++n) {\n t[n] = 0;\n }\n return t;\n }\n\n function d(t, e) {\n var n = e.length < 0 ? 0 : 0 | f(e.length);\n t = a(t, n);\n\n for (var r = 0; r < n; r += 1) {\n t[r] = 255 & e[r];\n }\n\n return t;\n }\n\n function f(t) {\n if (t >= s()) throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + s().toString(16) + \" bytes\");\n return 0 | t;\n }\n\n function p(t, e) {\n if (u.isBuffer(t)) return t.length;\n if (\"undefined\" != typeof ArrayBuffer && \"function\" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;\n \"string\" != typeof t && (t = \"\" + t);\n var n = t.length;\n if (0 === n) return 0;\n\n for (var r = !1;;) {\n switch (e) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return n;\n\n case \"utf8\":\n case \"utf-8\":\n case void 0:\n return U(t).length;\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return 2 * n;\n\n case \"hex\":\n return n >>> 1;\n\n case \"base64\":\n return W(t).length;\n\n default:\n if (r) return U(t).length;\n e = (\"\" + e).toLowerCase(), r = !0;\n }\n }\n }\n\n function b(t, e, n) {\n var r = !1;\n if ((void 0 === e || e < 0) && (e = 0), e > this.length) return \"\";\n if ((void 0 === n || n > this.length) && (n = this.length), n <= 0) return \"\";\n if ((n >>>= 0) <= (e >>>= 0)) return \"\";\n\n for (t || (t = \"utf8\");;) {\n switch (t) {\n case \"hex\":\n return I(this, e, n);\n\n case \"utf8\":\n case \"utf-8\":\n return k(this, e, n);\n\n case \"ascii\":\n return C(this, e, n);\n\n case \"latin1\":\n case \"binary\":\n return A(this, e, n);\n\n case \"base64\":\n return x(this, e, n);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return O(this, e, n);\n\n default:\n if (r) throw new TypeError(\"Unknown encoding: \" + t);\n t = (t + \"\").toLowerCase(), r = !0;\n }\n }\n }\n\n function y(t, e, n) {\n var r = t[e];\n t[e] = t[n], t[n] = r;\n }\n\n function g(t, e, n, r, i) {\n if (0 === t.length) return -1;\n\n if (\"string\" == typeof n ? (r = n, n = 0) : n > 2147483647 ? n = 2147483647 : n < -2147483648 && (n = -2147483648), n = +n, isNaN(n) && (n = i ? 0 : t.length - 1), n < 0 && (n = t.length + n), n >= t.length) {\n if (i) return -1;\n n = t.length - 1;\n } else if (n < 0) {\n if (!i) return -1;\n n = 0;\n }\n\n if (\"string\" == typeof e && (e = u.from(e, r)), u.isBuffer(e)) return 0 === e.length ? -1 : m(t, e, n, r, i);\n if (\"number\" == typeof e) return e &= 255, u.TYPED_ARRAY_SUPPORT && \"function\" == typeof Uint8Array.prototype.indexOf ? i ? Uint8Array.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf.call(t, e, n) : m(t, [e], n, r, i);\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n\n function m(t, e, n, r, i) {\n var o,\n s = 1,\n a = t.length,\n u = e.length;\n\n if (void 0 !== r && (\"ucs2\" === (r = String(r).toLowerCase()) || \"ucs-2\" === r || \"utf16le\" === r || \"utf-16le\" === r)) {\n if (t.length < 2 || e.length < 2) return -1;\n s = 2, a /= 2, u /= 2, n /= 2;\n }\n\n function c(t, e) {\n return 1 === s ? t[e] : t.readUInt16BE(e * s);\n }\n\n if (i) {\n var l = -1;\n\n for (o = n; o < a; o++) {\n if (c(t, o) === c(e, -1 === l ? 0 : o - l)) {\n if (-1 === l && (l = o), o - l + 1 === u) return l * s;\n } else -1 !== l && (o -= o - l), l = -1;\n }\n } else for (n + u > a && (n = a - u), o = n; o >= 0; o--) {\n for (var h = !0, d = 0; d < u; d++) {\n if (c(t, o + d) !== c(e, d)) {\n h = !1;\n break;\n }\n }\n\n if (h) return o;\n }\n\n return -1;\n }\n\n function v(t, e, n, r) {\n n = Number(n) || 0;\n var i = t.length - n;\n r ? (r = Number(r)) > i && (r = i) : r = i;\n var o = e.length;\n if (o % 2 != 0) throw new TypeError(\"Invalid hex string\");\n r > o / 2 && (r = o / 2);\n\n for (var s = 0; s < r; ++s) {\n var a = parseInt(e.substr(2 * s, 2), 16);\n if (isNaN(a)) return s;\n t[n + s] = a;\n }\n\n return s;\n }\n\n function w(t, e, n, r) {\n return H(U(e, t.length - n), t, n, r);\n }\n\n function _(t, e, n, r) {\n return H(function (t) {\n for (var e = [], n = 0; n < t.length; ++n) {\n e.push(255 & t.charCodeAt(n));\n }\n\n return e;\n }(e), t, n, r);\n }\n\n function S(t, e, n, r) {\n return _(t, e, n, r);\n }\n\n function E(t, e, n, r) {\n return H(W(e), t, n, r);\n }\n\n function M(t, e, n, r) {\n return H(function (t, e) {\n for (var n, r, i, o = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) {\n n = t.charCodeAt(s), r = n >> 8, i = n % 256, o.push(i), o.push(r);\n }\n\n return o;\n }(e, t.length - n), t, n, r);\n }\n\n function x(t, e, n) {\n return 0 === e && n === t.length ? r.fromByteArray(t) : r.fromByteArray(t.slice(e, n));\n }\n\n function k(t, e, n) {\n n = Math.min(t.length, n);\n\n for (var r = [], i = e; i < n;) {\n var o,\n s,\n a,\n u,\n c = t[i],\n l = null,\n h = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;\n if (i + h <= n) switch (h) {\n case 1:\n c < 128 && (l = c);\n break;\n\n case 2:\n 128 == (192 & (o = t[i + 1])) && (u = (31 & c) << 6 | 63 & o) > 127 && (l = u);\n break;\n\n case 3:\n o = t[i + 1], s = t[i + 2], 128 == (192 & o) && 128 == (192 & s) && (u = (15 & c) << 12 | (63 & o) << 6 | 63 & s) > 2047 && (u < 55296 || u > 57343) && (l = u);\n break;\n\n case 4:\n o = t[i + 1], s = t[i + 2], a = t[i + 3], 128 == (192 & o) && 128 == (192 & s) && 128 == (192 & a) && (u = (15 & c) << 18 | (63 & o) << 12 | (63 & s) << 6 | 63 & a) > 65535 && u < 1114112 && (l = u);\n }\n null === l ? (l = 65533, h = 1) : l > 65535 && (l -= 65536, r.push(l >>> 10 & 1023 | 55296), l = 56320 | 1023 & l), r.push(l), i += h;\n }\n\n return function (t) {\n var e = t.length;\n if (e <= 4096) return String.fromCharCode.apply(String, t);\n var n = \"\",\n r = 0;\n\n for (; r < e;) {\n n += String.fromCharCode.apply(String, t.slice(r, r += 4096));\n }\n\n return n;\n }(r);\n }\n\n e.Buffer = u, e.SlowBuffer = function (t) {\n +t != t && (t = 0);\n return u.alloc(+t);\n }, e.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function () {\n try {\n var t = new Uint8Array(1);\n return t.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n }, 42 === t.foo() && \"function\" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength;\n } catch (t) {\n return !1;\n }\n }(), e.kMaxLength = s(), u.poolSize = 8192, u._augment = function (t) {\n return t.__proto__ = u.prototype, t;\n }, u.from = function (t, e, n) {\n return c(null, t, e, n);\n }, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, \"undefined\" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, {\n value: null,\n configurable: !0\n })), u.alloc = function (t, e, n) {\n return function (t, e, n, r) {\n return l(e), e <= 0 ? a(t, e) : void 0 !== n ? \"string\" == typeof r ? a(t, e).fill(n, r) : a(t, e).fill(n) : a(t, e);\n }(null, t, e, n);\n }, u.allocUnsafe = function (t) {\n return h(null, t);\n }, u.allocUnsafeSlow = function (t) {\n return h(null, t);\n }, u.isBuffer = function (t) {\n return !(null == t || !t._isBuffer);\n }, u.compare = function (t, e) {\n if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError(\"Arguments must be Buffers\");\n if (t === e) return 0;\n\n for (var n = t.length, r = e.length, i = 0, o = Math.min(n, r); i < o; ++i) {\n if (t[i] !== e[i]) {\n n = t[i], r = e[i];\n break;\n }\n }\n\n return n < r ? -1 : r < n ? 1 : 0;\n }, u.isEncoding = function (t) {\n switch (String(t).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 !0;\n\n default:\n return !1;\n }\n }, u.concat = function (t, e) {\n if (!o(t)) throw new TypeError('\"list\" argument must be an Array of Buffers');\n if (0 === t.length) return u.alloc(0);\n var n;\n if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n) {\n e += t[n].length;\n }\n var r = u.allocUnsafe(e),\n i = 0;\n\n for (n = 0; n < t.length; ++n) {\n var s = t[n];\n if (!u.isBuffer(s)) throw new TypeError('\"list\" argument must be an Array of Buffers');\n s.copy(r, i), i += s.length;\n }\n\n return r;\n }, u.byteLength = p, u.prototype._isBuffer = !0, u.prototype.swap16 = function () {\n var t = this.length;\n if (t % 2 != 0) throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n\n for (var e = 0; e < t; e += 2) {\n y(this, e, e + 1);\n }\n\n return this;\n }, u.prototype.swap32 = function () {\n var t = this.length;\n if (t % 4 != 0) throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n\n for (var e = 0; e < t; e += 4) {\n y(this, e, e + 3), y(this, e + 1, e + 2);\n }\n\n return this;\n }, u.prototype.swap64 = function () {\n var t = this.length;\n if (t % 8 != 0) throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n\n for (var e = 0; e < t; e += 8) {\n y(this, e, e + 7), y(this, e + 1, e + 6), y(this, e + 2, e + 5), y(this, e + 3, e + 4);\n }\n\n return this;\n }, u.prototype.toString = function () {\n var t = 0 | this.length;\n return 0 === t ? \"\" : 0 === arguments.length ? k(this, 0, t) : b.apply(this, arguments);\n }, u.prototype.equals = function (t) {\n if (!u.isBuffer(t)) throw new TypeError(\"Argument must be a Buffer\");\n return this === t || 0 === u.compare(this, t);\n }, u.prototype.inspect = function () {\n var t = \"\",\n n = e.INSPECT_MAX_BYTES;\n return this.length > 0 && (t = this.toString(\"hex\", 0, n).match(/.{2}/g).join(\" \"), this.length > n && (t += \" ... \")), \"\";\n }, u.prototype.compare = function (t, e, n, r, i) {\n if (!u.isBuffer(t)) throw new TypeError(\"Argument must be a Buffer\");\n if (void 0 === e && (e = 0), void 0 === n && (n = t ? t.length : 0), void 0 === r && (r = 0), void 0 === i && (i = this.length), e < 0 || n > t.length || r < 0 || i > this.length) throw new RangeError(\"out of range index\");\n if (r >= i && e >= n) return 0;\n if (r >= i) return -1;\n if (e >= n) return 1;\n if (this === t) return 0;\n\n for (var o = (i >>>= 0) - (r >>>= 0), s = (n >>>= 0) - (e >>>= 0), a = Math.min(o, s), c = this.slice(r, i), l = t.slice(e, n), h = 0; h < a; ++h) {\n if (c[h] !== l[h]) {\n o = c[h], s = l[h];\n break;\n }\n }\n\n return o < s ? -1 : s < o ? 1 : 0;\n }, u.prototype.includes = function (t, e, n) {\n return -1 !== this.indexOf(t, e, n);\n }, u.prototype.indexOf = function (t, e, n) {\n return g(this, t, e, n, !0);\n }, u.prototype.lastIndexOf = function (t, e, n) {\n return g(this, t, e, n, !1);\n }, u.prototype.write = function (t, e, n, r) {\n if (void 0 === e) r = \"utf8\", n = this.length, e = 0;else if (void 0 === n && \"string\" == typeof e) r = e, n = this.length, e = 0;else {\n if (!isFinite(e)) throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n e |= 0, isFinite(n) ? (n |= 0, void 0 === r && (r = \"utf8\")) : (r = n, n = void 0);\n }\n var i = this.length - e;\n if ((void 0 === n || n > i) && (n = i), t.length > 0 && (n < 0 || e < 0) || e > this.length) throw new RangeError(\"Attempt to write outside buffer bounds\");\n r || (r = \"utf8\");\n\n for (var o = !1;;) {\n switch (r) {\n case \"hex\":\n return v(this, t, e, n);\n\n case \"utf8\":\n case \"utf-8\":\n return w(this, t, e, n);\n\n case \"ascii\":\n return _(this, t, e, n);\n\n case \"latin1\":\n case \"binary\":\n return S(this, t, e, n);\n\n case \"base64\":\n return E(this, t, e, n);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return M(this, t, e, n);\n\n default:\n if (o) throw new TypeError(\"Unknown encoding: \" + r);\n r = (\"\" + r).toLowerCase(), o = !0;\n }\n }\n }, u.prototype.toJSON = function () {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function C(t, e, n) {\n var r = \"\";\n n = Math.min(t.length, n);\n\n for (var i = e; i < n; ++i) {\n r += String.fromCharCode(127 & t[i]);\n }\n\n return r;\n }\n\n function A(t, e, n) {\n var r = \"\";\n n = Math.min(t.length, n);\n\n for (var i = e; i < n; ++i) {\n r += String.fromCharCode(t[i]);\n }\n\n return r;\n }\n\n function I(t, e, n) {\n var r = t.length;\n (!e || e < 0) && (e = 0), (!n || n < 0 || n > r) && (n = r);\n\n for (var i = \"\", o = e; o < n; ++o) {\n i += F(t[o]);\n }\n\n return i;\n }\n\n function O(t, e, n) {\n for (var r = t.slice(e, n), i = \"\", o = 0; o < r.length; o += 2) {\n i += String.fromCharCode(r[o] + 256 * r[o + 1]);\n }\n\n return i;\n }\n\n function j(t, e, n) {\n if (t % 1 != 0 || t < 0) throw new RangeError(\"offset is not uint\");\n if (t + e > n) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n\n function R(t, e, n, r, i, o) {\n if (!u.isBuffer(t)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (e > i || e < o) throw new RangeError('\"value\" argument is out of bounds');\n if (n + r > t.length) throw new RangeError(\"Index out of range\");\n }\n\n function N(t, e, n, r) {\n e < 0 && (e = 65535 + e + 1);\n\n for (var i = 0, o = Math.min(t.length - n, 2); i < o; ++i) {\n t[n + i] = (e & 255 << 8 * (r ? i : 1 - i)) >>> 8 * (r ? i : 1 - i);\n }\n }\n\n function T(t, e, n, r) {\n e < 0 && (e = 4294967295 + e + 1);\n\n for (var i = 0, o = Math.min(t.length - n, 4); i < o; ++i) {\n t[n + i] = e >>> 8 * (r ? i : 3 - i) & 255;\n }\n }\n\n function P(t, e, n, r, i, o) {\n if (n + r > t.length) throw new RangeError(\"Index out of range\");\n if (n < 0) throw new RangeError(\"Index out of range\");\n }\n\n function L(t, e, n, r, o) {\n return o || P(t, 0, n, 4), i.write(t, e, n, r, 23, 4), n + 4;\n }\n\n function D(t, e, n, r, o) {\n return o || P(t, 0, n, 8), i.write(t, e, n, r, 52, 8), n + 8;\n }\n\n u.prototype.slice = function (t, e) {\n var n,\n r = this.length;\n if ((t = ~~t) < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), (e = void 0 === e ? r : ~~e) < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), e < t && (e = t), u.TYPED_ARRAY_SUPPORT) (n = this.subarray(t, e)).__proto__ = u.prototype;else {\n var i = e - t;\n n = new u(i, void 0);\n\n for (var o = 0; o < i; ++o) {\n n[o] = this[o + t];\n }\n }\n return n;\n }, u.prototype.readUIntLE = function (t, e, n) {\n t |= 0, e |= 0, n || j(t, e, this.length);\n\n for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256);) {\n r += this[t + o] * i;\n }\n\n return r;\n }, u.prototype.readUIntBE = function (t, e, n) {\n t |= 0, e |= 0, n || j(t, e, this.length);\n\n for (var r = this[t + --e], i = 1; e > 0 && (i *= 256);) {\n r += this[t + --e] * i;\n }\n\n return r;\n }, u.prototype.readUInt8 = function (t, e) {\n return e || j(t, 1, this.length), this[t];\n }, u.prototype.readUInt16LE = function (t, e) {\n return e || j(t, 2, this.length), this[t] | this[t + 1] << 8;\n }, u.prototype.readUInt16BE = function (t, e) {\n return e || j(t, 2, this.length), this[t] << 8 | this[t + 1];\n }, u.prototype.readUInt32LE = function (t, e) {\n return e || j(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + 16777216 * this[t + 3];\n }, u.prototype.readUInt32BE = function (t, e) {\n return e || j(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]);\n }, u.prototype.readIntLE = function (t, e, n) {\n t |= 0, e |= 0, n || j(t, e, this.length);\n\n for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256);) {\n r += this[t + o] * i;\n }\n\n return r >= (i *= 128) && (r -= Math.pow(2, 8 * e)), r;\n }, u.prototype.readIntBE = function (t, e, n) {\n t |= 0, e |= 0, n || j(t, e, this.length);\n\n for (var r = e, i = 1, o = this[t + --r]; r > 0 && (i *= 256);) {\n o += this[t + --r] * i;\n }\n\n return o >= (i *= 128) && (o -= Math.pow(2, 8 * e)), o;\n }, u.prototype.readInt8 = function (t, e) {\n return e || j(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t];\n }, u.prototype.readInt16LE = function (t, e) {\n e || j(t, 2, this.length);\n var n = this[t] | this[t + 1] << 8;\n return 32768 & n ? 4294901760 | n : n;\n }, u.prototype.readInt16BE = function (t, e) {\n e || j(t, 2, this.length);\n var n = this[t + 1] | this[t] << 8;\n return 32768 & n ? 4294901760 | n : n;\n }, u.prototype.readInt32LE = function (t, e) {\n return e || j(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24;\n }, u.prototype.readInt32BE = function (t, e) {\n return e || j(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3];\n }, u.prototype.readFloatLE = function (t, e) {\n return e || j(t, 4, this.length), i.read(this, t, !0, 23, 4);\n }, u.prototype.readFloatBE = function (t, e) {\n return e || j(t, 4, this.length), i.read(this, t, !1, 23, 4);\n }, u.prototype.readDoubleLE = function (t, e) {\n return e || j(t, 8, this.length), i.read(this, t, !0, 52, 8);\n }, u.prototype.readDoubleBE = function (t, e) {\n return e || j(t, 8, this.length), i.read(this, t, !1, 52, 8);\n }, u.prototype.writeUIntLE = function (t, e, n, r) {\n (t = +t, e |= 0, n |= 0, r) || R(this, t, e, n, Math.pow(2, 8 * n) - 1, 0);\n var i = 1,\n o = 0;\n\n for (this[e] = 255 & t; ++o < n && (i *= 256);) {\n this[e + o] = t / i & 255;\n }\n\n return e + n;\n }, u.prototype.writeUIntBE = function (t, e, n, r) {\n (t = +t, e |= 0, n |= 0, r) || R(this, t, e, n, Math.pow(2, 8 * n) - 1, 0);\n var i = n - 1,\n o = 1;\n\n for (this[e + i] = 255 & t; --i >= 0 && (o *= 256);) {\n this[e + i] = t / o & 255;\n }\n\n return e + n;\n }, u.prototype.writeUInt8 = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1;\n }, u.prototype.writeUInt16LE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : N(this, t, e, !0), e + 2;\n }, u.prototype.writeUInt16BE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : N(this, t, e, !1), e + 2;\n }, u.prototype.writeUInt32LE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16, this[e + 1] = t >>> 8, this[e] = 255 & t) : T(this, t, e, !0), e + 4;\n }, u.prototype.writeUInt32BE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : T(this, t, e, !1), e + 4;\n }, u.prototype.writeIntLE = function (t, e, n, r) {\n if (t = +t, e |= 0, !r) {\n var i = Math.pow(2, 8 * n - 1);\n R(this, t, e, n, i - 1, -i);\n }\n\n var o = 0,\n s = 1,\n a = 0;\n\n for (this[e] = 255 & t; ++o < n && (s *= 256);) {\n t < 0 && 0 === a && 0 !== this[e + o - 1] && (a = 1), this[e + o] = (t / s >> 0) - a & 255;\n }\n\n return e + n;\n }, u.prototype.writeIntBE = function (t, e, n, r) {\n if (t = +t, e |= 0, !r) {\n var i = Math.pow(2, 8 * n - 1);\n R(this, t, e, n, i - 1, -i);\n }\n\n var o = n - 1,\n s = 1,\n a = 0;\n\n for (this[e + o] = 255 & t; --o >= 0 && (s *= 256);) {\n t < 0 && 0 === a && 0 !== this[e + o + 1] && (a = 1), this[e + o] = (t / s >> 0) - a & 255;\n }\n\n return e + n;\n }, u.prototype.writeInt8 = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1), this[e] = 255 & t, e + 1;\n }, u.prototype.writeInt16LE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : N(this, t, e, !0), e + 2;\n }, u.prototype.writeInt16BE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : N(this, t, e, !1), e + 2;\n }, u.prototype.writeInt32LE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[e + 2] = t >>> 16, this[e + 3] = t >>> 24) : T(this, t, e, !0), e + 4;\n }, u.prototype.writeInt32BE = function (t, e, n) {\n return t = +t, e |= 0, n || R(this, t, e, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), u.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : T(this, t, e, !1), e + 4;\n }, u.prototype.writeFloatLE = function (t, e, n) {\n return L(this, t, e, !0, n);\n }, u.prototype.writeFloatBE = function (t, e, n) {\n return L(this, t, e, !1, n);\n }, u.prototype.writeDoubleLE = function (t, e, n) {\n return D(this, t, e, !0, n);\n }, u.prototype.writeDoubleBE = function (t, e, n) {\n return D(this, t, e, !1, n);\n }, u.prototype.copy = function (t, e, n, r) {\n if (n || (n = 0), r || 0 === r || (r = this.length), e >= t.length && (e = t.length), e || (e = 0), r > 0 && r < n && (r = n), r === n) return 0;\n if (0 === t.length || 0 === this.length) return 0;\n if (e < 0) throw new RangeError(\"targetStart out of bounds\");\n if (n < 0 || n >= this.length) throw new RangeError(\"sourceStart out of bounds\");\n if (r < 0) throw new RangeError(\"sourceEnd out of bounds\");\n r > this.length && (r = this.length), t.length - e < r - n && (r = t.length - e + n);\n var i,\n o = r - n;\n if (this === t && n < e && e < r) for (i = o - 1; i >= 0; --i) {\n t[i + e] = this[i + n];\n } else if (o < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (i = 0; i < o; ++i) {\n t[i + e] = this[i + n];\n } else Uint8Array.prototype.set.call(t, this.subarray(n, n + o), e);\n return o;\n }, u.prototype.fill = function (t, e, n, r) {\n if (\"string\" == typeof t) {\n if (\"string\" == typeof e ? (r = e, e = 0, n = this.length) : \"string\" == typeof n && (r = n, n = this.length), 1 === t.length) {\n var i = t.charCodeAt(0);\n i < 256 && (t = i);\n }\n\n if (void 0 !== r && \"string\" != typeof r) throw new TypeError(\"encoding must be a string\");\n if (\"string\" == typeof r && !u.isEncoding(r)) throw new TypeError(\"Unknown encoding: \" + r);\n } else \"number\" == typeof t && (t &= 255);\n\n if (e < 0 || this.length < e || this.length < n) throw new RangeError(\"Out of range index\");\n if (n <= e) return this;\n var o;\n if (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0), \"number\" == typeof t) for (o = e; o < n; ++o) {\n this[o] = t;\n } else {\n var s = u.isBuffer(t) ? t : U(new u(t, r).toString()),\n a = s.length;\n\n for (o = 0; o < n - e; ++o) {\n this[o + e] = s[o % a];\n }\n }\n return this;\n };\n var B = /[^+\\/0-9A-Za-z-_]/g;\n\n function F(t) {\n return t < 16 ? \"0\" + t.toString(16) : t.toString(16);\n }\n\n function U(t, e) {\n var n;\n e = e || 1 / 0;\n\n for (var r = t.length, i = null, o = [], s = 0; s < r; ++s) {\n if ((n = t.charCodeAt(s)) > 55295 && n < 57344) {\n if (!i) {\n if (n > 56319) {\n (e -= 3) > -1 && o.push(239, 191, 189);\n continue;\n }\n\n if (s + 1 === r) {\n (e -= 3) > -1 && o.push(239, 191, 189);\n continue;\n }\n\n i = n;\n continue;\n }\n\n if (n < 56320) {\n (e -= 3) > -1 && o.push(239, 191, 189), i = n;\n continue;\n }\n\n n = 65536 + (i - 55296 << 10 | n - 56320);\n } else i && (e -= 3) > -1 && o.push(239, 191, 189);\n\n if (i = null, n < 128) {\n if ((e -= 1) < 0) break;\n o.push(n);\n } else if (n < 2048) {\n if ((e -= 2) < 0) break;\n o.push(n >> 6 | 192, 63 & n | 128);\n } else if (n < 65536) {\n if ((e -= 3) < 0) break;\n o.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128);\n } else {\n if (!(n < 1114112)) throw new Error(\"Invalid code point\");\n if ((e -= 4) < 0) break;\n o.push(n >> 18 | 240, n >> 12 & 63 | 128, n >> 6 & 63 | 128, 63 & n | 128);\n }\n }\n\n return o;\n }\n\n function W(t) {\n return r.toByteArray(function (t) {\n if ((t = function (t) {\n return t.trim ? t.trim() : t.replace(/^\\s+|\\s+$/g, \"\");\n }(t).replace(B, \"\")).length < 2) return \"\";\n\n for (; t.length % 4 != 0;) {\n t += \"=\";\n }\n\n return t;\n }(t));\n }\n\n function H(t, e, n, r) {\n for (var i = 0; i < r && !(i + n >= e.length || i >= t.length); ++i) {\n e[i + n] = t[i];\n }\n\n return i;\n }\n }).call(this, n(63));\n}, function (t, e, n) {\n \"use strict\";\n\n function r() {\n return \"function\" == typeof Symbol && Symbol.iterator ? Symbol.iterator : \"@@iterator\";\n }\n\n n.d(e, \"a\", function () {\n return i;\n });\n var i = r();\n}, function (t, e, n) {\n \"use strict\";\n\n function r() {}\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n return \"function\" == typeof Symbol && Symbol.observable || \"@@observable\";\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n function t() {\n return Error.call(this), this.message = \"object unsubscribed\", this.name = \"ObjectUnsubscribedError\", this;\n }\n\n return t.prototype = Object.create(Error.prototype), t;\n }();\n}, function (t, e) {\n \"function\" == typeof Object.create ? t.exports = function (t, e) {\n e && (t.super_ = e, t.prototype = Object.create(e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }));\n } : t.exports = function (t, e) {\n if (e) {\n t.super_ = e;\n\n var n = function n() {};\n\n n.prototype = e.prototype, t.prototype = new n(), t.prototype.constructor = t;\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n function t() {\n return Error.call(this), this.message = \"argument out of range\", this.name = \"ArgumentOutOfRangeError\", this;\n }\n\n return t.prototype = Object.create(Error.prototype), t;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n return \"function\" == typeof t;\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n function t() {\n return Error.call(this), this.message = \"no elements in sequence\", this.name = \"EmptyError\", this;\n }\n\n return t.prototype = Object.create(Error.prototype), t;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return a;\n }), n.d(e, \"a\", function () {\n return l;\n });\n var r = n(0),\n i = n(9),\n o = n(12),\n s = n(2);\n\n function a(t, e, n) {\n return void 0 === n && (n = Number.POSITIVE_INFINITY), \"function\" == typeof e ? function (r) {\n return r.pipe(a(function (n, r) {\n return Object(o.a)(t(n, r)).pipe(Object(i.a)(function (t, i) {\n return e(n, t, r, i);\n }));\n }, n));\n } : (\"number\" == typeof e && (n = e), function (e) {\n return e.lift(new u(t, n));\n });\n }\n\n var u = function () {\n function t(t, e) {\n void 0 === e && (e = Number.POSITIVE_INFINITY), this.project = t, this.concurrent = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new c(t, this.project, this.concurrent));\n }, t;\n }(),\n c = function (t) {\n function e(e, n, r) {\n void 0 === r && (r = Number.POSITIVE_INFINITY);\n var i = t.call(this, e) || this;\n return i.project = n, i.concurrent = r, i.hasCompleted = !1, i.buffer = [], i.active = 0, i.index = 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.active < this.concurrent ? this._tryNext(t) : this.buffer.push(t);\n }, e.prototype._tryNext = function (t) {\n var e,\n n = this.index++;\n\n try {\n e = this.project(t, n);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.active++, this._innerSub(e);\n }, e.prototype._innerSub = function (t) {\n var e = new s.a(this),\n n = this.destination;\n n.add(e);\n var r = Object(s.c)(t, e);\n r !== e && n.add(r);\n }, e.prototype._complete = function () {\n this.hasCompleted = !0, 0 === this.active && 0 === this.buffer.length && this.destination.complete(), this.unsubscribe();\n }, e.prototype.notifyNext = function (t) {\n this.destination.next(t);\n }, e.prototype.notifyComplete = function () {\n var t = this.buffer;\n this.active--, t.length > 0 ? this._next(t.shift()) : 0 === this.active && this.hasCompleted && this.destination.complete();\n }, e;\n }(s.b),\n l = a;\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return s;\n });\n var r = n(3),\n i = n(81),\n o = n(57);\n\n function s(t, e) {\n return e ? Object(o.a)(t, e) : new r.a(Object(i.a)(t));\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n\n var r = n(0),\n i = n(62),\n o = function (t) {\n function e(n, r) {\n void 0 === r && (r = i.a.now);\n var o = t.call(this, n, function () {\n return e.delegate && e.delegate !== o ? e.delegate.now() : r();\n }) || this;\n return o.actions = [], o.active = !1, o.scheduled = void 0, o;\n }\n\n return r.a(e, t), e.prototype.schedule = function (n, r, i) {\n return void 0 === r && (r = 0), e.delegate && e.delegate !== this ? e.delegate.schedule(n, r, i) : t.prototype.schedule.call(this, n, r, i);\n }, e.prototype.flush = function (t) {\n var e = this.actions;\n if (this.active) e.push(t);else {\n var n;\n this.active = !0;\n\n do {\n if (n = t.execute(t.state, t.delay)) break;\n } while (t = e.shift());\n\n if (this.active = !1, n) {\n for (; t = e.shift();) {\n t.unsubscribe();\n }\n\n throw n;\n }\n }\n }, e;\n }(i.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return s;\n });\n\n var r = n(0),\n i = n(6),\n o = n(4),\n s = function (t) {\n function e() {\n var e = null !== t && t.apply(this, arguments) || this;\n return e.value = null, e.hasNext = !1, e.hasCompleted = !1, e;\n }\n\n return r.a(e, t), e.prototype._subscribe = function (e) {\n return this.hasError ? (e.error(this.thrownError), o.a.EMPTY) : this.hasCompleted && this.hasNext ? (e.next(this.value), e.complete(), o.a.EMPTY) : t.prototype._subscribe.call(this, e);\n }, e.prototype.next = function (t) {\n this.hasCompleted || (this.value = t, this.hasNext = !0);\n }, e.prototype.error = function (e) {\n this.hasCompleted || t.prototype.error.call(this, e);\n }, e.prototype.complete = function () {\n this.hasCompleted = !0, this.hasNext && t.prototype.next.call(this, this.value), t.prototype.complete.call(this);\n }, e;\n }(i.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n\n var r = n(0),\n i = function (t) {\n function e(e, n) {\n var r = t.call(this, e, n) || this;\n return r.scheduler = e, r.work = n, r.pending = !1, r;\n }\n\n return r.a(e, t), e.prototype.schedule = function (t, e) {\n if (void 0 === e && (e = 0), this.closed) return this;\n this.state = t;\n var n = this.id,\n r = this.scheduler;\n return null != n && (this.id = this.recycleAsyncId(r, n, e)), this.pending = !0, this.delay = e, this.id = this.id || this.requestAsyncId(r, this.id, e), this;\n }, e.prototype.requestAsyncId = function (t, e, n) {\n return void 0 === n && (n = 0), setInterval(t.flush.bind(t, this), n);\n }, e.prototype.recycleAsyncId = function (t, e, n) {\n if (void 0 === n && (n = 0), null !== n && this.delay === n && !1 === this.pending) return e;\n clearInterval(e);\n }, e.prototype.execute = function (t, e) {\n if (this.closed) return new Error(\"executing a cancelled action\");\n this.pending = !1;\n\n var n = this._execute(t, e);\n\n if (n) return n;\n !1 === this.pending && null != this.id && (this.id = this.recycleAsyncId(this.scheduler, this.id, null));\n }, e.prototype._execute = function (t, e) {\n var n = !1,\n r = void 0;\n\n try {\n this.work(t);\n } catch (t) {\n n = !0, r = !!t && t || new Error(t);\n }\n\n if (n) return this.unsubscribe(), r;\n }, e.prototype._unsubscribe = function () {\n var t = this.id,\n e = this.scheduler,\n n = e.actions,\n r = n.indexOf(this);\n this.work = null, this.state = null, this.pending = !1, this.scheduler = null, -1 !== r && n.splice(r, 1), null != t && (this.id = this.recycleAsyncId(e, t, null)), this.delay = null;\n }, e;\n }(function (t) {\n function e(e, n) {\n return t.call(this) || this;\n }\n\n return r.a(e, t), e.prototype.schedule = function (t, e) {\n return void 0 === e && (e = 0), this;\n }, e;\n }(n(4).a));\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n var r = n(8);\n\n function i(t) {\n return !Object(r.a)(t) && t - parseFloat(t) + 1 >= 0;\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(39),\n i = n(75);\n\n function o() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return Object(i.a)()(r.a.apply(void 0, t));\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return l;\n });\n\n var r = n(81),\n i = n(36),\n o = n(20),\n s = n(22),\n a = n(82),\n u = n(83),\n c = n(55),\n l = function l(t) {\n if (t && \"function\" == typeof t[s.a]) return l = t, function (t) {\n var e = l[s.a]();\n if (\"function\" != typeof e.subscribe) throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");\n return e.subscribe(t);\n };\n if (Object(a.a)(t)) return Object(r.a)(t);\n if (Object(u.a)(t)) return n = t, function (t) {\n return n.then(function (e) {\n t.closed || (t.next(e), t.complete());\n }, function (e) {\n return t.error(e);\n }).then(null, i.a), t;\n };\n if (t && \"function\" == typeof t[o.a]) return e = t, function (t) {\n for (var n = e[o.a]();;) {\n var r = void 0;\n\n try {\n r = n.next();\n } catch (e) {\n return t.error(e), t;\n }\n\n if (r.done) {\n t.complete();\n break;\n }\n\n if (t.next(r.value), t.closed) break;\n }\n\n return \"function\" == typeof n.return && t.add(function () {\n n.return && n.return();\n }), t;\n };\n var e,\n n,\n l,\n h = Object(c.a)(t) ? \"an invalid object\" : \"'\" + t + \"'\";\n throw new TypeError(\"You provided \" + h + \" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.\");\n };\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n setTimeout(function () {\n throw t;\n }, 0);\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n /*! safe-buffer. MIT License. Feross Aboukhadijeh */\n var r = n(19),\n i = r.Buffer;\n\n function o(t, e) {\n for (var n in t) {\n e[n] = t[n];\n }\n }\n\n function s(t, e, n) {\n return i(t, e, n);\n }\n\n i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? t.exports = r : (o(r, e), e.Buffer = s), s.prototype = Object.create(i.prototype), o(i, s), s.from = function (t, e, n) {\n if (\"number\" == typeof t) throw new TypeError(\"Argument must not be a number\");\n return i(t, e, n);\n }, s.alloc = function (t, e, n) {\n if (\"number\" != typeof t) throw new TypeError(\"Argument must be a number\");\n var r = i(t);\n return void 0 !== e ? \"string\" == typeof n ? r.fill(e, n) : r.fill(e) : r.fill(0), r;\n }, s.allocUnsafe = function (t) {\n if (\"number\" != typeof t) throw new TypeError(\"Argument must be a number\");\n return i(t);\n }, s.allocUnsafeSlow = function (t) {\n if (\"number\" != typeof t) throw new TypeError(\"Argument must be a number\");\n return r.SlowBuffer(t);\n };\n}, function (t, e, n) {\n \"use strict\";\n\n (function (t) {\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.isInIFrame = e.createQrUrl = e.getFavicon = e.range = e.isBigNumber = e.ensureParsedJSONObject = e.ensureBN = e.ensureRegExpString = e.ensureIntNumber = e.ensureBuffer = e.ensureAddressString = e.ensureEvenLengthHexString = e.ensureHexString = e.isHexString = e.prepend0x = e.strip0x = e.has0xPrefix = e.hexStringFromIntNumber = e.intNumberFromHexString = e.bigIntStringFromBN = e.hexStringFromBuffer = e.hexStringToUint8Array = e.uint8ArrayToHex = e.randomBytesHex = void 0;\n var i = r(n(66)),\n o = n(139),\n s = n(67),\n a = /^[0-9]*$/,\n u = /^[a-f0-9]*$/;\n\n function c(t) {\n return _toConsumableArray(t).map(function (t) {\n return t.toString(16).padStart(2, \"0\");\n }).join(\"\");\n }\n\n function l(t) {\n return t.startsWith(\"0x\") || t.startsWith(\"0X\");\n }\n\n function h(t) {\n return l(t) ? t.slice(2) : t;\n }\n\n function d(t) {\n return l(t) ? \"0x\" + t.slice(2) : \"0x\" + t;\n }\n\n function f(t) {\n if (\"string\" != typeof t) return !1;\n var e = h(t).toLowerCase();\n return u.test(e);\n }\n\n function p(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;\n\n if (\"string\" == typeof t) {\n var _n2 = h(t).toLowerCase();\n\n if (u.test(_n2)) return (0, s.HexString)(e ? \"0x\" + _n2 : _n2);\n }\n\n throw new Error(\"\\\"\".concat(String(t), \"\\\" is not a hexadecimal string\"));\n }\n\n function b(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;\n var n = p(t, !1);\n return n.length % 2 == 1 && (n = (0, s.HexString)(\"0\" + n)), e ? (0, s.HexString)(\"0x\" + n) : n;\n }\n\n function y(t) {\n if (\"number\" == typeof t && Number.isInteger(t)) return (0, s.IntNumber)(t);\n\n if (\"string\" == typeof t) {\n if (a.test(t)) return (0, s.IntNumber)(Number(t));\n if (f(t)) return (0, s.IntNumber)(new i.default(b(t, !1), 16).toNumber());\n }\n\n throw new Error(\"Not an integer: \" + String(t));\n }\n\n function g(t) {\n if (null == t || \"function\" != typeof t.constructor) return !1;\n var e = t.constructor;\n return \"function\" == typeof e.config && \"number\" == typeof e.EUCLID;\n }\n\n e.randomBytesHex = function (t) {\n return c(crypto.getRandomValues(new Uint8Array(t)));\n }, e.uint8ArrayToHex = c, e.hexStringToUint8Array = function (t) {\n return new Uint8Array(t.match(/.{1,2}/g).map(function (t) {\n return parseInt(t, 16);\n }));\n }, e.hexStringFromBuffer = function (t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;\n var n = t.toString(\"hex\");\n return (0, s.HexString)(e ? \"0x\" + n : n);\n }, e.bigIntStringFromBN = function (t) {\n return (0, s.BigIntString)(t.toString(10));\n }, e.intNumberFromHexString = function (t) {\n return (0, s.IntNumber)(new i.default(b(t, !1), 16).toNumber());\n }, e.hexStringFromIntNumber = function (t) {\n return (0, s.HexString)(\"0x\" + new i.default(t).toString(16));\n }, e.has0xPrefix = l, e.strip0x = h, e.prepend0x = d, e.isHexString = f, e.ensureHexString = p, e.ensureEvenLengthHexString = b, e.ensureAddressString = function (t) {\n if (\"string\" == typeof t) {\n var _e2 = h(t).toLowerCase();\n\n if (f(_e2) && 40 === _e2.length) return (0, s.AddressString)(d(_e2));\n }\n\n throw new Error(\"Invalid Ethereum address: \" + String(t));\n }, e.ensureBuffer = function (e) {\n if (t.isBuffer(e)) return e;\n\n if (\"string\" == typeof e) {\n if (f(e)) {\n var _n3 = b(e, !1);\n\n return t.from(_n3, \"hex\");\n }\n\n return t.from(e, \"utf8\");\n }\n\n throw new Error(\"Not binary data: \" + String(e));\n }, e.ensureIntNumber = y, e.ensureRegExpString = function (t) {\n if (t instanceof RegExp) return (0, s.RegExpString)(t.toString());\n throw new Error(\"Not a RegExp: \" + String(t));\n }, e.ensureBN = function (t) {\n if (null !== t && (i.default.isBN(t) || g(t))) return new i.default(t.toString(10), 10);\n if (\"number\" == typeof t) return new i.default(y(t));\n\n if (\"string\" == typeof t) {\n if (a.test(t)) return new i.default(t, 10);\n if (f(t)) return new i.default(b(t, !1), 16);\n }\n\n throw new Error(\"Not an integer: \" + String(t));\n }, e.ensureParsedJSONObject = function (t) {\n if (\"string\" == typeof t) return JSON.parse(t);\n if (\"object\" == _typeof(t)) return t;\n throw new Error(\"Not a JSON string or an object: \" + String(t));\n }, e.isBigNumber = g, e.range = function (t, e) {\n return Array.from({\n length: e - t\n }, function (e, n) {\n return t + n;\n });\n }, e.getFavicon = function () {\n var t = document.querySelector('link[sizes=\"192x192\"]') || document.querySelector('link[sizes=\"180x180\"]') || document.querySelector('link[rel=\"icon\"]') || document.querySelector('link[rel=\"shortcut icon\"]'),\n _document$location = document.location,\n e = _document$location.protocol,\n n = _document$location.host,\n r = t ? t.getAttribute(\"href\") : null;\n return !r || r.startsWith(\"javascript:\") ? null : r.startsWith(\"http://\") || r.startsWith(\"https://\") || r.startsWith(\"data:\") ? r : r.startsWith(\"//\") ? e + r : \"\".concat(e, \"//\").concat(n).concat(r);\n }, e.createQrUrl = function (t, e, n, r, i, s) {\n var _ref;\n\n var a = r ? \"parent-id\" : \"id\";\n return \"\".concat(n, \"/#/link?\").concat((0, o.stringify)((_ref = {}, _defineProperty(_ref, a, t), _defineProperty(_ref, \"secret\", e), _defineProperty(_ref, \"server\", n), _defineProperty(_ref, \"v\", i), _defineProperty(_ref, \"chainId\", s), _ref)));\n }, e.isInIFrame = function () {\n try {\n return null !== window.frameElement;\n } catch (t) {\n return !1;\n }\n };\n }).call(this, n(19).Buffer);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return s;\n });\n var r = n(10),\n i = n(29),\n o = n(57);\n\n function s() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = t[t.length - 1];\n return Object(r.a)(n) ? (t.pop(), Object(o.a)(t, n)) : Object(i.a)(t);\n }\n}, function (t, e) {\n var n,\n r,\n i = t.exports = {};\n\n function o() {\n throw new Error(\"setTimeout has not been defined\");\n }\n\n function s() {\n throw new Error(\"clearTimeout has not been defined\");\n }\n\n function a(t) {\n if (n === setTimeout) return setTimeout(t, 0);\n if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0);\n\n try {\n return n(t, 0);\n } catch (e) {\n try {\n return n.call(null, t, 0);\n } catch (e) {\n return n.call(this, t, 0);\n }\n }\n }\n\n !function () {\n try {\n n = \"function\" == typeof setTimeout ? setTimeout : o;\n } catch (t) {\n n = o;\n }\n\n try {\n r = \"function\" == typeof clearTimeout ? clearTimeout : s;\n } catch (t) {\n r = s;\n }\n }();\n var u,\n c = [],\n l = !1,\n h = -1;\n\n function d() {\n l && u && (l = !1, u.length ? c = u.concat(c) : h = -1, c.length && f());\n }\n\n function f() {\n if (!l) {\n var t = a(d);\n l = !0;\n\n for (var e = c.length; e;) {\n for (u = c, c = []; ++h < e;) {\n u && u[h].run();\n }\n\n h = -1, e = c.length;\n }\n\n u = null, l = !1, function (t) {\n if (r === clearTimeout) return clearTimeout(t);\n if ((r === s || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t);\n\n try {\n r(t);\n } catch (e) {\n try {\n return r.call(null, t);\n } catch (e) {\n return r.call(this, t);\n }\n }\n }(t);\n }\n }\n\n function p(t, e) {\n this.fun = t, this.array = e;\n }\n\n function b() {}\n\n i.nextTick = function (t) {\n var e = new Array(arguments.length - 1);\n if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) {\n e[n - 1] = arguments[n];\n }\n c.push(new p(t, e)), 1 !== c.length || l || a(f);\n }, p.prototype.run = function () {\n this.fun.apply(null, this.array);\n }, i.title = \"browser\", i.browser = !0, i.env = {}, i.argv = [], i.version = \"\", i.versions = {}, i.on = b, i.addListener = b, i.once = b, i.off = b, i.removeListener = b, i.removeAllListeners = b, i.emit = b, i.prependListener = b, i.prependOnceListener = b, i.listeners = function (t) {\n return [];\n }, i.binding = function (t) {\n throw new Error(\"process.binding is not supported\");\n }, i.cwd = function () {\n return \"/\";\n }, i.chdir = function (t) {\n throw new Error(\"process.chdir is not supported\");\n }, i.umask = function () {\n return 0;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n }), n.d(e, \"b\", function () {\n return o;\n });\n var r = n(15);\n\n function i() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return o(t);\n }\n\n function o(t) {\n return 0 === t.length ? r.a : 1 === t.length ? t[0] : function (e) {\n return t.reduce(function (t, e) {\n return e(t);\n }, e);\n };\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return h;\n }), n.d(e, \"a\", function () {\n return d;\n });\n\n var r = n(0),\n i = 1,\n o = function () {\n return Promise.resolve();\n }(),\n s = {};\n\n function a(t) {\n return t in s && (delete s[t], !0);\n }\n\n var u = function u(t) {\n var e = i++;\n return s[e] = !0, o.then(function () {\n return a(e) && t();\n }), e;\n },\n c = function c(t) {\n a(t);\n },\n l = function (t) {\n function e(e, n) {\n var r = t.call(this, e, n) || this;\n return r.scheduler = e, r.work = n, r;\n }\n\n return r.a(e, t), e.prototype.requestAsyncId = function (e, n, r) {\n return void 0 === r && (r = 0), null !== r && r > 0 ? t.prototype.requestAsyncId.call(this, e, n, r) : (e.actions.push(this), e.scheduled || (e.scheduled = u(e.flush.bind(e, null))));\n }, e.prototype.recycleAsyncId = function (e, n, r) {\n if (void 0 === r && (r = 0), null !== r && r > 0 || null === r && this.delay > 0) return t.prototype.recycleAsyncId.call(this, e, n, r);\n 0 === e.actions.length && (c(n), e.scheduled = void 0);\n }, e;\n }(n(32).a),\n h = new (function (t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n return r.a(e, t), e.prototype.flush = function (t) {\n this.active = !0, this.scheduled = void 0;\n var e,\n n = this.actions,\n r = -1,\n i = n.length;\n t = t || n.shift();\n\n do {\n if (e = t.execute(t.state, t.delay)) break;\n } while (++r < i && (t = n.shift()));\n\n if (this.active = !1, e) {\n for (; ++r < i && (t = n.shift());) {\n t.unsubscribe();\n }\n\n throw e;\n }\n }, e;\n }(n(30).a))(l),\n d = h;\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n return \"function\" == typeof Symbol ? Symbol(\"rxSubscriber\") : \"@@rxSubscriber_\" + Math.random();\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n function t(t) {\n return Error.call(this), this.message = t ? t.length + \" errors occurred during unsubscription:\\n\" + t.map(function (t, e) {\n return e + 1 + \") \" + t.toString();\n }).join(\"\\n \") : \"\", this.name = \"UnsubscriptionError\", this.errors = t, this;\n }\n\n return t.prototype = Object.create(Error.prototype), t;\n }();\n}, function (t, e, n) {\n var r = n(37).Buffer;\n\n function i(t, e) {\n this._block = r.alloc(t), this._finalSize = e, this._blockSize = t, this._len = 0;\n }\n\n i.prototype.update = function (t, e) {\n \"string\" == typeof t && (e = e || \"utf8\", t = r.from(t, e));\n\n for (var n = this._block, i = this._blockSize, o = t.length, s = this._len, a = 0; a < o;) {\n for (var u = s % i, c = Math.min(o - a, i - u), l = 0; l < c; l++) {\n n[u + l] = t[a + l];\n }\n\n a += c, (s += c) % i == 0 && this._update(n);\n }\n\n return this._len += o, this;\n }, i.prototype.digest = function (t) {\n var e = this._len % this._blockSize;\n this._block[e] = 128, this._block.fill(0, e + 1), e >= this._finalSize && (this._update(this._block), this._block.fill(0));\n var n = 8 * this._len;\n if (n <= 4294967295) this._block.writeUInt32BE(n, this._blockSize - 4);else {\n var r = (4294967295 & n) >>> 0,\n i = (n - r) / 4294967296;\n this._block.writeUInt32BE(i, this._blockSize - 8), this._block.writeUInt32BE(r, this._blockSize - 4);\n }\n\n this._update(this._block);\n\n var o = this._hash();\n\n return t ? o.toString(t) : o;\n }, i.prototype._update = function () {\n throw new Error(\"_update must be implemented by subclass\");\n }, t.exports = i;\n}, function (t, e, n) {\n \"use strict\";\n\n var r = {};\n\n function i(t, e, n) {\n n || (n = Error);\n\n var i = function (t) {\n var n, r;\n\n function i(n, r, i) {\n return t.call(this, function (t, n, r) {\n return \"string\" == typeof e ? e : e(t, n, r);\n }(n, r, i)) || this;\n }\n\n return r = t, (n = i).prototype = Object.create(r.prototype), n.prototype.constructor = n, n.__proto__ = r, i;\n }(n);\n\n i.prototype.name = n.name, i.prototype.code = t, r[t] = i;\n }\n\n function o(t, e) {\n if (Array.isArray(t)) {\n var n = t.length;\n return t = t.map(function (t) {\n return String(t);\n }), n > 2 ? \"one of \".concat(e, \" \").concat(t.slice(0, n - 1).join(\", \"), \", or \") + t[n - 1] : 2 === n ? \"one of \".concat(e, \" \").concat(t[0], \" or \").concat(t[1]) : \"of \".concat(e, \" \").concat(t[0]);\n }\n\n return \"of \".concat(e, \" \").concat(String(t));\n }\n\n i(\"ERR_INVALID_OPT_VALUE\", function (t, e) {\n return 'The value \"' + e + '\" is invalid for option \"' + t + '\"';\n }, TypeError), i(\"ERR_INVALID_ARG_TYPE\", function (t, e, n) {\n var r, i, s, a;\n if (\"string\" == typeof e && (i = \"not \", e.substr(!s || s < 0 ? 0 : +s, i.length) === i) ? (r = \"must not be\", e = e.replace(/^not /, \"\")) : r = \"must be\", function (t, e, n) {\n return (void 0 === n || n > t.length) && (n = t.length), t.substring(n - e.length, n) === e;\n }(t, \" argument\")) a = \"The \".concat(t, \" \").concat(r, \" \").concat(o(e, \"type\"));else {\n var u = function (t, e, n) {\n return \"number\" != typeof n && (n = 0), !(n + e.length > t.length) && -1 !== t.indexOf(e, n);\n }(t, \".\") ? \"property\" : \"argument\";\n a = 'The \"'.concat(t, '\" ').concat(u, \" \").concat(r, \" \").concat(o(e, \"type\"));\n }\n return a += \". Received type \".concat(_typeof(n));\n }, TypeError), i(\"ERR_STREAM_PUSH_AFTER_EOF\", \"stream.push() after EOF\"), i(\"ERR_METHOD_NOT_IMPLEMENTED\", function (t) {\n return \"The \" + t + \" method is not implemented\";\n }), i(\"ERR_STREAM_PREMATURE_CLOSE\", \"Premature close\"), i(\"ERR_STREAM_DESTROYED\", function (t) {\n return \"Cannot call \" + t + \" after a stream was destroyed\";\n }), i(\"ERR_MULTIPLE_CALLBACK\", \"Callback called multiple times\"), i(\"ERR_STREAM_CANNOT_PIPE\", \"Cannot pipe, not readable\"), i(\"ERR_STREAM_WRITE_AFTER_END\", \"write after end\"), i(\"ERR_STREAM_NULL_VALUES\", \"May not write null values to stream\", TypeError), i(\"ERR_UNKNOWN_ENCODING\", function (t) {\n return \"Unknown encoding: \" + t;\n }, TypeError), i(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\", \"stream.unshift() after end event\"), t.exports.codes = r;\n}, function (t, e, n) {\n \"use strict\";\n\n (function (e) {\n var r = Object.keys || function (t) {\n var e = [];\n\n for (var n in t) {\n e.push(n);\n }\n\n return e;\n };\n\n t.exports = c;\n var i = n(111),\n o = n(115);\n n(24)(c, i);\n\n for (var s = r(o.prototype), a = 0; a < s.length; a++) {\n var u = s[a];\n c.prototype[u] || (c.prototype[u] = o.prototype[u]);\n }\n\n function c(t) {\n if (!(this instanceof c)) return new c(t);\n i.call(this, t), o.call(this, t), this.allowHalfOpen = !0, t && (!1 === t.readable && (this.readable = !1), !1 === t.writable && (this.writable = !1), !1 === t.allowHalfOpen && (this.allowHalfOpen = !1, this.once(\"end\", l)));\n }\n\n function l() {\n this._writableState.ended || e.nextTick(h, this);\n }\n\n function h(t) {\n t.end();\n }\n\n Object.defineProperty(c.prototype, \"writableHighWaterMark\", {\n enumerable: !1,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n }), Object.defineProperty(c.prototype, \"writableBuffer\", {\n enumerable: !1,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n }), Object.defineProperty(c.prototype, \"writableLength\", {\n enumerable: !1,\n get: function get() {\n return this._writableState.length;\n }\n }), Object.defineProperty(c.prototype, \"destroyed\", {\n enumerable: !1,\n get: function get() {\n return void 0 !== this._readableState && void 0 !== this._writableState && this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(t) {\n void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = t, this._writableState.destroyed = t);\n }\n });\n }).call(this, n(40));\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(0),\n i = n(1);\n\n function o() {\n return function (t) {\n return t.lift(new s(t));\n };\n }\n\n var s = function () {\n function t(t) {\n this.connectable = t;\n }\n\n return t.prototype.call = function (t, e) {\n var n = this.connectable;\n n._refCount++;\n var r = new a(t, n),\n i = e.subscribe(r);\n return r.closed || (r.connection = n.connect()), i;\n }, t;\n }(),\n a = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.connectable = n, r;\n }\n\n return r.a(e, t), e.prototype._unsubscribe = function () {\n var t = this.connectable;\n\n if (t) {\n this.connectable = null;\n var e = t._refCount;\n if (e <= 0) this.connection = null;else if (t._refCount = e - 1, e > 1) this.connection = null;else {\n var n = this.connection,\n r = t._connection;\n this.connection = null, !r || n && r !== n || r.unsubscribe();\n }\n } else this.connection = null;\n }, e;\n }(i.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return l;\n });\n\n var r = n(0),\n i = n(6),\n o = n(61),\n s = n(4),\n a = n(73),\n u = n(23),\n c = n(80),\n l = function (t) {\n function e(e, n, r) {\n void 0 === e && (e = Number.POSITIVE_INFINITY), void 0 === n && (n = Number.POSITIVE_INFINITY);\n var i = t.call(this) || this;\n return i.scheduler = r, i._events = [], i._infiniteTimeWindow = !1, i._bufferSize = e < 1 ? 1 : e, i._windowTime = n < 1 ? 1 : n, n === Number.POSITIVE_INFINITY ? (i._infiniteTimeWindow = !0, i.next = i.nextInfiniteTimeWindow) : i.next = i.nextTimeWindow, i;\n }\n\n return r.a(e, t), e.prototype.nextInfiniteTimeWindow = function (e) {\n if (!this.isStopped) {\n var n = this._events;\n n.push(e), n.length > this._bufferSize && n.shift();\n }\n\n t.prototype.next.call(this, e);\n }, e.prototype.nextTimeWindow = function (e) {\n this.isStopped || (this._events.push(new h(this._getNow(), e)), this._trimBufferThenGetEvents()), t.prototype.next.call(this, e);\n }, e.prototype._subscribe = function (t) {\n var e,\n n = this._infiniteTimeWindow,\n r = n ? this._events : this._trimBufferThenGetEvents(),\n i = this.scheduler,\n o = r.length;\n if (this.closed) throw new u.a();\n if (this.isStopped || this.hasError ? e = s.a.EMPTY : (this.observers.push(t), e = new c.a(this, t)), i && t.add(t = new a.a(t, i)), n) for (var l = 0; l < o && !t.closed; l++) {\n t.next(r[l]);\n } else for (l = 0; l < o && !t.closed; l++) {\n t.next(r[l].value);\n }\n return this.hasError ? t.error(this.thrownError) : this.isStopped && t.complete(), e;\n }, e.prototype._getNow = function () {\n return (this.scheduler || o.a).now();\n }, e.prototype._trimBufferThenGetEvents = function () {\n for (var t = this._getNow(), e = this._bufferSize, n = this._windowTime, r = this._events, i = r.length, o = 0; o < i && !(t - r[o].time < n);) {\n o++;\n }\n\n return i > e && (o = Math.max(o, i - e)), o > 0 && r.splice(0, o), r;\n }, e;\n }(i.a),\n h = function () {\n return function (t, e) {\n this.time = t, this.value = e;\n };\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n var r = n(3);\n\n function i(t, e) {\n return e ? new r.a(function (n) {\n return e.schedule(o, 0, {\n error: t,\n subscriber: n\n });\n }) : new r.a(function (e) {\n return e.error(t);\n });\n }\n\n function o(t) {\n var e = t.error;\n t.subscriber.error(e);\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return l;\n }), n.d(e, \"a\", function () {\n return h;\n });\n var r = n(0),\n i = n(10),\n o = n(8),\n s = n(16),\n a = n(13),\n u = n(29),\n c = {};\n\n function l() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = void 0,\n r = void 0;\n return Object(i.a)(t[t.length - 1]) && (r = t.pop()), \"function\" == typeof t[t.length - 1] && (n = t.pop()), 1 === t.length && Object(o.a)(t[0]) && (t = t[0]), Object(u.a)(t, r).lift(new h(n));\n }\n\n var h = function () {\n function t(t) {\n this.resultSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new d(t, this.resultSelector));\n }, t;\n }(),\n d = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.resultSelector = n, r.active = 0, r.values = [], r.observables = [], r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.values.push(c), this.observables.push(t);\n }, e.prototype._complete = function () {\n var t = this.observables,\n e = t.length;\n if (0 === e) this.destination.complete();else {\n this.active = e, this.toRespond = e;\n\n for (var n = 0; n < e; n++) {\n var r = t[n];\n this.add(Object(a.a)(this, r, void 0, n));\n }\n }\n }, e.prototype.notifyComplete = function (t) {\n 0 == (this.active -= 1) && this.destination.complete();\n }, e.prototype.notifyNext = function (t, e, n) {\n var r = this.values,\n i = r[n],\n o = this.toRespond ? i === c ? --this.toRespond : this.toRespond : 0;\n r[n] = e, 0 === o && (this.resultSelector ? this._tryResultSelector(r) : this.destination.next(r.slice()));\n }, e.prototype._tryResultSelector = function (t) {\n var e;\n\n try {\n e = this.resultSelector.apply(this, t);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.destination.next(e);\n }, e;\n }(s.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(28),\n i = n(15);\n\n function o(t) {\n return void 0 === t && (t = Number.POSITIVE_INFINITY), Object(r.b)(i.a, t);\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return s;\n });\n var r = n(3),\n i = n(12),\n o = n(11);\n\n function s(t) {\n return new r.a(function (e) {\n var n;\n\n try {\n n = t();\n } catch (t) {\n return void e.error(t);\n }\n\n return (n ? Object(i.a)(n) : Object(o.b)()).subscribe(e);\n });\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return c;\n }), n.d(e, \"a\", function () {\n return l;\n });\n var r = n(0),\n i = n(29),\n o = n(8),\n s = n(1),\n a = n(20),\n u = n(2);\n\n function c() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = t[t.length - 1];\n return \"function\" == typeof n && t.pop(), Object(i.a)(t, void 0).lift(new l(n));\n }\n\n var l = function () {\n function t(t) {\n this.resultSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new h(t, this.resultSelector));\n }, t;\n }(),\n h = function (t) {\n function e(e, n, r) {\n void 0 === r && (r = Object.create(null));\n var i = t.call(this, e) || this;\n return i.resultSelector = n, i.iterators = [], i.active = 0, i.resultSelector = \"function\" == typeof n ? n : void 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.iterators;\n Object(o.a)(t) ? e.push(new f(t)) : \"function\" == typeof t[a.a] ? e.push(new d(t[a.a]())) : e.push(new p(this.destination, this, t));\n }, e.prototype._complete = function () {\n var t = this.iterators,\n e = t.length;\n\n if (this.unsubscribe(), 0 !== e) {\n this.active = e;\n\n for (var n = 0; n < e; n++) {\n var r = t[n];\n if (r.stillUnsubscribed) this.destination.add(r.subscribe());else this.active--;\n }\n } else this.destination.complete();\n }, e.prototype.notifyInactive = function () {\n this.active--, 0 === this.active && this.destination.complete();\n }, e.prototype.checkIterators = function () {\n for (var t = this.iterators, e = t.length, n = this.destination, r = 0; r < e; r++) {\n if (\"function\" == typeof (s = t[r]).hasValue && !s.hasValue()) return;\n }\n\n var i = !1,\n o = [];\n\n for (r = 0; r < e; r++) {\n var s,\n a = (s = t[r]).next();\n if (s.hasCompleted() && (i = !0), a.done) return void n.complete();\n o.push(a.value);\n }\n\n this.resultSelector ? this._tryresultSelector(o) : n.next(o), i && n.complete();\n }, e.prototype._tryresultSelector = function (t) {\n var e;\n\n try {\n e = this.resultSelector.apply(this, t);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.destination.next(e);\n }, e;\n }(s.a),\n d = function () {\n function t(t) {\n this.iterator = t, this.nextResult = t.next();\n }\n\n return t.prototype.hasValue = function () {\n return !0;\n }, t.prototype.next = function () {\n var t = this.nextResult;\n return this.nextResult = this.iterator.next(), t;\n }, t.prototype.hasCompleted = function () {\n var t = this.nextResult;\n return Boolean(t && t.done);\n }, t;\n }(),\n f = function () {\n function t(t) {\n this.array = t, this.index = 0, this.length = 0, this.length = t.length;\n }\n\n return t.prototype[a.a] = function () {\n return this;\n }, t.prototype.next = function (t) {\n var e = this.index++,\n n = this.array;\n return e < this.length ? {\n value: n[e],\n done: !1\n } : {\n value: null,\n done: !0\n };\n }, t.prototype.hasValue = function () {\n return this.array.length > this.index;\n }, t.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n }, t;\n }(),\n p = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.parent = n, i.observable = r, i.stillUnsubscribed = !0, i.buffer = [], i.isComplete = !1, i;\n }\n\n return r.a(e, t), e.prototype[a.a] = function () {\n return this;\n }, e.prototype.next = function () {\n var t = this.buffer;\n return 0 === t.length && this.isComplete ? {\n value: null,\n done: !0\n } : {\n value: t.shift(),\n done: !1\n };\n }, e.prototype.hasValue = function () {\n return this.buffer.length > 0;\n }, e.prototype.hasCompleted = function () {\n return 0 === this.buffer.length && this.isComplete;\n }, e.prototype.notifyComplete = function () {\n this.buffer.length > 0 ? (this.isComplete = !0, this.parent.notifyInactive()) : this.destination.complete();\n }, e.prototype.notifyNext = function (t) {\n this.buffer.push(t), this.parent.checkIterators();\n }, e.prototype.subscribe = function () {\n return Object(u.c)(this.observable, new u.a(this));\n }, e;\n }(u.b);\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n return null !== t && \"object\" == _typeof(t);\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n var r = n(1);\n\n function i(t) {\n for (; t;) {\n var e = t,\n n = e.closed,\n i = e.destination,\n o = e.isStopped;\n if (n || o) return !1;\n t = i && i instanceof r.a ? i : null;\n }\n\n return !0;\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(3),\n i = n(4);\n\n function o(t, e) {\n return new r.a(function (n) {\n var r = new i.a(),\n o = 0;\n return r.add(e.schedule(function () {\n o !== t.length ? (n.next(t[o++]), n.closed || r.add(this.schedule())) : n.complete();\n })), r;\n });\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return o;\n });\n var r = n(14),\n i = n(36),\n o = {\n closed: !0,\n next: function next(t) {},\n error: function error(t) {\n if (r.a.useDeprecatedSynchronousErrorHandling) throw t;\n Object(i.a)(t);\n },\n complete: function complete() {}\n };\n}, function (t, e) {\n function n(t) {\n return t.sort(function (t, e) {\n return \"latest\" === t || \"earliest\" === e ? 1 : \"latest\" === e || \"earliest\" === t ? -1 : r(t) - r(e);\n });\n }\n\n function r(t) {\n return null == t ? t : Number.parseInt(t, 16);\n }\n\n function i(t) {\n if (null == t) return t;\n var e = t.toString(16);\n return e.length % 2 && (e = \"0\" + e), \"0x\" + e;\n }\n\n function o() {\n return Math.floor(16 * Math.random()).toString(16);\n }\n\n t.exports = {\n minBlockRef: function minBlockRef() {\n for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) {\n t[_key] = arguments[_key];\n }\n\n return n(t)[0];\n },\n maxBlockRef: function maxBlockRef() {\n for (var _len2 = arguments.length, t = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n t[_key2] = arguments[_key2];\n }\n\n var e = n(t);\n return e[e.length - 1];\n },\n sortBlockRefs: n,\n bnToHex: function bnToHex(t) {\n return \"0x\" + t.toString(16);\n },\n blockRefIsNumber: function blockRefIsNumber(t) {\n return t && ![\"earliest\", \"latest\", \"pending\"].includes(t);\n },\n hexToInt: r,\n incrementHexInt: function incrementHexInt(t) {\n if (null == t) return t;\n return i(r(t) + 1);\n },\n intToHex: i,\n unsafeRandomBytes: function unsafeRandomBytes(t) {\n var e = \"0x\";\n\n for (var _n4 = 0; _n4 < t; _n4++) {\n e += o(), e += o();\n }\n\n return e;\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"useCallback\", function () {\n return M;\n }), n.d(e, \"useContext\", function () {\n return x;\n }), n.d(e, \"useDebugValue\", function () {\n return k;\n }), n.d(e, \"useEffect\", function () {\n return v;\n }), n.d(e, \"useErrorBoundary\", function () {\n return C;\n }), n.d(e, \"useId\", function () {\n return A;\n }), n.d(e, \"useImperativeHandle\", function () {\n return S;\n }), n.d(e, \"useLayoutEffect\", function () {\n return w;\n }), n.d(e, \"useMemo\", function () {\n return E;\n }), n.d(e, \"useReducer\", function () {\n return m;\n }), n.d(e, \"useRef\", function () {\n return _;\n }), n.d(e, \"useState\", function () {\n return g;\n });\n var r,\n i,\n o,\n s,\n a = n(5),\n u = 0,\n c = [],\n l = [],\n h = a.options.__b,\n d = a.options.__r,\n f = a.options.diffed,\n p = a.options.__c,\n b = a.options.unmount;\n\n function y(t, e) {\n a.options.__h && a.options.__h(i, t, u || e), u = 0;\n var n = i.__H || (i.__H = {\n __: [],\n __h: []\n });\n return t >= n.__.length && n.__.push({\n __V: l\n }), n.__[t];\n }\n\n function g(t) {\n return u = 1, m(P, t);\n }\n\n function m(t, e, n) {\n var o = y(r++, 2);\n\n if (o.t = t, !o.__c && (o.__ = [n ? n(e) : P(void 0, e), function (t) {\n var e = o.__N ? o.__N[0] : o.__[0],\n n = o.t(e, t);\n e !== n && (o.__N = [n, o.__[1]], o.__c.setState({}));\n }], o.__c = i, !i.u)) {\n var s = function s(t, e, n) {\n if (!o.__c.__H) return !0;\n\n var r = o.__c.__H.__.filter(function (t) {\n return t.__c;\n });\n\n if (r.every(function (t) {\n return !t.__N;\n })) return !a || a.call(this, t, e, n);\n var i = !1;\n return r.forEach(function (t) {\n if (t.__N) {\n var e = t.__[0];\n t.__ = t.__N, t.__N = void 0, e !== t.__[0] && (i = !0);\n }\n }), !(!i && o.__c.props === t) && (!a || a.call(this, t, e, n));\n };\n\n i.u = !0;\n var a = i.shouldComponentUpdate,\n u = i.componentWillUpdate;\n i.componentWillUpdate = function (t, e, n) {\n if (this.__e) {\n var r = a;\n a = void 0, s(t, e, n), a = r;\n }\n\n u && u.call(this, t, e, n);\n }, i.shouldComponentUpdate = s;\n }\n\n return o.__N || o.__;\n }\n\n function v(t, e) {\n var n = y(r++, 3);\n !a.options.__s && T(n.__H, e) && (n.__ = t, n.i = e, i.__H.__h.push(n));\n }\n\n function w(t, e) {\n var n = y(r++, 4);\n !a.options.__s && T(n.__H, e) && (n.__ = t, n.i = e, i.__h.push(n));\n }\n\n function _(t) {\n return u = 5, E(function () {\n return {\n current: t\n };\n }, []);\n }\n\n function S(t, e, n) {\n u = 6, w(function () {\n return \"function\" == typeof t ? (t(e()), function () {\n return t(null);\n }) : t ? (t.current = e(), function () {\n return t.current = null;\n }) : void 0;\n }, null == n ? n : n.concat(t));\n }\n\n function E(t, e) {\n var n = y(r++, 7);\n return T(n.__H, e) ? (n.__V = t(), n.i = e, n.__h = t, n.__V) : n.__;\n }\n\n function M(t, e) {\n return u = 8, E(function () {\n return t;\n }, e);\n }\n\n function x(t) {\n var e = i.context[t.__c],\n n = y(r++, 9);\n return n.c = t, e ? (null == n.__ && (n.__ = !0, e.sub(i)), e.props.value) : t.__;\n }\n\n function k(t, e) {\n a.options.useDebugValue && a.options.useDebugValue(e ? e(t) : t);\n }\n\n function C(t) {\n var e = y(r++, 10),\n n = g();\n return e.__ = t, i.componentDidCatch || (i.componentDidCatch = function (t, r) {\n e.__ && e.__(t, r), n[1](t);\n }), [n[0], function () {\n n[1](void 0);\n }];\n }\n\n function A() {\n var t = y(r++, 11);\n\n if (!t.__) {\n for (var e = i.__v; null !== e && !e.__m && null !== e.__;) {\n e = e.__;\n }\n\n var n = e.__m || (e.__m = [0, 0]);\n t.__ = \"P\" + n[0] + \"-\" + n[1]++;\n }\n\n return t.__;\n }\n\n function I() {\n for (var t; t = c.shift();) {\n if (t.__P && t.__H) try {\n t.__H.__h.forEach(R), t.__H.__h.forEach(N), t.__H.__h = [];\n } catch (e) {\n t.__H.__h = [], a.options.__e(e, t.__v);\n }\n }\n }\n\n a.options.__b = function (t) {\n i = null, h && h(t);\n }, a.options.__r = function (t) {\n d && d(t), r = 0;\n var e = (i = t.__c).__H;\n e && (o === i ? (e.__h = [], i.__h = [], e.__.forEach(function (t) {\n t.__N && (t.__ = t.__N), t.__V = l, t.__N = t.i = void 0;\n })) : (e.__h.forEach(R), e.__h.forEach(N), e.__h = [], r = 0)), o = i;\n }, a.options.diffed = function (t) {\n f && f(t);\n var e = t.__c;\n e && e.__H && (e.__H.__h.length && (1 !== c.push(e) && s === a.options.requestAnimationFrame || ((s = a.options.requestAnimationFrame) || j)(I)), e.__H.__.forEach(function (t) {\n t.i && (t.__H = t.i), t.__V !== l && (t.__ = t.__V), t.i = void 0, t.__V = l;\n })), o = i = null;\n }, a.options.__c = function (t, e) {\n e.some(function (t) {\n try {\n t.__h.forEach(R), t.__h = t.__h.filter(function (t) {\n return !t.__ || N(t);\n });\n } catch (n) {\n e.some(function (t) {\n t.__h && (t.__h = []);\n }), e = [], a.options.__e(n, t.__v);\n }\n }), p && p(t, e);\n }, a.options.unmount = function (t) {\n b && b(t);\n var e,\n n = t.__c;\n n && n.__H && (n.__H.__.forEach(function (t) {\n try {\n R(t);\n } catch (t) {\n e = t;\n }\n }), n.__H = void 0, e && a.options.__e(e, n.__v));\n };\n var O = \"function\" == typeof requestAnimationFrame;\n\n function j(t) {\n var e,\n n = function n() {\n clearTimeout(r), O && cancelAnimationFrame(e), setTimeout(t);\n },\n r = setTimeout(n, 100);\n\n O && (e = requestAnimationFrame(n));\n }\n\n function R(t) {\n var e = i,\n n = t.__c;\n \"function\" == typeof n && (t.__c = void 0, n()), i = e;\n }\n\n function N(t) {\n var e = i;\n t.__c = t.__(), i = e;\n }\n\n function T(t, e) {\n return !t || t.length !== e.length || e.some(function (e, n) {\n return e !== t[n];\n });\n }\n\n function P(t, e) {\n return \"function\" == typeof e ? e(t) : e;\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return o;\n }), n.d(e, \"a\", function () {\n return s;\n });\n\n var r = n(0),\n i = function (t) {\n function e(e, n) {\n var r = t.call(this, e, n) || this;\n return r.scheduler = e, r.work = n, r;\n }\n\n return r.a(e, t), e.prototype.schedule = function (e, n) {\n return void 0 === n && (n = 0), n > 0 ? t.prototype.schedule.call(this, e, n) : (this.delay = n, this.state = e, this.scheduler.flush(this), this);\n }, e.prototype.execute = function (e, n) {\n return n > 0 || this.closed ? t.prototype.execute.call(this, e, n) : this._execute(e, n);\n }, e.prototype.requestAsyncId = function (e, n, r) {\n return void 0 === r && (r = 0), null !== r && r > 0 || null === r && this.delay > 0 ? t.prototype.requestAsyncId.call(this, e, n, r) : e.flush(this);\n }, e;\n }(n(32).a),\n o = new (function (t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n return r.a(e, t), e;\n }(n(30).a))(i),\n s = o;\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n function t(e, n) {\n void 0 === n && (n = t.now), this.SchedulerAction = e, this.now = n;\n }\n\n return t.prototype.schedule = function (t, e, n) {\n return void 0 === e && (e = 0), new this.SchedulerAction(this, t).schedule(n, e);\n }, t.now = function () {\n return Date.now();\n }, t;\n }();\n}, function (t, e) {\n var n;\n\n n = function () {\n return this;\n }();\n\n try {\n n = n || new Function(\"return this\")();\n } catch (t) {\n \"object\" == (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) && (n = window);\n }\n\n t.exports = n;\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var r = n(65);\n\n function i(t, e, n) {\n try {\n Reflect.apply(t, e, n);\n } catch (t) {\n setTimeout(function () {\n throw t;\n });\n }\n }\n\n var o = /*#__PURE__*/function (_r$EventEmitter) {\n _inherits(o, _r$EventEmitter);\n\n var _super = _createSuper(o);\n\n function o() {\n _classCallCheck(this, o);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(o, [{\n key: \"emit\",\n value: function emit(t) {\n var n = \"error\" === t;\n var r = this._events;\n if (void 0 !== r) n = n && void 0 === r.error;else if (!n) return !1;\n\n for (var _len3 = arguments.length, e = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n e[_key3 - 1] = arguments[_key3];\n }\n\n if (n) {\n var _e3, _e4;\n\n var _t2;\n\n if (e.length > 0 && (_e3 = e, _e4 = _slicedToArray(_e3, 1), _t2 = _e4[0], _e3), _t2 instanceof Error) throw _t2;\n\n var _n5 = new Error(\"Unhandled error.\" + (_t2 ? \" (\".concat(_t2.message, \")\") : \"\"));\n\n throw _n5.context = _t2, _n5;\n }\n\n var _o = r[t];\n if (void 0 === _o) return !1;\n if (\"function\" == typeof _o) i(_o, this, e);else {\n var _t3 = _o.length,\n _n6 = function (t) {\n var e = t.length,\n n = new Array(e);\n\n for (var _r3 = 0; _r3 < e; _r3 += 1) {\n n[_r3] = t[_r3];\n }\n\n return n;\n }(_o);\n\n for (var _r4 = 0; _r4 < _t3; _r4 += 1) {\n i(_n6[_r4], this, e);\n }\n }\n return !0;\n }\n }]);\n\n return o;\n }(r.EventEmitter);\n\n e.default = o;\n}, function (t, e, n) {\n \"use strict\";\n\n var r,\n i = \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect : null,\n o = i && \"function\" == typeof i.apply ? i.apply : function (t, e, n) {\n return Function.prototype.apply.call(t, e, n);\n };\n r = i && \"function\" == typeof i.ownKeys ? i.ownKeys : Object.getOwnPropertySymbols ? function (t) {\n return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t));\n } : function (t) {\n return Object.getOwnPropertyNames(t);\n };\n\n var s = Number.isNaN || function (t) {\n return t != t;\n };\n\n function a() {\n a.init.call(this);\n }\n\n t.exports = a, t.exports.once = function (t, e) {\n return new Promise(function (n, r) {\n function i(n) {\n t.removeListener(e, o), r(n);\n }\n\n function o() {\n \"function\" == typeof t.removeListener && t.removeListener(\"error\", i), n([].slice.call(arguments));\n }\n\n g(t, e, o, {\n once: !0\n }), \"error\" !== e && function (t, e, n) {\n \"function\" == typeof t.on && g(t, \"error\", e, n);\n }(t, i, {\n once: !0\n });\n });\n }, a.EventEmitter = a, a.prototype._events = void 0, a.prototype._eventsCount = 0, a.prototype._maxListeners = void 0;\n var u = 10;\n\n function c(t) {\n if (\"function\" != typeof t) throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + _typeof(t));\n }\n\n function l(t) {\n return void 0 === t._maxListeners ? a.defaultMaxListeners : t._maxListeners;\n }\n\n function h(t, e, n, r) {\n var i, o, s, a;\n if (c(n), void 0 === (o = t._events) ? (o = t._events = Object.create(null), t._eventsCount = 0) : (void 0 !== o.newListener && (t.emit(\"newListener\", e, n.listener ? n.listener : n), o = t._events), s = o[e]), void 0 === s) s = o[e] = n, ++t._eventsCount;else if (\"function\" == typeof s ? s = o[e] = r ? [n, s] : [s, n] : r ? s.unshift(n) : s.push(n), (i = l(t)) > 0 && s.length > i && !s.warned) {\n s.warned = !0;\n var u = new Error(\"Possible EventEmitter memory leak detected. \" + s.length + \" \" + String(e) + \" listeners added. Use emitter.setMaxListeners() to increase limit\");\n u.name = \"MaxListenersExceededWarning\", u.emitter = t, u.type = e, u.count = s.length, a = u, console && console.warn && console.warn(a);\n }\n return t;\n }\n\n function d() {\n if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);\n }\n\n function f(t, e, n) {\n var r = {\n fired: !1,\n wrapFn: void 0,\n target: t,\n type: e,\n listener: n\n },\n i = d.bind(r);\n return i.listener = n, r.wrapFn = i, i;\n }\n\n function p(t, e, n) {\n var r = t._events;\n if (void 0 === r) return [];\n var i = r[e];\n return void 0 === i ? [] : \"function\" == typeof i ? n ? [i.listener || i] : [i] : n ? function (t) {\n for (var e = new Array(t.length), n = 0; n < e.length; ++n) {\n e[n] = t[n].listener || t[n];\n }\n\n return e;\n }(i) : y(i, i.length);\n }\n\n function b(t) {\n var e = this._events;\n\n if (void 0 !== e) {\n var n = e[t];\n if (\"function\" == typeof n) return 1;\n if (void 0 !== n) return n.length;\n }\n\n return 0;\n }\n\n function y(t, e) {\n for (var n = new Array(e), r = 0; r < e; ++r) {\n n[r] = t[r];\n }\n\n return n;\n }\n\n function g(t, e, n, r) {\n if (\"function\" == typeof t.on) r.once ? t.once(e, n) : t.on(e, n);else {\n if (\"function\" != typeof t.addEventListener) throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + _typeof(t));\n t.addEventListener(e, function i(o) {\n r.once && t.removeEventListener(e, i), n(o);\n });\n }\n }\n\n Object.defineProperty(a, \"defaultMaxListeners\", {\n enumerable: !0,\n get: function get() {\n return u;\n },\n set: function set(t) {\n if (\"number\" != typeof t || t < 0 || s(t)) throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + t + \".\");\n u = t;\n }\n }), a.init = function () {\n void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;\n }, a.prototype.setMaxListeners = function (t) {\n if (\"number\" != typeof t || t < 0 || s(t)) throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + t + \".\");\n return this._maxListeners = t, this;\n }, a.prototype.getMaxListeners = function () {\n return l(this);\n }, a.prototype.emit = function (t) {\n for (var e = [], n = 1; n < arguments.length; n++) {\n e.push(arguments[n]);\n }\n\n var r = \"error\" === t,\n i = this._events;\n if (void 0 !== i) r = r && void 0 === i.error;else if (!r) return !1;\n\n if (r) {\n var s;\n if (e.length > 0 && (s = e[0]), s instanceof Error) throw s;\n var a = new Error(\"Unhandled error.\" + (s ? \" (\" + s.message + \")\" : \"\"));\n throw a.context = s, a;\n }\n\n var u = i[t];\n if (void 0 === u) return !1;\n if (\"function\" == typeof u) o(u, this, e);else {\n var c = u.length,\n l = y(u, c);\n\n for (n = 0; n < c; ++n) {\n o(l[n], this, e);\n }\n }\n return !0;\n }, a.prototype.addListener = function (t, e) {\n return h(this, t, e, !1);\n }, a.prototype.on = a.prototype.addListener, a.prototype.prependListener = function (t, e) {\n return h(this, t, e, !0);\n }, a.prototype.once = function (t, e) {\n return c(e), this.on(t, f(this, t, e)), this;\n }, a.prototype.prependOnceListener = function (t, e) {\n return c(e), this.prependListener(t, f(this, t, e)), this;\n }, a.prototype.removeListener = function (t, e) {\n var n, r, i, o, s;\n if (c(e), void 0 === (r = this._events)) return this;\n if (void 0 === (n = r[t])) return this;\n if (n === e || n.listener === e) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete r[t], r.removeListener && this.emit(\"removeListener\", t, n.listener || e));else if (\"function\" != typeof n) {\n for (i = -1, o = n.length - 1; o >= 0; o--) {\n if (n[o] === e || n[o].listener === e) {\n s = n[o].listener, i = o;\n break;\n }\n }\n\n if (i < 0) return this;\n 0 === i ? n.shift() : function (t, e) {\n for (; e + 1 < t.length; e++) {\n t[e] = t[e + 1];\n }\n\n t.pop();\n }(n, i), 1 === n.length && (r[t] = n[0]), void 0 !== r.removeListener && this.emit(\"removeListener\", t, s || e);\n }\n return this;\n }, a.prototype.off = a.prototype.removeListener, a.prototype.removeAllListeners = function (t) {\n var e, n, r;\n if (void 0 === (n = this._events)) return this;\n if (void 0 === n.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== n[t] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete n[t]), this;\n\n if (0 === arguments.length) {\n var i,\n o = Object.keys(n);\n\n for (r = 0; r < o.length; ++r) {\n \"removeListener\" !== (i = o[r]) && this.removeAllListeners(i);\n }\n\n return this.removeAllListeners(\"removeListener\"), this._events = Object.create(null), this._eventsCount = 0, this;\n }\n\n if (\"function\" == typeof (e = n[t])) this.removeListener(t, e);else if (void 0 !== e) for (r = e.length - 1; r >= 0; r--) {\n this.removeListener(t, e[r]);\n }\n return this;\n }, a.prototype.listeners = function (t) {\n return p(this, t, !0);\n }, a.prototype.rawListeners = function (t) {\n return p(this, t, !1);\n }, a.listenerCount = function (t, e) {\n return \"function\" == typeof t.listenerCount ? t.listenerCount(e) : b.call(t, e);\n }, a.prototype.listenerCount = b, a.prototype.eventNames = function () {\n return this._eventsCount > 0 ? r(this._events) : [];\n };\n}, function (t, e, n) {\n (function (t) {\n !function (t, e) {\n \"use strict\";\n\n function r(t, e) {\n if (!t) throw new Error(e || \"Assertion failed\");\n }\n\n function i(t, e) {\n t.super_ = e;\n\n var n = function n() {};\n\n n.prototype = e.prototype, t.prototype = new n(), t.prototype.constructor = t;\n }\n\n function o(t, e, n) {\n if (o.isBN(t)) return t;\n this.negative = 0, this.words = null, this.length = 0, this.red = null, null !== t && (\"le\" !== e && \"be\" !== e || (n = e, e = 10), this._init(t || 0, e || 10, n || \"be\"));\n }\n\n var s;\n \"object\" == _typeof(t) ? t.exports = o : e.BN = o, o.BN = o, o.wordSize = 26;\n\n try {\n s = \"undefined\" != typeof window && void 0 !== window.Buffer ? window.Buffer : n(132).Buffer;\n } catch (t) {}\n\n function a(t, e) {\n var n = t.charCodeAt(e);\n return n >= 48 && n <= 57 ? n - 48 : n >= 65 && n <= 70 ? n - 55 : n >= 97 && n <= 102 ? n - 87 : void r(!1, \"Invalid character in \" + t);\n }\n\n function u(t, e, n) {\n var r = a(t, n);\n return n - 1 >= e && (r |= a(t, n - 1) << 4), r;\n }\n\n function c(t, e, n, i) {\n for (var o = 0, s = 0, a = Math.min(t.length, n), u = e; u < a; u++) {\n var c = t.charCodeAt(u) - 48;\n o *= i, s = c >= 49 ? c - 49 + 10 : c >= 17 ? c - 17 + 10 : c, r(c >= 0 && s < i, \"Invalid character\"), o += s;\n }\n\n return o;\n }\n\n function l(t, e) {\n t.words = e.words, t.length = e.length, t.negative = e.negative, t.red = e.red;\n }\n\n if (o.isBN = function (t) {\n return t instanceof o || null !== t && \"object\" == _typeof(t) && t.constructor.wordSize === o.wordSize && Array.isArray(t.words);\n }, o.max = function (t, e) {\n return t.cmp(e) > 0 ? t : e;\n }, o.min = function (t, e) {\n return t.cmp(e) < 0 ? t : e;\n }, o.prototype._init = function (t, e, n) {\n if (\"number\" == typeof t) return this._initNumber(t, e, n);\n if (\"object\" == _typeof(t)) return this._initArray(t, e, n);\n \"hex\" === e && (e = 16), r(e === (0 | e) && e >= 2 && e <= 36);\n var i = 0;\n \"-\" === (t = t.toString().replace(/\\s+/g, \"\"))[0] && (i++, this.negative = 1), i < t.length && (16 === e ? this._parseHex(t, i, n) : (this._parseBase(t, e, i), \"le\" === n && this._initArray(this.toArray(), e, n)));\n }, o.prototype._initNumber = function (t, e, n) {\n t < 0 && (this.negative = 1, t = -t), t < 67108864 ? (this.words = [67108863 & t], this.length = 1) : t < 4503599627370496 ? (this.words = [67108863 & t, t / 67108864 & 67108863], this.length = 2) : (r(t < 9007199254740992), this.words = [67108863 & t, t / 67108864 & 67108863, 1], this.length = 3), \"le\" === n && this._initArray(this.toArray(), e, n);\n }, o.prototype._initArray = function (t, e, n) {\n if (r(\"number\" == typeof t.length), t.length <= 0) return this.words = [0], this.length = 1, this;\n this.length = Math.ceil(t.length / 3), this.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var o,\n s,\n a = 0;\n if (\"be\" === n) for (i = t.length - 1, o = 0; i >= 0; i -= 3) {\n s = t[i] | t[i - 1] << 8 | t[i - 2] << 16, this.words[o] |= s << a & 67108863, this.words[o + 1] = s >>> 26 - a & 67108863, (a += 24) >= 26 && (a -= 26, o++);\n } else if (\"le\" === n) for (i = 0, o = 0; i < t.length; i += 3) {\n s = t[i] | t[i + 1] << 8 | t[i + 2] << 16, this.words[o] |= s << a & 67108863, this.words[o + 1] = s >>> 26 - a & 67108863, (a += 24) >= 26 && (a -= 26, o++);\n }\n return this._strip();\n }, o.prototype._parseHex = function (t, e, n) {\n this.length = Math.ceil((t.length - e) / 6), this.words = new Array(this.length);\n\n for (var r = 0; r < this.length; r++) {\n this.words[r] = 0;\n }\n\n var i,\n o = 0,\n s = 0;\n if (\"be\" === n) for (r = t.length - 1; r >= e; r -= 2) {\n i = u(t, e, r) << o, this.words[s] |= 67108863 & i, o >= 18 ? (o -= 18, s += 1, this.words[s] |= i >>> 26) : o += 8;\n } else for (r = (t.length - e) % 2 == 0 ? e + 1 : e; r < t.length; r += 2) {\n i = u(t, e, r) << o, this.words[s] |= 67108863 & i, o >= 18 ? (o -= 18, s += 1, this.words[s] |= i >>> 26) : o += 8;\n }\n\n this._strip();\n }, o.prototype._parseBase = function (t, e, n) {\n this.words = [0], this.length = 1;\n\n for (var r = 0, i = 1; i <= 67108863; i *= e) {\n r++;\n }\n\n r--, i = i / e | 0;\n\n for (var o = t.length - n, s = o % r, a = Math.min(o, o - s) + n, u = 0, l = n; l < a; l += r) {\n u = c(t, l, l + r, e), this.imuln(i), this.words[0] + u < 67108864 ? this.words[0] += u : this._iaddn(u);\n }\n\n if (0 !== s) {\n var h = 1;\n\n for (u = c(t, l, t.length, e), l = 0; l < s; l++) {\n h *= e;\n }\n\n this.imuln(h), this.words[0] + u < 67108864 ? this.words[0] += u : this._iaddn(u);\n }\n\n this._strip();\n }, o.prototype.copy = function (t) {\n t.words = new Array(this.length);\n\n for (var e = 0; e < this.length; e++) {\n t.words[e] = this.words[e];\n }\n\n t.length = this.length, t.negative = this.negative, t.red = this.red;\n }, o.prototype._move = function (t) {\n l(t, this);\n }, o.prototype.clone = function () {\n var t = new o(null);\n return this.copy(t), t;\n }, o.prototype._expand = function (t) {\n for (; this.length < t;) {\n this.words[this.length++] = 0;\n }\n\n return this;\n }, o.prototype._strip = function () {\n for (; this.length > 1 && 0 === this.words[this.length - 1];) {\n this.length--;\n }\n\n return this._normSign();\n }, o.prototype._normSign = function () {\n return 1 === this.length && 0 === this.words[0] && (this.negative = 0), this;\n }, \"undefined\" != typeof Symbol && \"function\" == typeof Symbol.for) try {\n o.prototype[Symbol.for(\"nodejs.util.inspect.custom\")] = h;\n } catch (t) {\n o.prototype.inspect = h;\n } else o.prototype.inspect = h;\n\n function h() {\n return (this.red ? \"\";\n }\n\n var d = [\"\", \"0\", \"00\", \"000\", \"0000\", \"00000\", \"000000\", \"0000000\", \"00000000\", \"000000000\", \"0000000000\", \"00000000000\", \"000000000000\", \"0000000000000\", \"00000000000000\", \"000000000000000\", \"0000000000000000\", \"00000000000000000\", \"000000000000000000\", \"0000000000000000000\", \"00000000000000000000\", \"000000000000000000000\", \"0000000000000000000000\", \"00000000000000000000000\", \"000000000000000000000000\", \"0000000000000000000000000\"],\n f = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],\n p = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n o.prototype.toString = function (t, e) {\n var n;\n\n if (e = 0 | e || 1, 16 === (t = t || 10) || \"hex\" === t) {\n n = \"\";\n\n for (var i = 0, o = 0, s = 0; s < this.length; s++) {\n var a = this.words[s],\n u = (16777215 & (a << i | o)).toString(16);\n o = a >>> 24 - i & 16777215, (i += 2) >= 26 && (i -= 26, s--), n = 0 !== o || s !== this.length - 1 ? d[6 - u.length] + u + n : u + n;\n }\n\n for (0 !== o && (n = o.toString(16) + n); n.length % e != 0;) {\n n = \"0\" + n;\n }\n\n return 0 !== this.negative && (n = \"-\" + n), n;\n }\n\n if (t === (0 | t) && t >= 2 && t <= 36) {\n var c = f[t],\n l = p[t];\n n = \"\";\n var h = this.clone();\n\n for (h.negative = 0; !h.isZero();) {\n var b = h.modrn(l).toString(t);\n n = (h = h.idivn(l)).isZero() ? b + n : d[c - b.length] + b + n;\n }\n\n for (this.isZero() && (n = \"0\" + n); n.length % e != 0;) {\n n = \"0\" + n;\n }\n\n return 0 !== this.negative && (n = \"-\" + n), n;\n }\n\n r(!1, \"Base should be between 2 and 36\");\n }, o.prototype.toNumber = function () {\n var t = this.words[0];\n return 2 === this.length ? t += 67108864 * this.words[1] : 3 === this.length && 1 === this.words[2] ? t += 4503599627370496 + 67108864 * this.words[1] : this.length > 2 && r(!1, \"Number can only safely store up to 53 bits\"), 0 !== this.negative ? -t : t;\n }, o.prototype.toJSON = function () {\n return this.toString(16, 2);\n }, s && (o.prototype.toBuffer = function (t, e) {\n return this.toArrayLike(s, t, e);\n }), o.prototype.toArray = function (t, e) {\n return this.toArrayLike(Array, t, e);\n };\n\n function b(t, e, n) {\n n.negative = e.negative ^ t.negative;\n var r = t.length + e.length | 0;\n n.length = r, r = r - 1 | 0;\n var i = 0 | t.words[0],\n o = 0 | e.words[0],\n s = i * o,\n a = 67108863 & s,\n u = s / 67108864 | 0;\n n.words[0] = a;\n\n for (var c = 1; c < r; c++) {\n for (var l = u >>> 26, h = 67108863 & u, d = Math.min(c, e.length - 1), f = Math.max(0, c - t.length + 1); f <= d; f++) {\n var p = c - f | 0;\n l += (s = (i = 0 | t.words[p]) * (o = 0 | e.words[f]) + h) / 67108864 | 0, h = 67108863 & s;\n }\n\n n.words[c] = 0 | h, u = 0 | l;\n }\n\n return 0 !== u ? n.words[c] = 0 | u : n.length--, n._strip();\n }\n\n o.prototype.toArrayLike = function (t, e, n) {\n this._strip();\n\n var i = this.byteLength(),\n o = n || Math.max(1, i);\n r(i <= o, \"byte array longer than desired length\"), r(o > 0, \"Requested array length <= 0\");\n\n var s = function (t, e) {\n return t.allocUnsafe ? t.allocUnsafe(e) : new t(e);\n }(t, o);\n\n return this[\"_toArrayLike\" + (\"le\" === e ? \"LE\" : \"BE\")](s, i), s;\n }, o.prototype._toArrayLikeLE = function (t, e) {\n for (var n = 0, r = 0, i = 0, o = 0; i < this.length; i++) {\n var s = this.words[i] << o | r;\n t[n++] = 255 & s, n < t.length && (t[n++] = s >> 8 & 255), n < t.length && (t[n++] = s >> 16 & 255), 6 === o ? (n < t.length && (t[n++] = s >> 24 & 255), r = 0, o = 0) : (r = s >>> 24, o += 2);\n }\n\n if (n < t.length) for (t[n++] = r; n < t.length;) {\n t[n++] = 0;\n }\n }, o.prototype._toArrayLikeBE = function (t, e) {\n for (var n = t.length - 1, r = 0, i = 0, o = 0; i < this.length; i++) {\n var s = this.words[i] << o | r;\n t[n--] = 255 & s, n >= 0 && (t[n--] = s >> 8 & 255), n >= 0 && (t[n--] = s >> 16 & 255), 6 === o ? (n >= 0 && (t[n--] = s >> 24 & 255), r = 0, o = 0) : (r = s >>> 24, o += 2);\n }\n\n if (n >= 0) for (t[n--] = r; n >= 0;) {\n t[n--] = 0;\n }\n }, Math.clz32 ? o.prototype._countBits = function (t) {\n return 32 - Math.clz32(t);\n } : o.prototype._countBits = function (t) {\n var e = t,\n n = 0;\n return e >= 4096 && (n += 13, e >>>= 13), e >= 64 && (n += 7, e >>>= 7), e >= 8 && (n += 4, e >>>= 4), e >= 2 && (n += 2, e >>>= 2), n + e;\n }, o.prototype._zeroBits = function (t) {\n if (0 === t) return 26;\n var e = t,\n n = 0;\n return 0 == (8191 & e) && (n += 13, e >>>= 13), 0 == (127 & e) && (n += 7, e >>>= 7), 0 == (15 & e) && (n += 4, e >>>= 4), 0 == (3 & e) && (n += 2, e >>>= 2), 0 == (1 & e) && n++, n;\n }, o.prototype.bitLength = function () {\n var t = this.words[this.length - 1],\n e = this._countBits(t);\n\n return 26 * (this.length - 1) + e;\n }, o.prototype.zeroBits = function () {\n if (this.isZero()) return 0;\n\n for (var t = 0, e = 0; e < this.length; e++) {\n var n = this._zeroBits(this.words[e]);\n\n if (t += n, 26 !== n) break;\n }\n\n return t;\n }, o.prototype.byteLength = function () {\n return Math.ceil(this.bitLength() / 8);\n }, o.prototype.toTwos = function (t) {\n return 0 !== this.negative ? this.abs().inotn(t).iaddn(1) : this.clone();\n }, o.prototype.fromTwos = function (t) {\n return this.testn(t - 1) ? this.notn(t).iaddn(1).ineg() : this.clone();\n }, o.prototype.isNeg = function () {\n return 0 !== this.negative;\n }, o.prototype.neg = function () {\n return this.clone().ineg();\n }, o.prototype.ineg = function () {\n return this.isZero() || (this.negative ^= 1), this;\n }, o.prototype.iuor = function (t) {\n for (; this.length < t.length;) {\n this.words[this.length++] = 0;\n }\n\n for (var e = 0; e < t.length; e++) {\n this.words[e] = this.words[e] | t.words[e];\n }\n\n return this._strip();\n }, o.prototype.ior = function (t) {\n return r(0 == (this.negative | t.negative)), this.iuor(t);\n }, o.prototype.or = function (t) {\n return this.length > t.length ? this.clone().ior(t) : t.clone().ior(this);\n }, o.prototype.uor = function (t) {\n return this.length > t.length ? this.clone().iuor(t) : t.clone().iuor(this);\n }, o.prototype.iuand = function (t) {\n var e;\n e = this.length > t.length ? t : this;\n\n for (var n = 0; n < e.length; n++) {\n this.words[n] = this.words[n] & t.words[n];\n }\n\n return this.length = e.length, this._strip();\n }, o.prototype.iand = function (t) {\n return r(0 == (this.negative | t.negative)), this.iuand(t);\n }, o.prototype.and = function (t) {\n return this.length > t.length ? this.clone().iand(t) : t.clone().iand(this);\n }, o.prototype.uand = function (t) {\n return this.length > t.length ? this.clone().iuand(t) : t.clone().iuand(this);\n }, o.prototype.iuxor = function (t) {\n var e, n;\n this.length > t.length ? (e = this, n = t) : (e = t, n = this);\n\n for (var r = 0; r < n.length; r++) {\n this.words[r] = e.words[r] ^ n.words[r];\n }\n\n if (this !== e) for (; r < e.length; r++) {\n this.words[r] = e.words[r];\n }\n return this.length = e.length, this._strip();\n }, o.prototype.ixor = function (t) {\n return r(0 == (this.negative | t.negative)), this.iuxor(t);\n }, o.prototype.xor = function (t) {\n return this.length > t.length ? this.clone().ixor(t) : t.clone().ixor(this);\n }, o.prototype.uxor = function (t) {\n return this.length > t.length ? this.clone().iuxor(t) : t.clone().iuxor(this);\n }, o.prototype.inotn = function (t) {\n r(\"number\" == typeof t && t >= 0);\n var e = 0 | Math.ceil(t / 26),\n n = t % 26;\n this._expand(e), n > 0 && e--;\n\n for (var i = 0; i < e; i++) {\n this.words[i] = 67108863 & ~this.words[i];\n }\n\n return n > 0 && (this.words[i] = ~this.words[i] & 67108863 >> 26 - n), this._strip();\n }, o.prototype.notn = function (t) {\n return this.clone().inotn(t);\n }, o.prototype.setn = function (t, e) {\n r(\"number\" == typeof t && t >= 0);\n var n = t / 26 | 0,\n i = t % 26;\n return this._expand(n + 1), this.words[n] = e ? this.words[n] | 1 << i : this.words[n] & ~(1 << i), this._strip();\n }, o.prototype.iadd = function (t) {\n var e, n, r;\n if (0 !== this.negative && 0 === t.negative) return this.negative = 0, e = this.isub(t), this.negative ^= 1, this._normSign();\n if (0 === this.negative && 0 !== t.negative) return t.negative = 0, e = this.isub(t), t.negative = 1, e._normSign();\n this.length > t.length ? (n = this, r = t) : (n = t, r = this);\n\n for (var i = 0, o = 0; o < r.length; o++) {\n e = (0 | n.words[o]) + (0 | r.words[o]) + i, this.words[o] = 67108863 & e, i = e >>> 26;\n }\n\n for (; 0 !== i && o < n.length; o++) {\n e = (0 | n.words[o]) + i, this.words[o] = 67108863 & e, i = e >>> 26;\n }\n\n if (this.length = n.length, 0 !== i) this.words[this.length] = i, this.length++;else if (n !== this) for (; o < n.length; o++) {\n this.words[o] = n.words[o];\n }\n return this;\n }, o.prototype.add = function (t) {\n var e;\n return 0 !== t.negative && 0 === this.negative ? (t.negative = 0, e = this.sub(t), t.negative ^= 1, e) : 0 === t.negative && 0 !== this.negative ? (this.negative = 0, e = t.sub(this), this.negative = 1, e) : this.length > t.length ? this.clone().iadd(t) : t.clone().iadd(this);\n }, o.prototype.isub = function (t) {\n if (0 !== t.negative) {\n t.negative = 0;\n var e = this.iadd(t);\n return t.negative = 1, e._normSign();\n }\n\n if (0 !== this.negative) return this.negative = 0, this.iadd(t), this.negative = 1, this._normSign();\n var n,\n r,\n i = this.cmp(t);\n if (0 === i) return this.negative = 0, this.length = 1, this.words[0] = 0, this;\n i > 0 ? (n = this, r = t) : (n = t, r = this);\n\n for (var o = 0, s = 0; s < r.length; s++) {\n o = (e = (0 | n.words[s]) - (0 | r.words[s]) + o) >> 26, this.words[s] = 67108863 & e;\n }\n\n for (; 0 !== o && s < n.length; s++) {\n o = (e = (0 | n.words[s]) + o) >> 26, this.words[s] = 67108863 & e;\n }\n\n if (0 === o && s < n.length && n !== this) for (; s < n.length; s++) {\n this.words[s] = n.words[s];\n }\n return this.length = Math.max(this.length, s), n !== this && (this.negative = 1), this._strip();\n }, o.prototype.sub = function (t) {\n return this.clone().isub(t);\n };\n\n var y = function y(t, e, n) {\n var r,\n i,\n o,\n s = t.words,\n a = e.words,\n u = n.words,\n c = 0,\n l = 0 | s[0],\n h = 8191 & l,\n d = l >>> 13,\n f = 0 | s[1],\n p = 8191 & f,\n b = f >>> 13,\n y = 0 | s[2],\n g = 8191 & y,\n m = y >>> 13,\n v = 0 | s[3],\n w = 8191 & v,\n _ = v >>> 13,\n S = 0 | s[4],\n E = 8191 & S,\n M = S >>> 13,\n x = 0 | s[5],\n k = 8191 & x,\n C = x >>> 13,\n A = 0 | s[6],\n I = 8191 & A,\n O = A >>> 13,\n j = 0 | s[7],\n R = 8191 & j,\n N = j >>> 13,\n T = 0 | s[8],\n P = 8191 & T,\n L = T >>> 13,\n D = 0 | s[9],\n B = 8191 & D,\n F = D >>> 13,\n U = 0 | a[0],\n W = 8191 & U,\n H = U >>> 13,\n z = 0 | a[1],\n V = 8191 & z,\n q = z >>> 13,\n Z = 0 | a[2],\n G = 8191 & Z,\n Y = Z >>> 13,\n $ = 0 | a[3],\n J = 8191 & $,\n Q = $ >>> 13,\n K = 0 | a[4],\n X = 8191 & K,\n tt = K >>> 13,\n et = 0 | a[5],\n nt = 8191 & et,\n rt = et >>> 13,\n it = 0 | a[6],\n ot = 8191 & it,\n st = it >>> 13,\n at = 0 | a[7],\n ut = 8191 & at,\n ct = at >>> 13,\n lt = 0 | a[8],\n ht = 8191 & lt,\n dt = lt >>> 13,\n ft = 0 | a[9],\n pt = 8191 & ft,\n bt = ft >>> 13;\n\n n.negative = t.negative ^ e.negative, n.length = 19;\n var yt = (c + (r = Math.imul(h, W)) | 0) + ((8191 & (i = (i = Math.imul(h, H)) + Math.imul(d, W) | 0)) << 13) | 0;\n c = ((o = Math.imul(d, H)) + (i >>> 13) | 0) + (yt >>> 26) | 0, yt &= 67108863, r = Math.imul(p, W), i = (i = Math.imul(p, H)) + Math.imul(b, W) | 0, o = Math.imul(b, H);\n var gt = (c + (r = r + Math.imul(h, V) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, q) | 0) + Math.imul(d, V) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, q) | 0) + (i >>> 13) | 0) + (gt >>> 26) | 0, gt &= 67108863, r = Math.imul(g, W), i = (i = Math.imul(g, H)) + Math.imul(m, W) | 0, o = Math.imul(m, H), r = r + Math.imul(p, V) | 0, i = (i = i + Math.imul(p, q) | 0) + Math.imul(b, V) | 0, o = o + Math.imul(b, q) | 0;\n var mt = (c + (r = r + Math.imul(h, G) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, Y) | 0) + Math.imul(d, G) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, Y) | 0) + (i >>> 13) | 0) + (mt >>> 26) | 0, mt &= 67108863, r = Math.imul(w, W), i = (i = Math.imul(w, H)) + Math.imul(_, W) | 0, o = Math.imul(_, H), r = r + Math.imul(g, V) | 0, i = (i = i + Math.imul(g, q) | 0) + Math.imul(m, V) | 0, o = o + Math.imul(m, q) | 0, r = r + Math.imul(p, G) | 0, i = (i = i + Math.imul(p, Y) | 0) + Math.imul(b, G) | 0, o = o + Math.imul(b, Y) | 0;\n var vt = (c + (r = r + Math.imul(h, J) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, Q) | 0) + Math.imul(d, J) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, Q) | 0) + (i >>> 13) | 0) + (vt >>> 26) | 0, vt &= 67108863, r = Math.imul(E, W), i = (i = Math.imul(E, H)) + Math.imul(M, W) | 0, o = Math.imul(M, H), r = r + Math.imul(w, V) | 0, i = (i = i + Math.imul(w, q) | 0) + Math.imul(_, V) | 0, o = o + Math.imul(_, q) | 0, r = r + Math.imul(g, G) | 0, i = (i = i + Math.imul(g, Y) | 0) + Math.imul(m, G) | 0, o = o + Math.imul(m, Y) | 0, r = r + Math.imul(p, J) | 0, i = (i = i + Math.imul(p, Q) | 0) + Math.imul(b, J) | 0, o = o + Math.imul(b, Q) | 0;\n var wt = (c + (r = r + Math.imul(h, X) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, tt) | 0) + Math.imul(d, X) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, tt) | 0) + (i >>> 13) | 0) + (wt >>> 26) | 0, wt &= 67108863, r = Math.imul(k, W), i = (i = Math.imul(k, H)) + Math.imul(C, W) | 0, o = Math.imul(C, H), r = r + Math.imul(E, V) | 0, i = (i = i + Math.imul(E, q) | 0) + Math.imul(M, V) | 0, o = o + Math.imul(M, q) | 0, r = r + Math.imul(w, G) | 0, i = (i = i + Math.imul(w, Y) | 0) + Math.imul(_, G) | 0, o = o + Math.imul(_, Y) | 0, r = r + Math.imul(g, J) | 0, i = (i = i + Math.imul(g, Q) | 0) + Math.imul(m, J) | 0, o = o + Math.imul(m, Q) | 0, r = r + Math.imul(p, X) | 0, i = (i = i + Math.imul(p, tt) | 0) + Math.imul(b, X) | 0, o = o + Math.imul(b, tt) | 0;\n\n var _t = (c + (r = r + Math.imul(h, nt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, rt) | 0) + Math.imul(d, nt) | 0)) << 13) | 0;\n\n c = ((o = o + Math.imul(d, rt) | 0) + (i >>> 13) | 0) + (_t >>> 26) | 0, _t &= 67108863, r = Math.imul(I, W), i = (i = Math.imul(I, H)) + Math.imul(O, W) | 0, o = Math.imul(O, H), r = r + Math.imul(k, V) | 0, i = (i = i + Math.imul(k, q) | 0) + Math.imul(C, V) | 0, o = o + Math.imul(C, q) | 0, r = r + Math.imul(E, G) | 0, i = (i = i + Math.imul(E, Y) | 0) + Math.imul(M, G) | 0, o = o + Math.imul(M, Y) | 0, r = r + Math.imul(w, J) | 0, i = (i = i + Math.imul(w, Q) | 0) + Math.imul(_, J) | 0, o = o + Math.imul(_, Q) | 0, r = r + Math.imul(g, X) | 0, i = (i = i + Math.imul(g, tt) | 0) + Math.imul(m, X) | 0, o = o + Math.imul(m, tt) | 0, r = r + Math.imul(p, nt) | 0, i = (i = i + Math.imul(p, rt) | 0) + Math.imul(b, nt) | 0, o = o + Math.imul(b, rt) | 0;\n var St = (c + (r = r + Math.imul(h, ot) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, st) | 0) + Math.imul(d, ot) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, st) | 0) + (i >>> 13) | 0) + (St >>> 26) | 0, St &= 67108863, r = Math.imul(R, W), i = (i = Math.imul(R, H)) + Math.imul(N, W) | 0, o = Math.imul(N, H), r = r + Math.imul(I, V) | 0, i = (i = i + Math.imul(I, q) | 0) + Math.imul(O, V) | 0, o = o + Math.imul(O, q) | 0, r = r + Math.imul(k, G) | 0, i = (i = i + Math.imul(k, Y) | 0) + Math.imul(C, G) | 0, o = o + Math.imul(C, Y) | 0, r = r + Math.imul(E, J) | 0, i = (i = i + Math.imul(E, Q) | 0) + Math.imul(M, J) | 0, o = o + Math.imul(M, Q) | 0, r = r + Math.imul(w, X) | 0, i = (i = i + Math.imul(w, tt) | 0) + Math.imul(_, X) | 0, o = o + Math.imul(_, tt) | 0, r = r + Math.imul(g, nt) | 0, i = (i = i + Math.imul(g, rt) | 0) + Math.imul(m, nt) | 0, o = o + Math.imul(m, rt) | 0, r = r + Math.imul(p, ot) | 0, i = (i = i + Math.imul(p, st) | 0) + Math.imul(b, ot) | 0, o = o + Math.imul(b, st) | 0;\n var Et = (c + (r = r + Math.imul(h, ut) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, ct) | 0) + Math.imul(d, ut) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, ct) | 0) + (i >>> 13) | 0) + (Et >>> 26) | 0, Et &= 67108863, r = Math.imul(P, W), i = (i = Math.imul(P, H)) + Math.imul(L, W) | 0, o = Math.imul(L, H), r = r + Math.imul(R, V) | 0, i = (i = i + Math.imul(R, q) | 0) + Math.imul(N, V) | 0, o = o + Math.imul(N, q) | 0, r = r + Math.imul(I, G) | 0, i = (i = i + Math.imul(I, Y) | 0) + Math.imul(O, G) | 0, o = o + Math.imul(O, Y) | 0, r = r + Math.imul(k, J) | 0, i = (i = i + Math.imul(k, Q) | 0) + Math.imul(C, J) | 0, o = o + Math.imul(C, Q) | 0, r = r + Math.imul(E, X) | 0, i = (i = i + Math.imul(E, tt) | 0) + Math.imul(M, X) | 0, o = o + Math.imul(M, tt) | 0, r = r + Math.imul(w, nt) | 0, i = (i = i + Math.imul(w, rt) | 0) + Math.imul(_, nt) | 0, o = o + Math.imul(_, rt) | 0, r = r + Math.imul(g, ot) | 0, i = (i = i + Math.imul(g, st) | 0) + Math.imul(m, ot) | 0, o = o + Math.imul(m, st) | 0, r = r + Math.imul(p, ut) | 0, i = (i = i + Math.imul(p, ct) | 0) + Math.imul(b, ut) | 0, o = o + Math.imul(b, ct) | 0;\n var Mt = (c + (r = r + Math.imul(h, ht) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, dt) | 0) + Math.imul(d, ht) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, dt) | 0) + (i >>> 13) | 0) + (Mt >>> 26) | 0, Mt &= 67108863, r = Math.imul(B, W), i = (i = Math.imul(B, H)) + Math.imul(F, W) | 0, o = Math.imul(F, H), r = r + Math.imul(P, V) | 0, i = (i = i + Math.imul(P, q) | 0) + Math.imul(L, V) | 0, o = o + Math.imul(L, q) | 0, r = r + Math.imul(R, G) | 0, i = (i = i + Math.imul(R, Y) | 0) + Math.imul(N, G) | 0, o = o + Math.imul(N, Y) | 0, r = r + Math.imul(I, J) | 0, i = (i = i + Math.imul(I, Q) | 0) + Math.imul(O, J) | 0, o = o + Math.imul(O, Q) | 0, r = r + Math.imul(k, X) | 0, i = (i = i + Math.imul(k, tt) | 0) + Math.imul(C, X) | 0, o = o + Math.imul(C, tt) | 0, r = r + Math.imul(E, nt) | 0, i = (i = i + Math.imul(E, rt) | 0) + Math.imul(M, nt) | 0, o = o + Math.imul(M, rt) | 0, r = r + Math.imul(w, ot) | 0, i = (i = i + Math.imul(w, st) | 0) + Math.imul(_, ot) | 0, o = o + Math.imul(_, st) | 0, r = r + Math.imul(g, ut) | 0, i = (i = i + Math.imul(g, ct) | 0) + Math.imul(m, ut) | 0, o = o + Math.imul(m, ct) | 0, r = r + Math.imul(p, ht) | 0, i = (i = i + Math.imul(p, dt) | 0) + Math.imul(b, ht) | 0, o = o + Math.imul(b, dt) | 0;\n var xt = (c + (r = r + Math.imul(h, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(h, bt) | 0) + Math.imul(d, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(d, bt) | 0) + (i >>> 13) | 0) + (xt >>> 26) | 0, xt &= 67108863, r = Math.imul(B, V), i = (i = Math.imul(B, q)) + Math.imul(F, V) | 0, o = Math.imul(F, q), r = r + Math.imul(P, G) | 0, i = (i = i + Math.imul(P, Y) | 0) + Math.imul(L, G) | 0, o = o + Math.imul(L, Y) | 0, r = r + Math.imul(R, J) | 0, i = (i = i + Math.imul(R, Q) | 0) + Math.imul(N, J) | 0, o = o + Math.imul(N, Q) | 0, r = r + Math.imul(I, X) | 0, i = (i = i + Math.imul(I, tt) | 0) + Math.imul(O, X) | 0, o = o + Math.imul(O, tt) | 0, r = r + Math.imul(k, nt) | 0, i = (i = i + Math.imul(k, rt) | 0) + Math.imul(C, nt) | 0, o = o + Math.imul(C, rt) | 0, r = r + Math.imul(E, ot) | 0, i = (i = i + Math.imul(E, st) | 0) + Math.imul(M, ot) | 0, o = o + Math.imul(M, st) | 0, r = r + Math.imul(w, ut) | 0, i = (i = i + Math.imul(w, ct) | 0) + Math.imul(_, ut) | 0, o = o + Math.imul(_, ct) | 0, r = r + Math.imul(g, ht) | 0, i = (i = i + Math.imul(g, dt) | 0) + Math.imul(m, ht) | 0, o = o + Math.imul(m, dt) | 0;\n var kt = (c + (r = r + Math.imul(p, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(p, bt) | 0) + Math.imul(b, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(b, bt) | 0) + (i >>> 13) | 0) + (kt >>> 26) | 0, kt &= 67108863, r = Math.imul(B, G), i = (i = Math.imul(B, Y)) + Math.imul(F, G) | 0, o = Math.imul(F, Y), r = r + Math.imul(P, J) | 0, i = (i = i + Math.imul(P, Q) | 0) + Math.imul(L, J) | 0, o = o + Math.imul(L, Q) | 0, r = r + Math.imul(R, X) | 0, i = (i = i + Math.imul(R, tt) | 0) + Math.imul(N, X) | 0, o = o + Math.imul(N, tt) | 0, r = r + Math.imul(I, nt) | 0, i = (i = i + Math.imul(I, rt) | 0) + Math.imul(O, nt) | 0, o = o + Math.imul(O, rt) | 0, r = r + Math.imul(k, ot) | 0, i = (i = i + Math.imul(k, st) | 0) + Math.imul(C, ot) | 0, o = o + Math.imul(C, st) | 0, r = r + Math.imul(E, ut) | 0, i = (i = i + Math.imul(E, ct) | 0) + Math.imul(M, ut) | 0, o = o + Math.imul(M, ct) | 0, r = r + Math.imul(w, ht) | 0, i = (i = i + Math.imul(w, dt) | 0) + Math.imul(_, ht) | 0, o = o + Math.imul(_, dt) | 0;\n var Ct = (c + (r = r + Math.imul(g, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(g, bt) | 0) + Math.imul(m, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(m, bt) | 0) + (i >>> 13) | 0) + (Ct >>> 26) | 0, Ct &= 67108863, r = Math.imul(B, J), i = (i = Math.imul(B, Q)) + Math.imul(F, J) | 0, o = Math.imul(F, Q), r = r + Math.imul(P, X) | 0, i = (i = i + Math.imul(P, tt) | 0) + Math.imul(L, X) | 0, o = o + Math.imul(L, tt) | 0, r = r + Math.imul(R, nt) | 0, i = (i = i + Math.imul(R, rt) | 0) + Math.imul(N, nt) | 0, o = o + Math.imul(N, rt) | 0, r = r + Math.imul(I, ot) | 0, i = (i = i + Math.imul(I, st) | 0) + Math.imul(O, ot) | 0, o = o + Math.imul(O, st) | 0, r = r + Math.imul(k, ut) | 0, i = (i = i + Math.imul(k, ct) | 0) + Math.imul(C, ut) | 0, o = o + Math.imul(C, ct) | 0, r = r + Math.imul(E, ht) | 0, i = (i = i + Math.imul(E, dt) | 0) + Math.imul(M, ht) | 0, o = o + Math.imul(M, dt) | 0;\n var At = (c + (r = r + Math.imul(w, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(w, bt) | 0) + Math.imul(_, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(_, bt) | 0) + (i >>> 13) | 0) + (At >>> 26) | 0, At &= 67108863, r = Math.imul(B, X), i = (i = Math.imul(B, tt)) + Math.imul(F, X) | 0, o = Math.imul(F, tt), r = r + Math.imul(P, nt) | 0, i = (i = i + Math.imul(P, rt) | 0) + Math.imul(L, nt) | 0, o = o + Math.imul(L, rt) | 0, r = r + Math.imul(R, ot) | 0, i = (i = i + Math.imul(R, st) | 0) + Math.imul(N, ot) | 0, o = o + Math.imul(N, st) | 0, r = r + Math.imul(I, ut) | 0, i = (i = i + Math.imul(I, ct) | 0) + Math.imul(O, ut) | 0, o = o + Math.imul(O, ct) | 0, r = r + Math.imul(k, ht) | 0, i = (i = i + Math.imul(k, dt) | 0) + Math.imul(C, ht) | 0, o = o + Math.imul(C, dt) | 0;\n var It = (c + (r = r + Math.imul(E, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(E, bt) | 0) + Math.imul(M, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(M, bt) | 0) + (i >>> 13) | 0) + (It >>> 26) | 0, It &= 67108863, r = Math.imul(B, nt), i = (i = Math.imul(B, rt)) + Math.imul(F, nt) | 0, o = Math.imul(F, rt), r = r + Math.imul(P, ot) | 0, i = (i = i + Math.imul(P, st) | 0) + Math.imul(L, ot) | 0, o = o + Math.imul(L, st) | 0, r = r + Math.imul(R, ut) | 0, i = (i = i + Math.imul(R, ct) | 0) + Math.imul(N, ut) | 0, o = o + Math.imul(N, ct) | 0, r = r + Math.imul(I, ht) | 0, i = (i = i + Math.imul(I, dt) | 0) + Math.imul(O, ht) | 0, o = o + Math.imul(O, dt) | 0;\n var Ot = (c + (r = r + Math.imul(k, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(k, bt) | 0) + Math.imul(C, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(C, bt) | 0) + (i >>> 13) | 0) + (Ot >>> 26) | 0, Ot &= 67108863, r = Math.imul(B, ot), i = (i = Math.imul(B, st)) + Math.imul(F, ot) | 0, o = Math.imul(F, st), r = r + Math.imul(P, ut) | 0, i = (i = i + Math.imul(P, ct) | 0) + Math.imul(L, ut) | 0, o = o + Math.imul(L, ct) | 0, r = r + Math.imul(R, ht) | 0, i = (i = i + Math.imul(R, dt) | 0) + Math.imul(N, ht) | 0, o = o + Math.imul(N, dt) | 0;\n var jt = (c + (r = r + Math.imul(I, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(I, bt) | 0) + Math.imul(O, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(O, bt) | 0) + (i >>> 13) | 0) + (jt >>> 26) | 0, jt &= 67108863, r = Math.imul(B, ut), i = (i = Math.imul(B, ct)) + Math.imul(F, ut) | 0, o = Math.imul(F, ct), r = r + Math.imul(P, ht) | 0, i = (i = i + Math.imul(P, dt) | 0) + Math.imul(L, ht) | 0, o = o + Math.imul(L, dt) | 0;\n var Rt = (c + (r = r + Math.imul(R, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(R, bt) | 0) + Math.imul(N, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(N, bt) | 0) + (i >>> 13) | 0) + (Rt >>> 26) | 0, Rt &= 67108863, r = Math.imul(B, ht), i = (i = Math.imul(B, dt)) + Math.imul(F, ht) | 0, o = Math.imul(F, dt);\n var Nt = (c + (r = r + Math.imul(P, pt) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(P, bt) | 0) + Math.imul(L, pt) | 0)) << 13) | 0;\n c = ((o = o + Math.imul(L, bt) | 0) + (i >>> 13) | 0) + (Nt >>> 26) | 0, Nt &= 67108863;\n var Tt = (c + (r = Math.imul(B, pt)) | 0) + ((8191 & (i = (i = Math.imul(B, bt)) + Math.imul(F, pt) | 0)) << 13) | 0;\n return c = ((o = Math.imul(F, bt)) + (i >>> 13) | 0) + (Tt >>> 26) | 0, Tt &= 67108863, u[0] = yt, u[1] = gt, u[2] = mt, u[3] = vt, u[4] = wt, u[5] = _t, u[6] = St, u[7] = Et, u[8] = Mt, u[9] = xt, u[10] = kt, u[11] = Ct, u[12] = At, u[13] = It, u[14] = Ot, u[15] = jt, u[16] = Rt, u[17] = Nt, u[18] = Tt, 0 !== c && (u[19] = c, n.length++), n;\n };\n\n function g(t, e, n) {\n n.negative = e.negative ^ t.negative, n.length = t.length + e.length;\n\n for (var r = 0, i = 0, o = 0; o < n.length - 1; o++) {\n var s = i;\n i = 0;\n\n for (var a = 67108863 & r, u = Math.min(o, e.length - 1), c = Math.max(0, o - t.length + 1); c <= u; c++) {\n var l = o - c,\n h = (0 | t.words[l]) * (0 | e.words[c]),\n d = 67108863 & h;\n a = 67108863 & (d = d + a | 0), i += (s = (s = s + (h / 67108864 | 0) | 0) + (d >>> 26) | 0) >>> 26, s &= 67108863;\n }\n\n n.words[o] = a, r = s, s = i;\n }\n\n return 0 !== r ? n.words[o] = r : n.length--, n._strip();\n }\n\n function m(t, e, n) {\n return g(t, e, n);\n }\n\n function v(t, e) {\n this.x = t, this.y = e;\n }\n\n Math.imul || (y = b), o.prototype.mulTo = function (t, e) {\n var n = this.length + t.length;\n return 10 === this.length && 10 === t.length ? y(this, t, e) : n < 63 ? b(this, t, e) : n < 1024 ? g(this, t, e) : m(this, t, e);\n }, v.prototype.makeRBT = function (t) {\n for (var e = new Array(t), n = o.prototype._countBits(t) - 1, r = 0; r < t; r++) {\n e[r] = this.revBin(r, n, t);\n }\n\n return e;\n }, v.prototype.revBin = function (t, e, n) {\n if (0 === t || t === n - 1) return t;\n\n for (var r = 0, i = 0; i < e; i++) {\n r |= (1 & t) << e - i - 1, t >>= 1;\n }\n\n return r;\n }, v.prototype.permute = function (t, e, n, r, i, o) {\n for (var s = 0; s < o; s++) {\n r[s] = e[t[s]], i[s] = n[t[s]];\n }\n }, v.prototype.transform = function (t, e, n, r, i, o) {\n this.permute(o, t, e, n, r, i);\n\n for (var s = 1; s < i; s <<= 1) {\n for (var a = s << 1, u = Math.cos(2 * Math.PI / a), c = Math.sin(2 * Math.PI / a), l = 0; l < i; l += a) {\n for (var h = u, d = c, f = 0; f < s; f++) {\n var p = n[l + f],\n b = r[l + f],\n y = n[l + f + s],\n g = r[l + f + s],\n m = h * y - d * g;\n g = h * g + d * y, y = m, n[l + f] = p + y, r[l + f] = b + g, n[l + f + s] = p - y, r[l + f + s] = b - g, f !== a && (m = u * h - c * d, d = u * d + c * h, h = m);\n }\n }\n }\n }, v.prototype.guessLen13b = function (t, e) {\n var n = 1 | Math.max(e, t),\n r = 1 & n,\n i = 0;\n\n for (n = n / 2 | 0; n; n >>>= 1) {\n i++;\n }\n\n return 1 << i + 1 + r;\n }, v.prototype.conjugate = function (t, e, n) {\n if (!(n <= 1)) for (var r = 0; r < n / 2; r++) {\n var i = t[r];\n t[r] = t[n - r - 1], t[n - r - 1] = i, i = e[r], e[r] = -e[n - r - 1], e[n - r - 1] = -i;\n }\n }, v.prototype.normalize13b = function (t, e) {\n for (var n = 0, r = 0; r < e / 2; r++) {\n var i = 8192 * Math.round(t[2 * r + 1] / e) + Math.round(t[2 * r] / e) + n;\n t[r] = 67108863 & i, n = i < 67108864 ? 0 : i / 67108864 | 0;\n }\n\n return t;\n }, v.prototype.convert13b = function (t, e, n, i) {\n for (var o = 0, s = 0; s < e; s++) {\n o += 0 | t[s], n[2 * s] = 8191 & o, o >>>= 13, n[2 * s + 1] = 8191 & o, o >>>= 13;\n }\n\n for (s = 2 * e; s < i; ++s) {\n n[s] = 0;\n }\n\n r(0 === o), r(0 == (-8192 & o));\n }, v.prototype.stub = function (t) {\n for (var e = new Array(t), n = 0; n < t; n++) {\n e[n] = 0;\n }\n\n return e;\n }, v.prototype.mulp = function (t, e, n) {\n var r = 2 * this.guessLen13b(t.length, e.length),\n i = this.makeRBT(r),\n o = this.stub(r),\n s = new Array(r),\n a = new Array(r),\n u = new Array(r),\n c = new Array(r),\n l = new Array(r),\n h = new Array(r),\n d = n.words;\n d.length = r, this.convert13b(t.words, t.length, s, r), this.convert13b(e.words, e.length, c, r), this.transform(s, o, a, u, r, i), this.transform(c, o, l, h, r, i);\n\n for (var f = 0; f < r; f++) {\n var p = a[f] * l[f] - u[f] * h[f];\n u[f] = a[f] * h[f] + u[f] * l[f], a[f] = p;\n }\n\n return this.conjugate(a, u, r), this.transform(a, u, d, o, r, i), this.conjugate(d, o, r), this.normalize13b(d, r), n.negative = t.negative ^ e.negative, n.length = t.length + e.length, n._strip();\n }, o.prototype.mul = function (t) {\n var e = new o(null);\n return e.words = new Array(this.length + t.length), this.mulTo(t, e);\n }, o.prototype.mulf = function (t) {\n var e = new o(null);\n return e.words = new Array(this.length + t.length), m(this, t, e);\n }, o.prototype.imul = function (t) {\n return this.clone().mulTo(t, this);\n }, o.prototype.imuln = function (t) {\n var e = t < 0;\n e && (t = -t), r(\"number\" == typeof t), r(t < 67108864);\n\n for (var n = 0, i = 0; i < this.length; i++) {\n var o = (0 | this.words[i]) * t,\n s = (67108863 & o) + (67108863 & n);\n n >>= 26, n += o / 67108864 | 0, n += s >>> 26, this.words[i] = 67108863 & s;\n }\n\n return 0 !== n && (this.words[i] = n, this.length++), e ? this.ineg() : this;\n }, o.prototype.muln = function (t) {\n return this.clone().imuln(t);\n }, o.prototype.sqr = function () {\n return this.mul(this);\n }, o.prototype.isqr = function () {\n return this.imul(this.clone());\n }, o.prototype.pow = function (t) {\n var e = function (t) {\n for (var e = new Array(t.bitLength()), n = 0; n < e.length; n++) {\n var r = n / 26 | 0,\n i = n % 26;\n e[n] = t.words[r] >>> i & 1;\n }\n\n return e;\n }(t);\n\n if (0 === e.length) return new o(1);\n\n for (var n = this, r = 0; r < e.length && 0 === e[r]; r++, n = n.sqr()) {\n ;\n }\n\n if (++r < e.length) for (var i = n.sqr(); r < e.length; r++, i = i.sqr()) {\n 0 !== e[r] && (n = n.mul(i));\n }\n return n;\n }, o.prototype.iushln = function (t) {\n r(\"number\" == typeof t && t >= 0);\n var e,\n n = t % 26,\n i = (t - n) / 26,\n o = 67108863 >>> 26 - n << 26 - n;\n\n if (0 !== n) {\n var s = 0;\n\n for (e = 0; e < this.length; e++) {\n var a = this.words[e] & o,\n u = (0 | this.words[e]) - a << n;\n this.words[e] = u | s, s = a >>> 26 - n;\n }\n\n s && (this.words[e] = s, this.length++);\n }\n\n if (0 !== i) {\n for (e = this.length - 1; e >= 0; e--) {\n this.words[e + i] = this.words[e];\n }\n\n for (e = 0; e < i; e++) {\n this.words[e] = 0;\n }\n\n this.length += i;\n }\n\n return this._strip();\n }, o.prototype.ishln = function (t) {\n return r(0 === this.negative), this.iushln(t);\n }, o.prototype.iushrn = function (t, e, n) {\n var i;\n r(\"number\" == typeof t && t >= 0), i = e ? (e - e % 26) / 26 : 0;\n var o = t % 26,\n s = Math.min((t - o) / 26, this.length),\n a = 67108863 ^ 67108863 >>> o << o,\n u = n;\n\n if (i -= s, i = Math.max(0, i), u) {\n for (var c = 0; c < s; c++) {\n u.words[c] = this.words[c];\n }\n\n u.length = s;\n }\n\n if (0 === s) ;else if (this.length > s) for (this.length -= s, c = 0; c < this.length; c++) {\n this.words[c] = this.words[c + s];\n } else this.words[0] = 0, this.length = 1;\n var l = 0;\n\n for (c = this.length - 1; c >= 0 && (0 !== l || c >= i); c--) {\n var h = 0 | this.words[c];\n this.words[c] = l << 26 - o | h >>> o, l = h & a;\n }\n\n return u && 0 !== l && (u.words[u.length++] = l), 0 === this.length && (this.words[0] = 0, this.length = 1), this._strip();\n }, o.prototype.ishrn = function (t, e, n) {\n return r(0 === this.negative), this.iushrn(t, e, n);\n }, o.prototype.shln = function (t) {\n return this.clone().ishln(t);\n }, o.prototype.ushln = function (t) {\n return this.clone().iushln(t);\n }, o.prototype.shrn = function (t) {\n return this.clone().ishrn(t);\n }, o.prototype.ushrn = function (t) {\n return this.clone().iushrn(t);\n }, o.prototype.testn = function (t) {\n r(\"number\" == typeof t && t >= 0);\n var e = t % 26,\n n = (t - e) / 26,\n i = 1 << e;\n return !(this.length <= n) && !!(this.words[n] & i);\n }, o.prototype.imaskn = function (t) {\n r(\"number\" == typeof t && t >= 0);\n var e = t % 26,\n n = (t - e) / 26;\n if (r(0 === this.negative, \"imaskn works only with positive numbers\"), this.length <= n) return this;\n\n if (0 !== e && n++, this.length = Math.min(n, this.length), 0 !== e) {\n var i = 67108863 ^ 67108863 >>> e << e;\n this.words[this.length - 1] &= i;\n }\n\n return this._strip();\n }, o.prototype.maskn = function (t) {\n return this.clone().imaskn(t);\n }, o.prototype.iaddn = function (t) {\n return r(\"number\" == typeof t), r(t < 67108864), t < 0 ? this.isubn(-t) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) <= t ? (this.words[0] = t - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(t), this.negative = 1, this) : this._iaddn(t);\n }, o.prototype._iaddn = function (t) {\n this.words[0] += t;\n\n for (var e = 0; e < this.length && this.words[e] >= 67108864; e++) {\n this.words[e] -= 67108864, e === this.length - 1 ? this.words[e + 1] = 1 : this.words[e + 1]++;\n }\n\n return this.length = Math.max(this.length, e + 1), this;\n }, o.prototype.isubn = function (t) {\n if (r(\"number\" == typeof t), r(t < 67108864), t < 0) return this.iaddn(-t);\n if (0 !== this.negative) return this.negative = 0, this.iaddn(t), this.negative = 1, this;\n if (this.words[0] -= t, 1 === this.length && this.words[0] < 0) this.words[0] = -this.words[0], this.negative = 1;else for (var e = 0; e < this.length && this.words[e] < 0; e++) {\n this.words[e] += 67108864, this.words[e + 1] -= 1;\n }\n return this._strip();\n }, o.prototype.addn = function (t) {\n return this.clone().iaddn(t);\n }, o.prototype.subn = function (t) {\n return this.clone().isubn(t);\n }, o.prototype.iabs = function () {\n return this.negative = 0, this;\n }, o.prototype.abs = function () {\n return this.clone().iabs();\n }, o.prototype._ishlnsubmul = function (t, e, n) {\n var i,\n o,\n s = t.length + n;\n\n this._expand(s);\n\n var a = 0;\n\n for (i = 0; i < t.length; i++) {\n o = (0 | this.words[i + n]) + a;\n var u = (0 | t.words[i]) * e;\n a = ((o -= 67108863 & u) >> 26) - (u / 67108864 | 0), this.words[i + n] = 67108863 & o;\n }\n\n for (; i < this.length - n; i++) {\n a = (o = (0 | this.words[i + n]) + a) >> 26, this.words[i + n] = 67108863 & o;\n }\n\n if (0 === a) return this._strip();\n\n for (r(-1 === a), a = 0, i = 0; i < this.length; i++) {\n a = (o = -(0 | this.words[i]) + a) >> 26, this.words[i] = 67108863 & o;\n }\n\n return this.negative = 1, this._strip();\n }, o.prototype._wordDiv = function (t, e) {\n var n = (this.length, t.length),\n r = this.clone(),\n i = t,\n s = 0 | i.words[i.length - 1];\n 0 !== (n = 26 - this._countBits(s)) && (i = i.ushln(n), r.iushln(n), s = 0 | i.words[i.length - 1]);\n var a,\n u = r.length - i.length;\n\n if (\"mod\" !== e) {\n (a = new o(null)).length = u + 1, a.words = new Array(a.length);\n\n for (var c = 0; c < a.length; c++) {\n a.words[c] = 0;\n }\n }\n\n var l = r.clone()._ishlnsubmul(i, 1, u);\n\n 0 === l.negative && (r = l, a && (a.words[u] = 1));\n\n for (var h = u - 1; h >= 0; h--) {\n var d = 67108864 * (0 | r.words[i.length + h]) + (0 | r.words[i.length + h - 1]);\n\n for (d = Math.min(d / s | 0, 67108863), r._ishlnsubmul(i, d, h); 0 !== r.negative;) {\n d--, r.negative = 0, r._ishlnsubmul(i, 1, h), r.isZero() || (r.negative ^= 1);\n }\n\n a && (a.words[h] = d);\n }\n\n return a && a._strip(), r._strip(), \"div\" !== e && 0 !== n && r.iushrn(n), {\n div: a || null,\n mod: r\n };\n }, o.prototype.divmod = function (t, e, n) {\n return r(!t.isZero()), this.isZero() ? {\n div: new o(0),\n mod: new o(0)\n } : 0 !== this.negative && 0 === t.negative ? (a = this.neg().divmod(t, e), \"mod\" !== e && (i = a.div.neg()), \"div\" !== e && (s = a.mod.neg(), n && 0 !== s.negative && s.iadd(t)), {\n div: i,\n mod: s\n }) : 0 === this.negative && 0 !== t.negative ? (a = this.divmod(t.neg(), e), \"mod\" !== e && (i = a.div.neg()), {\n div: i,\n mod: a.mod\n }) : 0 != (this.negative & t.negative) ? (a = this.neg().divmod(t.neg(), e), \"div\" !== e && (s = a.mod.neg(), n && 0 !== s.negative && s.isub(t)), {\n div: a.div,\n mod: s\n }) : t.length > this.length || this.cmp(t) < 0 ? {\n div: new o(0),\n mod: this\n } : 1 === t.length ? \"div\" === e ? {\n div: this.divn(t.words[0]),\n mod: null\n } : \"mod\" === e ? {\n div: null,\n mod: new o(this.modrn(t.words[0]))\n } : {\n div: this.divn(t.words[0]),\n mod: new o(this.modrn(t.words[0]))\n } : this._wordDiv(t, e);\n var i, s, a;\n }, o.prototype.div = function (t) {\n return this.divmod(t, \"div\", !1).div;\n }, o.prototype.mod = function (t) {\n return this.divmod(t, \"mod\", !1).mod;\n }, o.prototype.umod = function (t) {\n return this.divmod(t, \"mod\", !0).mod;\n }, o.prototype.divRound = function (t) {\n var e = this.divmod(t);\n if (e.mod.isZero()) return e.div;\n var n = 0 !== e.div.negative ? e.mod.isub(t) : e.mod,\n r = t.ushrn(1),\n i = t.andln(1),\n o = n.cmp(r);\n return o < 0 || 1 === i && 0 === o ? e.div : 0 !== e.div.negative ? e.div.isubn(1) : e.div.iaddn(1);\n }, o.prototype.modrn = function (t) {\n var e = t < 0;\n e && (t = -t), r(t <= 67108863);\n\n for (var n = (1 << 26) % t, i = 0, o = this.length - 1; o >= 0; o--) {\n i = (n * i + (0 | this.words[o])) % t;\n }\n\n return e ? -i : i;\n }, o.prototype.modn = function (t) {\n return this.modrn(t);\n }, o.prototype.idivn = function (t) {\n var e = t < 0;\n e && (t = -t), r(t <= 67108863);\n\n for (var n = 0, i = this.length - 1; i >= 0; i--) {\n var o = (0 | this.words[i]) + 67108864 * n;\n this.words[i] = o / t | 0, n = o % t;\n }\n\n return this._strip(), e ? this.ineg() : this;\n }, o.prototype.divn = function (t) {\n return this.clone().idivn(t);\n }, o.prototype.egcd = function (t) {\n r(0 === t.negative), r(!t.isZero());\n var e = this,\n n = t.clone();\n e = 0 !== e.negative ? e.umod(t) : e.clone();\n\n for (var i = new o(1), s = new o(0), a = new o(0), u = new o(1), c = 0; e.isEven() && n.isEven();) {\n e.iushrn(1), n.iushrn(1), ++c;\n }\n\n for (var l = n.clone(), h = e.clone(); !e.isZero();) {\n for (var d = 0, f = 1; 0 == (e.words[0] & f) && d < 26; ++d, f <<= 1) {\n ;\n }\n\n if (d > 0) for (e.iushrn(d); d-- > 0;) {\n (i.isOdd() || s.isOdd()) && (i.iadd(l), s.isub(h)), i.iushrn(1), s.iushrn(1);\n }\n\n for (var p = 0, b = 1; 0 == (n.words[0] & b) && p < 26; ++p, b <<= 1) {\n ;\n }\n\n if (p > 0) for (n.iushrn(p); p-- > 0;) {\n (a.isOdd() || u.isOdd()) && (a.iadd(l), u.isub(h)), a.iushrn(1), u.iushrn(1);\n }\n e.cmp(n) >= 0 ? (e.isub(n), i.isub(a), s.isub(u)) : (n.isub(e), a.isub(i), u.isub(s));\n }\n\n return {\n a: a,\n b: u,\n gcd: n.iushln(c)\n };\n }, o.prototype._invmp = function (t) {\n r(0 === t.negative), r(!t.isZero());\n var e = this,\n n = t.clone();\n e = 0 !== e.negative ? e.umod(t) : e.clone();\n\n for (var i, s = new o(1), a = new o(0), u = n.clone(); e.cmpn(1) > 0 && n.cmpn(1) > 0;) {\n for (var c = 0, l = 1; 0 == (e.words[0] & l) && c < 26; ++c, l <<= 1) {\n ;\n }\n\n if (c > 0) for (e.iushrn(c); c-- > 0;) {\n s.isOdd() && s.iadd(u), s.iushrn(1);\n }\n\n for (var h = 0, d = 1; 0 == (n.words[0] & d) && h < 26; ++h, d <<= 1) {\n ;\n }\n\n if (h > 0) for (n.iushrn(h); h-- > 0;) {\n a.isOdd() && a.iadd(u), a.iushrn(1);\n }\n e.cmp(n) >= 0 ? (e.isub(n), s.isub(a)) : (n.isub(e), a.isub(s));\n }\n\n return (i = 0 === e.cmpn(1) ? s : a).cmpn(0) < 0 && i.iadd(t), i;\n }, o.prototype.gcd = function (t) {\n if (this.isZero()) return t.abs();\n if (t.isZero()) return this.abs();\n var e = this.clone(),\n n = t.clone();\n e.negative = 0, n.negative = 0;\n\n for (var r = 0; e.isEven() && n.isEven(); r++) {\n e.iushrn(1), n.iushrn(1);\n }\n\n for (;;) {\n for (; e.isEven();) {\n e.iushrn(1);\n }\n\n for (; n.isEven();) {\n n.iushrn(1);\n }\n\n var i = e.cmp(n);\n\n if (i < 0) {\n var o = e;\n e = n, n = o;\n } else if (0 === i || 0 === n.cmpn(1)) break;\n\n e.isub(n);\n }\n\n return n.iushln(r);\n }, o.prototype.invm = function (t) {\n return this.egcd(t).a.umod(t);\n }, o.prototype.isEven = function () {\n return 0 == (1 & this.words[0]);\n }, o.prototype.isOdd = function () {\n return 1 == (1 & this.words[0]);\n }, o.prototype.andln = function (t) {\n return this.words[0] & t;\n }, o.prototype.bincn = function (t) {\n r(\"number\" == typeof t);\n var e = t % 26,\n n = (t - e) / 26,\n i = 1 << e;\n if (this.length <= n) return this._expand(n + 1), this.words[n] |= i, this;\n\n for (var o = i, s = n; 0 !== o && s < this.length; s++) {\n var a = 0 | this.words[s];\n o = (a += o) >>> 26, a &= 67108863, this.words[s] = a;\n }\n\n return 0 !== o && (this.words[s] = o, this.length++), this;\n }, o.prototype.isZero = function () {\n return 1 === this.length && 0 === this.words[0];\n }, o.prototype.cmpn = function (t) {\n var e,\n n = t < 0;\n if (0 !== this.negative && !n) return -1;\n if (0 === this.negative && n) return 1;\n if (this._strip(), this.length > 1) e = 1;else {\n n && (t = -t), r(t <= 67108863, \"Number is too big\");\n var i = 0 | this.words[0];\n e = i === t ? 0 : i < t ? -1 : 1;\n }\n return 0 !== this.negative ? 0 | -e : e;\n }, o.prototype.cmp = function (t) {\n if (0 !== this.negative && 0 === t.negative) return -1;\n if (0 === this.negative && 0 !== t.negative) return 1;\n var e = this.ucmp(t);\n return 0 !== this.negative ? 0 | -e : e;\n }, o.prototype.ucmp = function (t) {\n if (this.length > t.length) return 1;\n if (this.length < t.length) return -1;\n\n for (var e = 0, n = this.length - 1; n >= 0; n--) {\n var r = 0 | this.words[n],\n i = 0 | t.words[n];\n\n if (r !== i) {\n r < i ? e = -1 : r > i && (e = 1);\n break;\n }\n }\n\n return e;\n }, o.prototype.gtn = function (t) {\n return 1 === this.cmpn(t);\n }, o.prototype.gt = function (t) {\n return 1 === this.cmp(t);\n }, o.prototype.gten = function (t) {\n return this.cmpn(t) >= 0;\n }, o.prototype.gte = function (t) {\n return this.cmp(t) >= 0;\n }, o.prototype.ltn = function (t) {\n return -1 === this.cmpn(t);\n }, o.prototype.lt = function (t) {\n return -1 === this.cmp(t);\n }, o.prototype.lten = function (t) {\n return this.cmpn(t) <= 0;\n }, o.prototype.lte = function (t) {\n return this.cmp(t) <= 0;\n }, o.prototype.eqn = function (t) {\n return 0 === this.cmpn(t);\n }, o.prototype.eq = function (t) {\n return 0 === this.cmp(t);\n }, o.red = function (t) {\n return new k(t);\n }, o.prototype.toRed = function (t) {\n return r(!this.red, \"Already a number in reduction context\"), r(0 === this.negative, \"red works only with positives\"), t.convertTo(this)._forceRed(t);\n }, o.prototype.fromRed = function () {\n return r(this.red, \"fromRed works only with numbers in reduction context\"), this.red.convertFrom(this);\n }, o.prototype._forceRed = function (t) {\n return this.red = t, this;\n }, o.prototype.forceRed = function (t) {\n return r(!this.red, \"Already a number in reduction context\"), this._forceRed(t);\n }, o.prototype.redAdd = function (t) {\n return r(this.red, \"redAdd works only with red numbers\"), this.red.add(this, t);\n }, o.prototype.redIAdd = function (t) {\n return r(this.red, \"redIAdd works only with red numbers\"), this.red.iadd(this, t);\n }, o.prototype.redSub = function (t) {\n return r(this.red, \"redSub works only with red numbers\"), this.red.sub(this, t);\n }, o.prototype.redISub = function (t) {\n return r(this.red, \"redISub works only with red numbers\"), this.red.isub(this, t);\n }, o.prototype.redShl = function (t) {\n return r(this.red, \"redShl works only with red numbers\"), this.red.shl(this, t);\n }, o.prototype.redMul = function (t) {\n return r(this.red, \"redMul works only with red numbers\"), this.red._verify2(this, t), this.red.mul(this, t);\n }, o.prototype.redIMul = function (t) {\n return r(this.red, \"redMul works only with red numbers\"), this.red._verify2(this, t), this.red.imul(this, t);\n }, o.prototype.redSqr = function () {\n return r(this.red, \"redSqr works only with red numbers\"), this.red._verify1(this), this.red.sqr(this);\n }, o.prototype.redISqr = function () {\n return r(this.red, \"redISqr works only with red numbers\"), this.red._verify1(this), this.red.isqr(this);\n }, o.prototype.redSqrt = function () {\n return r(this.red, \"redSqrt works only with red numbers\"), this.red._verify1(this), this.red.sqrt(this);\n }, o.prototype.redInvm = function () {\n return r(this.red, \"redInvm works only with red numbers\"), this.red._verify1(this), this.red.invm(this);\n }, o.prototype.redNeg = function () {\n return r(this.red, \"redNeg works only with red numbers\"), this.red._verify1(this), this.red.neg(this);\n }, o.prototype.redPow = function (t) {\n return r(this.red && !t.red, \"redPow(normalNum)\"), this.red._verify1(this), this.red.pow(this, t);\n };\n var w = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n function _(t, e) {\n this.name = t, this.p = new o(e, 16), this.n = this.p.bitLength(), this.k = new o(1).iushln(this.n).isub(this.p), this.tmp = this._tmp();\n }\n\n function S() {\n _.call(this, \"k256\", \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\");\n }\n\n function E() {\n _.call(this, \"p224\", \"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\");\n }\n\n function M() {\n _.call(this, \"p192\", \"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\");\n }\n\n function x() {\n _.call(this, \"25519\", \"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\");\n }\n\n function k(t) {\n if (\"string\" == typeof t) {\n var e = o._prime(t);\n\n this.m = e.p, this.prime = e;\n } else r(t.gtn(1), \"modulus must be greater than 1\"), this.m = t, this.prime = null;\n }\n\n function C(t) {\n k.call(this, t), this.shift = this.m.bitLength(), this.shift % 26 != 0 && (this.shift += 26 - this.shift % 26), this.r = new o(1).iushln(this.shift), this.r2 = this.imod(this.r.sqr()), this.rinv = this.r._invmp(this.m), this.minv = this.rinv.mul(this.r).isubn(1).div(this.m), this.minv = this.minv.umod(this.r), this.minv = this.r.sub(this.minv);\n }\n\n _.prototype._tmp = function () {\n var t = new o(null);\n return t.words = new Array(Math.ceil(this.n / 13)), t;\n }, _.prototype.ireduce = function (t) {\n var e,\n n = t;\n\n do {\n this.split(n, this.tmp), e = (n = (n = this.imulK(n)).iadd(this.tmp)).bitLength();\n } while (e > this.n);\n\n var r = e < this.n ? -1 : n.ucmp(this.p);\n return 0 === r ? (n.words[0] = 0, n.length = 1) : r > 0 ? n.isub(this.p) : void 0 !== n.strip ? n.strip() : n._strip(), n;\n }, _.prototype.split = function (t, e) {\n t.iushrn(this.n, 0, e);\n }, _.prototype.imulK = function (t) {\n return t.imul(this.k);\n }, i(S, _), S.prototype.split = function (t, e) {\n for (var n = Math.min(t.length, 9), r = 0; r < n; r++) {\n e.words[r] = t.words[r];\n }\n\n if (e.length = n, t.length <= 9) return t.words[0] = 0, void (t.length = 1);\n var i = t.words[9];\n\n for (e.words[e.length++] = 4194303 & i, r = 10; r < t.length; r++) {\n var o = 0 | t.words[r];\n t.words[r - 10] = (4194303 & o) << 4 | i >>> 22, i = o;\n }\n\n i >>>= 22, t.words[r - 10] = i, 0 === i && t.length > 10 ? t.length -= 10 : t.length -= 9;\n }, S.prototype.imulK = function (t) {\n t.words[t.length] = 0, t.words[t.length + 1] = 0, t.length += 2;\n\n for (var e = 0, n = 0; n < t.length; n++) {\n var r = 0 | t.words[n];\n e += 977 * r, t.words[n] = 67108863 & e, e = 64 * r + (e / 67108864 | 0);\n }\n\n return 0 === t.words[t.length - 1] && (t.length--, 0 === t.words[t.length - 1] && t.length--), t;\n }, i(E, _), i(M, _), i(x, _), x.prototype.imulK = function (t) {\n for (var e = 0, n = 0; n < t.length; n++) {\n var r = 19 * (0 | t.words[n]) + e,\n i = 67108863 & r;\n r >>>= 26, t.words[n] = i, e = r;\n }\n\n return 0 !== e && (t.words[t.length++] = e), t;\n }, o._prime = function (t) {\n if (w[t]) return w[t];\n var e;\n if (\"k256\" === t) e = new S();else if (\"p224\" === t) e = new E();else if (\"p192\" === t) e = new M();else {\n if (\"p25519\" !== t) throw new Error(\"Unknown prime \" + t);\n e = new x();\n }\n return w[t] = e, e;\n }, k.prototype._verify1 = function (t) {\n r(0 === t.negative, \"red works only with positives\"), r(t.red, \"red works only with red numbers\");\n }, k.prototype._verify2 = function (t, e) {\n r(0 == (t.negative | e.negative), \"red works only with positives\"), r(t.red && t.red === e.red, \"red works only with red numbers\");\n }, k.prototype.imod = function (t) {\n return this.prime ? this.prime.ireduce(t)._forceRed(this) : (l(t, t.umod(this.m)._forceRed(this)), t);\n }, k.prototype.neg = function (t) {\n return t.isZero() ? t.clone() : this.m.sub(t)._forceRed(this);\n }, k.prototype.add = function (t, e) {\n this._verify2(t, e);\n\n var n = t.add(e);\n return n.cmp(this.m) >= 0 && n.isub(this.m), n._forceRed(this);\n }, k.prototype.iadd = function (t, e) {\n this._verify2(t, e);\n\n var n = t.iadd(e);\n return n.cmp(this.m) >= 0 && n.isub(this.m), n;\n }, k.prototype.sub = function (t, e) {\n this._verify2(t, e);\n\n var n = t.sub(e);\n return n.cmpn(0) < 0 && n.iadd(this.m), n._forceRed(this);\n }, k.prototype.isub = function (t, e) {\n this._verify2(t, e);\n\n var n = t.isub(e);\n return n.cmpn(0) < 0 && n.iadd(this.m), n;\n }, k.prototype.shl = function (t, e) {\n return this._verify1(t), this.imod(t.ushln(e));\n }, k.prototype.imul = function (t, e) {\n return this._verify2(t, e), this.imod(t.imul(e));\n }, k.prototype.mul = function (t, e) {\n return this._verify2(t, e), this.imod(t.mul(e));\n }, k.prototype.isqr = function (t) {\n return this.imul(t, t.clone());\n }, k.prototype.sqr = function (t) {\n return this.mul(t, t);\n }, k.prototype.sqrt = function (t) {\n if (t.isZero()) return t.clone();\n var e = this.m.andln(3);\n\n if (r(e % 2 == 1), 3 === e) {\n var n = this.m.add(new o(1)).iushrn(2);\n return this.pow(t, n);\n }\n\n for (var i = this.m.subn(1), s = 0; !i.isZero() && 0 === i.andln(1);) {\n s++, i.iushrn(1);\n }\n\n r(!i.isZero());\n var a = new o(1).toRed(this),\n u = a.redNeg(),\n c = this.m.subn(1).iushrn(1),\n l = this.m.bitLength();\n\n for (l = new o(2 * l * l).toRed(this); 0 !== this.pow(l, c).cmp(u);) {\n l.redIAdd(u);\n }\n\n for (var h = this.pow(l, i), d = this.pow(t, i.addn(1).iushrn(1)), f = this.pow(t, i), p = s; 0 !== f.cmp(a);) {\n for (var b = f, y = 0; 0 !== b.cmp(a); y++) {\n b = b.redSqr();\n }\n\n r(y < p);\n var g = this.pow(h, new o(1).iushln(p - y - 1));\n d = d.redMul(g), h = g.redSqr(), f = f.redMul(h), p = y;\n }\n\n return d;\n }, k.prototype.invm = function (t) {\n var e = t._invmp(this.m);\n\n return 0 !== e.negative ? (e.negative = 0, this.imod(e).redNeg()) : this.imod(e);\n }, k.prototype.pow = function (t, e) {\n if (e.isZero()) return new o(1).toRed(this);\n if (0 === e.cmpn(1)) return t.clone();\n var n = new Array(16);\n n[0] = new o(1).toRed(this), n[1] = t;\n\n for (var r = 2; r < n.length; r++) {\n n[r] = this.mul(n[r - 1], t);\n }\n\n var i = n[0],\n s = 0,\n a = 0,\n u = e.bitLength() % 26;\n\n for (0 === u && (u = 26), r = e.length - 1; r >= 0; r--) {\n for (var c = e.words[r], l = u - 1; l >= 0; l--) {\n var h = c >> l & 1;\n i !== n[0] && (i = this.sqr(i)), 0 !== h || 0 !== s ? (s <<= 1, s |= h, (4 === ++a || 0 === r && 0 === l) && (i = this.mul(i, n[s]), a = 0, s = 0)) : a = 0;\n }\n\n u = 26;\n }\n\n return i;\n }, k.prototype.convertTo = function (t) {\n var e = t.umod(this.m);\n return e === t ? e.clone() : e;\n }, k.prototype.convertFrom = function (t) {\n var e = t.clone();\n return e.red = null, e;\n }, o.mont = function (t) {\n return new C(t);\n }, i(C, k), C.prototype.convertTo = function (t) {\n return this.imod(t.ushln(this.shift));\n }, C.prototype.convertFrom = function (t) {\n var e = this.imod(t.mul(this.rinv));\n return e.red = null, e;\n }, C.prototype.imul = function (t, e) {\n if (t.isZero() || e.isZero()) return t.words[0] = 0, t.length = 1, t;\n var n = t.imul(e),\n r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),\n i = n.isub(r).iushrn(this.shift),\n o = i;\n return i.cmp(this.m) >= 0 ? o = i.isub(this.m) : i.cmpn(0) < 0 && (o = i.iadd(this.m)), o._forceRed(this);\n }, C.prototype.mul = function (t, e) {\n if (t.isZero() || e.isZero()) return new o(0)._forceRed(this);\n var n = t.mul(e),\n r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),\n i = n.isub(r).iushrn(this.shift),\n s = i;\n return i.cmp(this.m) >= 0 ? s = i.isub(this.m) : i.cmpn(0) < 0 && (s = i.iadd(this.m)), s._forceRed(this);\n }, C.prototype.invm = function (t) {\n return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this);\n };\n }(t, this);\n }).call(this, n(131)(t));\n}, function (t, e, n) {\n \"use strict\";\n\n function r() {\n return function (t) {\n return t;\n };\n }\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ProviderType = e.RegExpString = e.IntNumber = e.BigIntString = e.AddressString = e.HexString = e.OpaqueType = void 0, e.OpaqueType = r, e.HexString = function (t) {\n return t;\n }, e.AddressString = function (t) {\n return t;\n }, e.BigIntString = function (t) {\n return t;\n }, e.IntNumber = function (t) {\n return Math.floor(t);\n }, e.RegExpString = function (t) {\n return t;\n }, function (t) {\n t.CoinbaseWallet = \"CoinbaseWallet\", t.MetaMask = \"MetaMask\", t.Unselected = \"\";\n }(e.ProviderType || (e.ProviderType = {}));\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return u;\n }), n.d(e, \"a\", function () {\n return d;\n });\n var r = n(0),\n i = n(1),\n o = n(4),\n s = n(3),\n a = n(6);\n\n function u(t, e, n, r) {\n return function (i) {\n return i.lift(new c(t, e, n, r));\n };\n }\n\n var c = function () {\n function t(t, e, n, r) {\n this.keySelector = t, this.elementSelector = e, this.durationSelector = n, this.subjectSelector = r;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new l(t, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n }, t;\n }(),\n l = function (t) {\n function e(e, n, r, i, o) {\n var s = t.call(this, e) || this;\n return s.keySelector = n, s.elementSelector = r, s.durationSelector = i, s.subjectSelector = o, s.groups = null, s.attemptedToUnsubscribe = !1, s.count = 0, s;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e;\n\n try {\n e = this.keySelector(t);\n } catch (t) {\n return void this.error(t);\n }\n\n this._group(t, e);\n }, e.prototype._group = function (t, e) {\n var n = this.groups;\n n || (n = this.groups = new Map());\n var r,\n i = n.get(e);\n if (this.elementSelector) try {\n r = this.elementSelector(t);\n } catch (t) {\n this.error(t);\n } else r = t;\n\n if (!i) {\n i = this.subjectSelector ? this.subjectSelector() : new a.a(), n.set(e, i);\n var o = new d(e, i, this);\n\n if (this.destination.next(o), this.durationSelector) {\n var s = void 0;\n\n try {\n s = this.durationSelector(new d(e, i));\n } catch (t) {\n return void this.error(t);\n }\n\n this.add(s.subscribe(new h(e, i, this)));\n }\n }\n\n i.closed || i.next(r);\n }, e.prototype._error = function (t) {\n var e = this.groups;\n e && (e.forEach(function (e, n) {\n e.error(t);\n }), e.clear()), this.destination.error(t);\n }, e.prototype._complete = function () {\n var t = this.groups;\n t && (t.forEach(function (t, e) {\n t.complete();\n }), t.clear()), this.destination.complete();\n }, e.prototype.removeGroup = function (t) {\n this.groups.delete(t);\n }, e.prototype.unsubscribe = function () {\n this.closed || (this.attemptedToUnsubscribe = !0, 0 === this.count && t.prototype.unsubscribe.call(this));\n }, e;\n }(i.a),\n h = function (t) {\n function e(e, n, r) {\n var i = t.call(this, n) || this;\n return i.key = e, i.group = n, i.parent = r, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.complete();\n }, e.prototype._unsubscribe = function () {\n var t = this.parent,\n e = this.key;\n this.key = this.parent = null, t && t.removeGroup(e);\n }, e;\n }(i.a),\n d = function (t) {\n function e(e, n, r) {\n var i = t.call(this) || this;\n return i.key = e, i.groupSubject = n, i.refCountSubscription = r, i;\n }\n\n return r.a(e, t), e.prototype._subscribe = function (t) {\n var e = new o.a(),\n n = this.refCountSubscription,\n r = this.groupSubject;\n return n && !n.closed && e.add(new f(n)), e.add(r.subscribe(t)), e;\n }, e;\n }(s.a),\n f = function (t) {\n function e(e) {\n var n = t.call(this) || this;\n return n.parent = e, e.count++, n;\n }\n\n return r.a(e, t), e.prototype.unsubscribe = function () {\n var e = this.parent;\n e.closed || this.closed || (t.prototype.unsubscribe.call(this), e.count -= 1, 0 === e.count && e.attemptedToUnsubscribe && e.unsubscribe());\n }, e;\n }(o.a);\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n var e,\n n,\n i = \"\";\n if (\"string\" == typeof t || \"number\" == typeof t) i += t;else if (\"object\" == _typeof(t)) if (Array.isArray(t)) for (e = 0; e < t.length; e++) {\n t[e] && (n = r(t[e])) && (i && (i += \" \"), i += n);\n } else for (e in t) {\n t[e] && (i && (i += \" \"), i += e);\n }\n return i;\n }\n\n function i() {\n for (var t, e, n = 0, i = \"\"; n < arguments.length;) {\n (t = arguments[n++]) && (e = r(t)) && (i && (i += \" \"), i += e);\n }\n\n return i;\n }\n\n n.r(e), n.d(e, \"clsx\", function () {\n return i;\n }), e.default = i;\n}, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"Observable\", function () {\n return r.a;\n }), n.d(e, \"ConnectableObservable\", function () {\n return i.a;\n }), n.d(e, \"GroupedObservable\", function () {\n return o.a;\n }), n.d(e, \"observable\", function () {\n return s.a;\n }), n.d(e, \"Subject\", function () {\n return a.a;\n }), n.d(e, \"BehaviorSubject\", function () {\n return u.a;\n }), n.d(e, \"ReplaySubject\", function () {\n return c.a;\n }), n.d(e, \"AsyncSubject\", function () {\n return l.a;\n }), n.d(e, \"asap\", function () {\n return h.a;\n }), n.d(e, \"asapScheduler\", function () {\n return h.b;\n }), n.d(e, \"async\", function () {\n return d.a;\n }), n.d(e, \"asyncScheduler\", function () {\n return d.b;\n }), n.d(e, \"queue\", function () {\n return f.a;\n }), n.d(e, \"queueScheduler\", function () {\n return f.b;\n }), n.d(e, \"animationFrame\", function () {\n return v;\n }), n.d(e, \"animationFrameScheduler\", function () {\n return m;\n }), n.d(e, \"VirtualTimeScheduler\", function () {\n return w;\n }), n.d(e, \"VirtualAction\", function () {\n return _;\n }), n.d(e, \"Scheduler\", function () {\n return S.a;\n }), n.d(e, \"Subscription\", function () {\n return E.a;\n }), n.d(e, \"Subscriber\", function () {\n return M.a;\n }), n.d(e, \"Notification\", function () {\n return x.a;\n }), n.d(e, \"NotificationKind\", function () {\n return x.b;\n }), n.d(e, \"pipe\", function () {\n return k.a;\n }), n.d(e, \"noop\", function () {\n return C.a;\n }), n.d(e, \"identity\", function () {\n return A.a;\n }), n.d(e, \"isObservable\", function () {\n return I;\n }), n.d(e, \"ArgumentOutOfRangeError\", function () {\n return O.a;\n }), n.d(e, \"EmptyError\", function () {\n return j.a;\n }), n.d(e, \"ObjectUnsubscribedError\", function () {\n return R.a;\n }), n.d(e, \"UnsubscriptionError\", function () {\n return N.a;\n }), n.d(e, \"TimeoutError\", function () {\n return T.a;\n }), n.d(e, \"bindCallback\", function () {\n return F;\n }), n.d(e, \"bindNodeCallback\", function () {\n return H;\n }), n.d(e, \"combineLatest\", function () {\n return Z.b;\n }), n.d(e, \"concat\", function () {\n return G.a;\n }), n.d(e, \"defer\", function () {\n return Y.a;\n }), n.d(e, \"empty\", function () {\n return $.b;\n }), n.d(e, \"forkJoin\", function () {\n return K;\n }), n.d(e, \"from\", function () {\n return Q.a;\n }), n.d(e, \"fromEvent\", function () {\n return et;\n }), n.d(e, \"fromEventPattern\", function () {\n return nt;\n }), n.d(e, \"generate\", function () {\n return rt;\n }), n.d(e, \"iif\", function () {\n return ot;\n }), n.d(e, \"interval\", function () {\n return at;\n }), n.d(e, \"merge\", function () {\n return ct.a;\n }), n.d(e, \"never\", function () {\n return ht;\n }), n.d(e, \"of\", function () {\n return dt.a;\n }), n.d(e, \"onErrorResumeNext\", function () {\n return ft;\n }), n.d(e, \"pairs\", function () {\n return pt;\n }), n.d(e, \"partition\", function () {\n return vt;\n }), n.d(e, \"race\", function () {\n return wt.a;\n }), n.d(e, \"range\", function () {\n return _t;\n }), n.d(e, \"throwError\", function () {\n return Et.a;\n }), n.d(e, \"timer\", function () {\n return Mt.a;\n }), n.d(e, \"using\", function () {\n return xt;\n }), n.d(e, \"zip\", function () {\n return kt.b;\n }), n.d(e, \"scheduled\", function () {\n return Ct.a;\n }), n.d(e, \"EMPTY\", function () {\n return $.a;\n }), n.d(e, \"NEVER\", function () {\n return lt;\n }), n.d(e, \"config\", function () {\n return At.a;\n });\n\n var r = n(3),\n i = n(71),\n o = n(68),\n s = n(22),\n a = n(6),\n u = n(72),\n c = n(49),\n l = n(31),\n h = n(42),\n d = n(7),\n f = n(61),\n p = n(0),\n b = n(32),\n y = function (t) {\n function e(e, n) {\n var r = t.call(this, e, n) || this;\n return r.scheduler = e, r.work = n, r;\n }\n\n return p.a(e, t), e.prototype.requestAsyncId = function (e, n, r) {\n return void 0 === r && (r = 0), null !== r && r > 0 ? t.prototype.requestAsyncId.call(this, e, n, r) : (e.actions.push(this), e.scheduled || (e.scheduled = requestAnimationFrame(function () {\n return e.flush(null);\n })));\n }, e.prototype.recycleAsyncId = function (e, n, r) {\n if (void 0 === r && (r = 0), null !== r && r > 0 || null === r && this.delay > 0) return t.prototype.recycleAsyncId.call(this, e, n, r);\n 0 === e.actions.length && (cancelAnimationFrame(n), e.scheduled = void 0);\n }, e;\n }(b.a),\n g = n(30),\n m = new (function (t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n return p.a(e, t), e.prototype.flush = function (t) {\n this.active = !0, this.scheduled = void 0;\n var e,\n n = this.actions,\n r = -1,\n i = n.length;\n t = t || n.shift();\n\n do {\n if (e = t.execute(t.state, t.delay)) break;\n } while (++r < i && (t = n.shift()));\n\n if (this.active = !1, e) {\n for (; ++r < i && (t = n.shift());) {\n t.unsubscribe();\n }\n\n throw e;\n }\n }, e;\n }(g.a))(y),\n v = m,\n w = function (t) {\n function e(e, n) {\n void 0 === e && (e = _), void 0 === n && (n = Number.POSITIVE_INFINITY);\n var r = t.call(this, e, function () {\n return r.frame;\n }) || this;\n return r.maxFrames = n, r.frame = 0, r.index = -1, r;\n }\n\n return p.a(e, t), e.prototype.flush = function () {\n for (var t, e, n = this.actions, r = this.maxFrames; (e = n[0]) && e.delay <= r && (n.shift(), this.frame = e.delay, !(t = e.execute(e.state, e.delay)));) {\n ;\n }\n\n if (t) {\n for (; e = n.shift();) {\n e.unsubscribe();\n }\n\n throw t;\n }\n }, e.frameTimeFactor = 10, e;\n }(g.a),\n _ = function (t) {\n function e(e, n, r) {\n void 0 === r && (r = e.index += 1);\n var i = t.call(this, e, n) || this;\n return i.scheduler = e, i.work = n, i.index = r, i.active = !0, i.index = e.index = r, i;\n }\n\n return p.a(e, t), e.prototype.schedule = function (n, r) {\n if (void 0 === r && (r = 0), !this.id) return t.prototype.schedule.call(this, n, r);\n this.active = !1;\n var i = new e(this.scheduler, this.work);\n return this.add(i), i.schedule(n, r);\n }, e.prototype.requestAsyncId = function (t, n, r) {\n void 0 === r && (r = 0), this.delay = t.frame + r;\n var i = t.actions;\n return i.push(this), i.sort(e.sortActions), !0;\n }, e.prototype.recycleAsyncId = function (t, e, n) {\n void 0 === n && (n = 0);\n }, e.prototype._execute = function (e, n) {\n if (!0 === this.active) return t.prototype._execute.call(this, e, n);\n }, e.sortActions = function (t, e) {\n return t.delay === e.delay ? t.index === e.index ? 0 : t.index > e.index ? 1 : -1 : t.delay > e.delay ? 1 : -1;\n }, e;\n }(b.a),\n S = n(62),\n E = n(4),\n M = n(1),\n x = n(18),\n k = n(41),\n C = n(21),\n A = n(15);\n\n function I(t) {\n return !!t && (t instanceof r.a || \"function\" == typeof t.lift && \"function\" == typeof t.subscribe);\n }\n\n var O = n(25),\n j = n(27),\n R = n(23),\n N = n(44),\n T = n(74),\n P = n(9),\n L = n(56),\n D = n(8),\n B = n(10);\n\n function F(t, e, n) {\n if (e) {\n if (!Object(B.a)(e)) return function () {\n for (var r = [], i = 0; i < arguments.length; i++) {\n r[i] = arguments[i];\n }\n\n return F(t, n).apply(void 0, r).pipe(Object(P.a)(function (t) {\n return Object(D.a)(t) ? e.apply(void 0, t) : e(t);\n }));\n };\n n = e;\n }\n\n return function () {\n for (var e = [], i = 0; i < arguments.length; i++) {\n e[i] = arguments[i];\n }\n\n var o,\n s = this,\n a = {\n context: s,\n subject: o,\n callbackFunc: t,\n scheduler: n\n };\n return new r.a(function (r) {\n if (n) {\n var i = {\n args: e,\n subscriber: r,\n params: a\n };\n return n.schedule(U, 0, i);\n }\n\n if (!o) {\n o = new l.a();\n\n try {\n t.apply(s, e.concat([function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n o.next(t.length <= 1 ? t[0] : t), o.complete();\n }]));\n } catch (t) {\n Object(L.a)(o) ? o.error(t) : console.warn(t);\n }\n }\n\n return o.subscribe(r);\n });\n };\n }\n\n function U(t) {\n var e = this,\n n = t.args,\n r = t.subscriber,\n i = t.params,\n o = i.callbackFunc,\n s = i.context,\n a = i.scheduler,\n u = i.subject;\n\n if (!u) {\n u = i.subject = new l.a();\n\n try {\n o.apply(s, n.concat([function () {\n for (var t = [], n = 0; n < arguments.length; n++) {\n t[n] = arguments[n];\n }\n\n var r = t.length <= 1 ? t[0] : t;\n e.add(a.schedule(W, 0, {\n value: r,\n subject: u\n }));\n }]));\n } catch (t) {\n u.error(t);\n }\n }\n\n this.add(u.subscribe(r));\n }\n\n function W(t) {\n var e = t.value,\n n = t.subject;\n n.next(e), n.complete();\n }\n\n function H(t, e, n) {\n if (e) {\n if (!Object(B.a)(e)) return function () {\n for (var r = [], i = 0; i < arguments.length; i++) {\n r[i] = arguments[i];\n }\n\n return H(t, n).apply(void 0, r).pipe(Object(P.a)(function (t) {\n return Object(D.a)(t) ? e.apply(void 0, t) : e(t);\n }));\n };\n n = e;\n }\n\n return function () {\n for (var e = [], i = 0; i < arguments.length; i++) {\n e[i] = arguments[i];\n }\n\n var o = {\n subject: void 0,\n args: e,\n callbackFunc: t,\n scheduler: n,\n context: this\n };\n return new r.a(function (r) {\n var i = o.context,\n s = o.subject;\n if (n) return n.schedule(z, 0, {\n params: o,\n subscriber: r,\n context: i\n });\n\n if (!s) {\n s = o.subject = new l.a();\n\n try {\n t.apply(i, e.concat([function () {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = t.shift();\n n ? s.error(n) : (s.next(t.length <= 1 ? t[0] : t), s.complete());\n }]));\n } catch (t) {\n Object(L.a)(s) ? s.error(t) : console.warn(t);\n }\n }\n\n return s.subscribe(r);\n });\n };\n }\n\n function z(t) {\n var e = this,\n n = t.params,\n r = t.subscriber,\n i = t.context,\n o = n.callbackFunc,\n s = n.args,\n a = n.scheduler,\n u = n.subject;\n\n if (!u) {\n u = n.subject = new l.a();\n\n try {\n o.apply(i, s.concat([function () {\n for (var t = [], n = 0; n < arguments.length; n++) {\n t[n] = arguments[n];\n }\n\n var r = t.shift();\n if (r) e.add(a.schedule(q, 0, {\n err: r,\n subject: u\n }));else {\n var i = t.length <= 1 ? t[0] : t;\n e.add(a.schedule(V, 0, {\n value: i,\n subject: u\n }));\n }\n }]));\n } catch (t) {\n this.add(a.schedule(q, 0, {\n err: t,\n subject: u\n }));\n }\n }\n\n this.add(u.subscribe(r));\n }\n\n function V(t) {\n var e = t.value,\n n = t.subject;\n n.next(e), n.complete();\n }\n\n function q(t) {\n var e = t.err;\n t.subject.error(e);\n }\n\n var Z = n(51),\n G = n(34),\n Y = n(53),\n $ = n(11),\n J = n(55),\n Q = n(12);\n\n function K() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n if (1 === t.length) {\n var n = t[0];\n if (Object(D.a)(n)) return X(n, null);\n\n if (Object(J.a)(n) && Object.getPrototypeOf(n) === Object.prototype) {\n var r = Object.keys(n);\n return X(r.map(function (t) {\n return n[t];\n }), r);\n }\n }\n\n if (\"function\" == typeof t[t.length - 1]) {\n var i = t.pop();\n return X(t = 1 === t.length && Object(D.a)(t[0]) ? t[0] : t, null).pipe(Object(P.a)(function (t) {\n return i.apply(void 0, t);\n }));\n }\n\n return X(t, null);\n }\n\n function X(t, e) {\n return new r.a(function (n) {\n var r = t.length;\n if (0 !== r) for (var i = new Array(r), o = 0, s = 0, a = function a(_a) {\n var u = Object(Q.a)(t[_a]),\n c = !1;\n n.add(u.subscribe({\n next: function next(t) {\n c || (c = !0, s++), i[_a] = t;\n },\n error: function error(t) {\n return n.error(t);\n },\n complete: function complete() {\n ++o !== r && c || (s === r && n.next(e ? e.reduce(function (t, e, n) {\n return t[e] = i[n], t;\n }, {}) : i), n.complete());\n }\n }));\n }, u = 0; u < r; u++) {\n a(u);\n } else n.complete();\n });\n }\n\n var tt = n(26);\n\n function et(t, e, n, i) {\n return Object(tt.a)(n) && (i = n, n = void 0), i ? et(t, e, n).pipe(Object(P.a)(function (t) {\n return Object(D.a)(t) ? i.apply(void 0, t) : i(t);\n })) : new r.a(function (r) {\n !function t(e, n, r, i, o) {\n var s;\n\n if (function (t) {\n return t && \"function\" == typeof t.addEventListener && \"function\" == typeof t.removeEventListener;\n }(e)) {\n var a = e;\n e.addEventListener(n, r, o), s = function s() {\n return a.removeEventListener(n, r, o);\n };\n } else if (function (t) {\n return t && \"function\" == typeof t.on && \"function\" == typeof t.off;\n }(e)) {\n var u = e;\n e.on(n, r), s = function s() {\n return u.off(n, r);\n };\n } else if (function (t) {\n return t && \"function\" == typeof t.addListener && \"function\" == typeof t.removeListener;\n }(e)) {\n var c = e;\n e.addListener(n, r), s = function s() {\n return c.removeListener(n, r);\n };\n } else {\n if (!e || !e.length) throw new TypeError(\"Invalid event target\");\n\n for (var l = 0, h = e.length; l < h; l++) {\n t(e[l], n, r, i, o);\n }\n }\n\n i.add(s);\n }(t, e, function (t) {\n arguments.length > 1 ? r.next(Array.prototype.slice.call(arguments)) : r.next(t);\n }, r, n);\n });\n }\n\n function nt(t, e, n) {\n return n ? nt(t, e).pipe(Object(P.a)(function (t) {\n return Object(D.a)(t) ? n.apply(void 0, t) : n(t);\n })) : new r.a(function (n) {\n var r,\n i = function i() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return n.next(1 === t.length ? t[0] : t);\n };\n\n try {\n r = t(i);\n } catch (t) {\n return void n.error(t);\n }\n\n if (Object(tt.a)(e)) return function () {\n return e(i, r);\n };\n });\n }\n\n function rt(t, e, n, i, o) {\n var s, a;\n\n if (1 == arguments.length) {\n var u = t;\n a = u.initialState, e = u.condition, n = u.iterate, s = u.resultSelector || A.a, o = u.scheduler;\n } else void 0 === i || Object(B.a)(i) ? (a = t, s = A.a, o = i) : (a = t, s = i);\n\n return new r.a(function (t) {\n var r = a;\n if (o) return o.schedule(it, 0, {\n subscriber: t,\n iterate: n,\n condition: e,\n resultSelector: s,\n state: r\n });\n\n for (;;) {\n if (e) {\n var i = void 0;\n\n try {\n i = e(r);\n } catch (e) {\n return void t.error(e);\n }\n\n if (!i) {\n t.complete();\n break;\n }\n }\n\n var u = void 0;\n\n try {\n u = s(r);\n } catch (e) {\n return void t.error(e);\n }\n\n if (t.next(u), t.closed) break;\n\n try {\n r = n(r);\n } catch (e) {\n return void t.error(e);\n }\n }\n });\n }\n\n function it(t) {\n var e = t.subscriber,\n n = t.condition;\n\n if (!e.closed) {\n if (t.needIterate) try {\n t.state = t.iterate(t.state);\n } catch (t) {\n return void e.error(t);\n } else t.needIterate = !0;\n\n if (n) {\n var r = void 0;\n\n try {\n r = n(t.state);\n } catch (t) {\n return void e.error(t);\n }\n\n if (!r) return void e.complete();\n if (e.closed) return;\n }\n\n var i;\n\n try {\n i = t.resultSelector(t.state);\n } catch (t) {\n return void e.error(t);\n }\n\n if (!e.closed && (e.next(i), !e.closed)) return this.schedule(t);\n }\n }\n\n function ot(t, e, n) {\n return void 0 === e && (e = $.a), void 0 === n && (n = $.a), Object(Y.a)(function () {\n return t() ? e : n;\n });\n }\n\n var st = n(33);\n\n function at(t, e) {\n return void 0 === t && (t = 0), void 0 === e && (e = d.a), (!Object(st.a)(t) || t < 0) && (t = 0), e && \"function\" == typeof e.schedule || (e = d.a), new r.a(function (n) {\n return n.add(e.schedule(ut, t, {\n subscriber: n,\n counter: 0,\n period: t\n })), n;\n });\n }\n\n function ut(t) {\n var e = t.subscriber,\n n = t.counter,\n r = t.period;\n e.next(n), this.schedule({\n subscriber: e,\n counter: n + 1,\n period: r\n }, r);\n }\n\n var ct = n(76),\n lt = new r.a(C.a);\n\n function ht() {\n return lt;\n }\n\n var dt = n(39);\n\n function ft() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n if (0 === t.length) return $.a;\n var n = t[0],\n i = t.slice(1);\n return 1 === t.length && Object(D.a)(n) ? ft.apply(void 0, n) : new r.a(function (t) {\n var e = function e() {\n return t.add(ft.apply(void 0, i).subscribe(t));\n };\n\n return Object(Q.a)(n).subscribe({\n next: function next(e) {\n t.next(e);\n },\n error: e,\n complete: e\n });\n });\n }\n\n function pt(t, e) {\n return e ? new r.a(function (n) {\n var r = Object.keys(t),\n i = new E.a();\n return i.add(e.schedule(bt, 0, {\n keys: r,\n index: 0,\n subscriber: n,\n subscription: i,\n obj: t\n })), i;\n }) : new r.a(function (e) {\n for (var n = Object.keys(t), r = 0; r < n.length && !e.closed; r++) {\n var i = n[r];\n t.hasOwnProperty(i) && e.next([i, t[i]]);\n }\n\n e.complete();\n });\n }\n\n function bt(t) {\n var e = t.keys,\n n = t.index,\n r = t.subscriber,\n i = t.subscription,\n o = t.obj;\n if (!r.closed) if (n < e.length) {\n var s = e[n];\n r.next([s, o[s]]), i.add(this.schedule({\n keys: e,\n index: n + 1,\n subscriber: r,\n subscription: i,\n obj: o\n }));\n } else r.complete();\n }\n\n var yt = n(84),\n gt = n(35),\n mt = n(17);\n\n function vt(t, e, n) {\n return [Object(mt.a)(e, n)(new r.a(Object(gt.a)(t))), Object(mt.a)(Object(yt.a)(e, n))(new r.a(Object(gt.a)(t)))];\n }\n\n var wt = n(77);\n\n function _t(t, e, n) {\n return void 0 === t && (t = 0), new r.a(function (r) {\n void 0 === e && (e = t, t = 0);\n var i = 0,\n o = t;\n if (n) return n.schedule(St, 0, {\n index: i,\n count: e,\n start: t,\n subscriber: r\n });\n\n for (;;) {\n if (i++ >= e) {\n r.complete();\n break;\n }\n\n if (r.next(o++), r.closed) break;\n }\n });\n }\n\n function St(t) {\n var e = t.start,\n n = t.index,\n r = t.count,\n i = t.subscriber;\n n >= r ? i.complete() : (i.next(e), i.closed || (t.index = n + 1, t.start = e + 1, this.schedule(t)));\n }\n\n var Et = n(50),\n Mt = n(78);\n\n function xt(t, e) {\n return new r.a(function (n) {\n var r, i;\n\n try {\n r = t();\n } catch (t) {\n return void n.error(t);\n }\n\n try {\n i = e(r);\n } catch (t) {\n return void n.error(t);\n }\n\n var o = (i ? Object(Q.a)(i) : $.a).subscribe(n);\n return function () {\n o.unsubscribe(), r && r.unsubscribe();\n };\n });\n }\n\n var kt = n(54),\n Ct = n(79),\n At = n(14);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return c;\n }), n.d(e, \"b\", function () {\n return l;\n });\n\n var r = n(0),\n i = n(6),\n o = n(3),\n s = n(1),\n a = n(4),\n u = n(48),\n c = function (t) {\n function e(e, n) {\n var r = t.call(this) || this;\n return r.source = e, r.subjectFactory = n, r._refCount = 0, r._isComplete = !1, r;\n }\n\n return r.a(e, t), e.prototype._subscribe = function (t) {\n return this.getSubject().subscribe(t);\n }, e.prototype.getSubject = function () {\n var t = this._subject;\n return t && !t.isStopped || (this._subject = this.subjectFactory()), this._subject;\n }, e.prototype.connect = function () {\n var t = this._connection;\n return t || (this._isComplete = !1, (t = this._connection = new a.a()).add(this.source.subscribe(new h(this.getSubject(), this))), t.closed && (this._connection = null, t = a.a.EMPTY)), t;\n }, e.prototype.refCount = function () {\n return Object(u.a)()(this);\n }, e;\n }(o.a),\n l = function () {\n var t = c.prototype;\n return {\n operator: {\n value: null\n },\n _refCount: {\n value: 0,\n writable: !0\n },\n _subject: {\n value: null,\n writable: !0\n },\n _connection: {\n value: null,\n writable: !0\n },\n _subscribe: {\n value: t._subscribe\n },\n _isComplete: {\n value: t._isComplete,\n writable: !0\n },\n getSubject: {\n value: t.getSubject\n },\n connect: {\n value: t.connect\n },\n refCount: {\n value: t.refCount\n }\n };\n }(),\n h = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.connectable = n, r;\n }\n\n return r.a(e, t), e.prototype._error = function (e) {\n this._unsubscribe(), t.prototype._error.call(this, e);\n }, e.prototype._complete = function () {\n this.connectable._isComplete = !0, this._unsubscribe(), t.prototype._complete.call(this);\n }, e.prototype._unsubscribe = function () {\n var t = this.connectable;\n\n if (t) {\n this.connectable = null;\n var e = t._connection;\n t._refCount = 0, t._subject = null, t._connection = null, e && e.unsubscribe();\n }\n }, e;\n }(i.b);\n\n s.a;\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return s;\n });\n\n var r = n(0),\n i = n(6),\n o = n(23),\n s = function (t) {\n function e(e) {\n var n = t.call(this) || this;\n return n._value = e, n;\n }\n\n return r.a(e, t), Object.defineProperty(e.prototype, \"value\", {\n get: function get() {\n return this.getValue();\n },\n enumerable: !0,\n configurable: !0\n }), e.prototype._subscribe = function (e) {\n var n = t.prototype._subscribe.call(this, e);\n\n return n && !n.closed && e.next(this._value), n;\n }, e.prototype.getValue = function () {\n if (this.hasError) throw this.thrownError;\n if (this.closed) throw new o.a();\n return this._value;\n }, e.prototype.next = function (e) {\n t.prototype.next.call(this, this._value = e);\n }, e;\n }(i.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"b\", function () {\n return s;\n }), n.d(e, \"a\", function () {\n return u;\n });\n var r = n(0),\n i = n(1),\n o = n(18);\n\n function s(t, e) {\n return void 0 === e && (e = 0), function (n) {\n return n.lift(new a(t, e));\n };\n }\n\n var a = function () {\n function t(t, e) {\n void 0 === e && (e = 0), this.scheduler = t, this.delay = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new u(t, this.scheduler, this.delay));\n }, t;\n }(),\n u = function (t) {\n function e(e, n, r) {\n void 0 === r && (r = 0);\n var i = t.call(this, e) || this;\n return i.scheduler = n, i.delay = r, i;\n }\n\n return r.a(e, t), e.dispatch = function (t) {\n var e = t.notification,\n n = t.destination;\n e.observe(n), this.unsubscribe();\n }, e.prototype.scheduleMessage = function (t) {\n this.destination.add(this.scheduler.schedule(e.dispatch, this.delay, new c(t, this.destination)));\n }, e.prototype._next = function (t) {\n this.scheduleMessage(o.a.createNext(t));\n }, e.prototype._error = function (t) {\n this.scheduleMessage(o.a.createError(t)), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.scheduleMessage(o.a.createComplete()), this.unsubscribe();\n }, e;\n }(i.a),\n c = function () {\n return function (t, e) {\n this.notification = t, this.destination = e;\n };\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function () {\n function t() {\n return Error.call(this), this.message = \"Timeout has occurred\", this.name = \"TimeoutError\", this;\n }\n\n return t.prototype = Object.create(Error.prototype), t;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n var r = n(52);\n\n function i() {\n return Object(r.a)(1);\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return a;\n });\n var r = n(3),\n i = n(10),\n o = n(52),\n s = n(29);\n\n function a() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = Number.POSITIVE_INFINITY,\n a = null,\n u = t[t.length - 1];\n return Object(i.a)(u) ? (a = t.pop(), t.length > 1 && \"number\" == typeof t[t.length - 1] && (n = t.pop())) : \"number\" == typeof u && (n = t.pop()), null === a && 1 === t.length && t[0] instanceof r.a ? t[0] : Object(o.a)(n)(Object(s.a)(t, a));\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return u;\n });\n var r = n(0),\n i = n(8),\n o = n(29),\n s = n(16),\n a = n(13);\n\n function u() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n if (1 === t.length) {\n if (!Object(i.a)(t[0])) return t[0];\n t = t[0];\n }\n\n return Object(o.a)(t, void 0).lift(new c());\n }\n\n var c = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new l(t));\n }, t;\n }(),\n l = function (t) {\n function e(e) {\n var n = t.call(this, e) || this;\n return n.hasFirst = !1, n.observables = [], n.subscriptions = [], n;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.observables.push(t);\n }, e.prototype._complete = function () {\n var t = this.observables,\n e = t.length;\n if (0 === e) this.destination.complete();else {\n for (var n = 0; n < e && !this.hasFirst; n++) {\n var r = t[n],\n i = Object(a.a)(this, r, void 0, n);\n this.subscriptions && this.subscriptions.push(i), this.add(i);\n }\n\n this.observables = null;\n }\n }, e.prototype.notifyNext = function (t, e, n) {\n if (!this.hasFirst) {\n this.hasFirst = !0;\n\n for (var r = 0; r < this.subscriptions.length; r++) {\n if (r !== n) {\n var i = this.subscriptions[r];\n i.unsubscribe(), this.remove(i);\n }\n }\n\n this.subscriptions = null;\n }\n\n this.destination.next(e);\n }, e;\n }(s.a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return a;\n });\n var r = n(3),\n i = n(7),\n o = n(33),\n s = n(10);\n\n function a(t, e, n) {\n void 0 === t && (t = 0);\n var a = -1;\n return Object(o.a)(e) ? a = Number(e) < 1 ? 1 : Number(e) : Object(s.a)(e) && (n = e), Object(s.a)(n) || (n = i.a), new r.a(function (e) {\n var r = Object(o.a)(t) ? t : +t - n.now();\n return n.schedule(u, r, {\n index: 0,\n period: a,\n subscriber: e\n });\n });\n }\n\n function u(t) {\n var e = t.index,\n n = t.period,\n r = t.subscriber;\n\n if (r.next(e), !r.closed) {\n if (-1 === n) return r.complete();\n t.index = e + 1, this.schedule(t, n);\n }\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return l;\n });\n var r = n(3),\n i = n(4),\n o = n(22);\n var s = n(57),\n a = n(20);\n var u = n(83),\n c = n(82);\n\n function l(t, e) {\n if (null != t) {\n if (function (t) {\n return t && \"function\" == typeof t[o.a];\n }(t)) return function (t, e) {\n return new r.a(function (n) {\n var r = new i.a();\n return r.add(e.schedule(function () {\n var i = t[o.a]();\n r.add(i.subscribe({\n next: function next(t) {\n r.add(e.schedule(function () {\n return n.next(t);\n }));\n },\n error: function error(t) {\n r.add(e.schedule(function () {\n return n.error(t);\n }));\n },\n complete: function complete() {\n r.add(e.schedule(function () {\n return n.complete();\n }));\n }\n }));\n })), r;\n });\n }(t, e);\n if (Object(u.a)(t)) return function (t, e) {\n return new r.a(function (n) {\n var r = new i.a();\n return r.add(e.schedule(function () {\n return t.then(function (t) {\n r.add(e.schedule(function () {\n n.next(t), r.add(e.schedule(function () {\n return n.complete();\n }));\n }));\n }, function (t) {\n r.add(e.schedule(function () {\n return n.error(t);\n }));\n });\n })), r;\n });\n }(t, e);\n if (Object(c.a)(t)) return Object(s.a)(t, e);\n if (function (t) {\n return t && \"function\" == typeof t[a.a];\n }(t) || \"string\" == typeof t) return function (t, e) {\n if (!t) throw new Error(\"Iterable cannot be null\");\n return new r.a(function (n) {\n var r,\n o = new i.a();\n return o.add(function () {\n r && \"function\" == typeof r.return && r.return();\n }), o.add(e.schedule(function () {\n r = t[a.a](), o.add(e.schedule(function () {\n if (!n.closed) {\n var t, e;\n\n try {\n var i = r.next();\n t = i.value, e = i.done;\n } catch (t) {\n return void n.error(t);\n }\n\n e ? n.complete() : (n.next(t), this.schedule());\n }\n }));\n })), o;\n });\n }(t, e);\n }\n\n throw new TypeError((null !== t && _typeof(t) || t) + \" is not observable\");\n }\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return i;\n });\n\n var r = n(0),\n i = function (t) {\n function e(e, n) {\n var r = t.call(this) || this;\n return r.subject = e, r.subscriber = n, r.closed = !1, r;\n }\n\n return r.a(e, t), e.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.closed = !0;\n var t = this.subject,\n e = t.observers;\n\n if (this.subject = null, e && 0 !== e.length && !t.isStopped && !t.closed) {\n var n = e.indexOf(this.subscriber);\n -1 !== n && e.splice(n, 1);\n }\n }\n }, e;\n }(n(4).a);\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function r(t) {\n return function (e) {\n for (var n = 0, r = t.length; n < r && !e.closed; n++) {\n e.next(t[n]);\n }\n\n e.complete();\n };\n };\n}, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"a\", function () {\n return r;\n });\n\n var r = function r(t) {\n return t && \"number\" == typeof t.length && \"function\" != typeof t;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n return !!t && \"function\" != typeof t.subscribe && \"function\" == typeof t.then;\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n function n() {\n return !n.pred.apply(n.thisArg, arguments);\n }\n\n return n.pred = t, n.thisArg = e, n;\n }\n\n n.d(e, \"a\", function () {\n return r;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CoinbaseWalletProvider = e.CoinbaseWalletSDK = void 0;\n var r = n(102),\n i = n(86);\n var o = n(102);\n Object.defineProperty(e, \"CoinbaseWalletSDK\", {\n enumerable: !0,\n get: function get() {\n return o.CoinbaseWalletSDK;\n }\n });\n var s = n(86);\n Object.defineProperty(e, \"CoinbaseWalletProvider\", {\n enumerable: !0,\n get: function get() {\n return s.CoinbaseWalletProvider;\n }\n }), e.default = r.CoinbaseWalletSDK, \"undefined\" != typeof window && (window.CoinbaseWalletSDK = r.CoinbaseWalletSDK, window.CoinbaseWalletProvider = i.CoinbaseWalletProvider, window.WalletLink = r.CoinbaseWalletSDK, window.WalletLinkProvider = i.CoinbaseWalletProvider);\n}, function (t, e, n) {\n \"use strict\";\n\n (function (t) {\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CoinbaseWalletProvider = void 0;\n var i = r(n(64)),\n o = r(n(66)),\n s = n(87),\n a = n(90),\n u = n(91),\n c = n(108),\n l = n(38),\n h = r(n(152)),\n d = n(168),\n f = n(169),\n p = n(170);\n\n var b = /*#__PURE__*/function (_i$default) {\n _inherits(b, _i$default);\n\n var _super2 = _createSuper(b);\n\n function b(t) {\n var _this;\n\n _classCallCheck(this, b);\n\n var e, n;\n _this = _super2.call(this), _this._filterPolyfill = new d.FilterPolyfill(_assertThisInitialized(_this)), _this._subscriptionManager = new p.SubscriptionManager(_assertThisInitialized(_this)), _this._relay = null, _this._addresses = [], _this.hasMadeFirstChainChangedEmission = !1, _this._send = _this.send.bind(_assertThisInitialized(_this)), _this._sendAsync = _this.sendAsync.bind(_assertThisInitialized(_this)), _this.setProviderInfo = _this.setProviderInfo.bind(_assertThisInitialized(_this)), _this.updateProviderInfo = _this.updateProviderInfo.bind(_assertThisInitialized(_this)), _this.getChainId = _this.getChainId.bind(_assertThisInitialized(_this)), _this.setAppInfo = _this.setAppInfo.bind(_assertThisInitialized(_this)), _this.enable = _this.enable.bind(_assertThisInitialized(_this)), _this.close = _this.close.bind(_assertThisInitialized(_this)), _this.send = _this.send.bind(_assertThisInitialized(_this)), _this.sendAsync = _this.sendAsync.bind(_assertThisInitialized(_this)), _this.request = _this.request.bind(_assertThisInitialized(_this)), _this._setAddresses = _this._setAddresses.bind(_assertThisInitialized(_this)), _this.scanQRCode = _this.scanQRCode.bind(_assertThisInitialized(_this)), _this.genericRequest = _this.genericRequest.bind(_assertThisInitialized(_this)), _this._chainIdFromOpts = t.chainId, _this._jsonRpcUrlFromOpts = t.jsonRpcUrl, _this._overrideIsMetaMask = t.overrideIsMetaMask, _this._relayProvider = t.relayProvider, _this._storage = t.storage, _this._relayEventManager = t.relayEventManager, _this.diagnostic = t.diagnosticLogger, _this.reloadOnDisconnect = !0, _this.isCoinbaseWallet = null === (e = t.overrideIsCoinbaseWallet) || void 0 === e || e, _this.isCoinbaseBrowser = null !== (n = t.overrideIsCoinbaseBrowser) && void 0 !== n && n, _this.qrUrl = t.qrUrl, _this.supportsAddressSwitching = t.supportsAddressSwitching, _this.isLedger = t.isLedger;\n\n var r = _this.getChainId(),\n i = (0, l.prepend0x)(r.toString(16));\n\n _this.emit(\"connect\", {\n chainIdStr: i\n });\n\n var o = _this._storage.getItem(c.LOCAL_STORAGE_ADDRESSES_KEY);\n\n if (o) {\n var _t4 = o.split(\" \");\n\n \"\" !== _t4[0] && (_this._addresses = _t4.map(function (t) {\n return (0, l.ensureAddressString)(t);\n }), _this.emit(\"accountsChanged\", _t4));\n }\n\n _this._subscriptionManager.events.on(\"notification\", function (t) {\n _this.emit(\"message\", {\n type: t.method,\n data: t.params\n });\n }), _this._addresses.length > 0 && _this.initializeRelay(), window.addEventListener(\"message\", function (t) {\n var e;\n\n if (t.origin === location.origin && t.source === window && \"walletLinkMessage\" === t.data.type) {\n if (\"defaultChainChanged\" === t.data.data.action || \"dappChainSwitched\" === t.data.data.action) {\n var _n7 = t.data.data.chainId,\n _r5 = null !== (e = t.data.data.jsonRpcUrl) && void 0 !== e ? e : _this.jsonRpcUrl;\n\n _this.updateProviderInfo(_r5, Number(_n7));\n }\n\n \"addressChanged\" === t.data.data.action && _this._setAddresses([t.data.data.address]);\n }\n });\n return _this;\n }\n\n _createClass(b, [{\n key: \"selectedAddress\",\n get: function get() {\n return this._addresses[0] || void 0;\n }\n }, {\n key: \"networkVersion\",\n get: function get() {\n return this.getChainId().toString(10);\n }\n }, {\n key: \"chainId\",\n get: function get() {\n return (0, l.prepend0x)(this.getChainId().toString(16));\n }\n }, {\n key: \"isWalletLink\",\n get: function get() {\n return !0;\n }\n }, {\n key: \"isMetaMask\",\n get: function get() {\n return this._overrideIsMetaMask;\n }\n }, {\n key: \"host\",\n get: function get() {\n return this.jsonRpcUrl;\n }\n }, {\n key: \"connected\",\n get: function get() {\n return !0;\n }\n }, {\n key: \"isConnected\",\n value: function isConnected() {\n return !0;\n }\n }, {\n key: \"jsonRpcUrl\",\n get: function get() {\n var t;\n return null !== (t = this._storage.getItem(\"DefaultJsonRpcUrl\")) && void 0 !== t ? t : this._jsonRpcUrlFromOpts;\n },\n set: function set(t) {\n this._storage.setItem(\"DefaultJsonRpcUrl\", t);\n }\n }, {\n key: \"disableReloadOnDisconnect\",\n value: function disableReloadOnDisconnect() {\n this.reloadOnDisconnect = !1;\n }\n }, {\n key: \"setProviderInfo\",\n value: function setProviderInfo(t, e) {\n this.isLedger || this.isCoinbaseBrowser || (this._chainIdFromOpts = e, this._jsonRpcUrlFromOpts = t), this.updateProviderInfo(this.jsonRpcUrl, this.getChainId());\n }\n }, {\n key: \"updateProviderInfo\",\n value: function updateProviderInfo(t, e) {\n this.jsonRpcUrl = t;\n var n = this.getChainId();\n\n this._storage.setItem(\"DefaultChainId\", e.toString(10));\n\n !((0, l.ensureIntNumber)(e) !== n) && this.hasMadeFirstChainChangedEmission || (this.emit(\"chainChanged\", this.getChainId()), this.hasMadeFirstChainChangedEmission = !0);\n }\n }, {\n key: \"watchAsset\",\n value: function () {\n var _watchAsset = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(t, e, n, r, i, o) {\n var s;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.initializeRelay();\n\n case 2:\n s = _context.sent;\n _context.next = 5;\n return s.watchAsset(t, e, n, r, i, null == o ? void 0 : o.toString()).promise;\n\n case 5:\n return _context.abrupt(\"return\", !!_context.sent.result);\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function watchAsset(_x, _x2, _x3, _x4, _x5, _x6) {\n return _watchAsset.apply(this, arguments);\n }\n\n return watchAsset;\n }()\n }, {\n key: \"addEthereumChain\",\n value: function () {\n var _addEthereumChain = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(t, e, n, r, i, o) {\n var s, a, u, c, h;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!((0, l.ensureIntNumber)(t) === this.getChainId())) {\n _context2.next = 2;\n break;\n }\n\n return _context2.abrupt(\"return\", !1);\n\n case 2:\n _context2.next = 4;\n return this.initializeRelay();\n\n case 4:\n u = _context2.sent;\n c = u.inlineAddEthereumChain(t.toString());\n _context2.t0 = this._isAuthorized() || c;\n\n if (_context2.t0) {\n _context2.next = 10;\n break;\n }\n\n _context2.next = 10;\n return u.requestEthereumAccounts().promise;\n\n case 10:\n _context2.next = 12;\n return u.addEthereumChain(t.toString(), e, i, n, r, o).promise;\n\n case 12:\n h = _context2.sent;\n return _context2.abrupt(\"return\", (!0 === (null === (s = h.result) || void 0 === s ? void 0 : s.isApproved) && this.updateProviderInfo(e[0], t), !0 === (null === (a = h.result) || void 0 === a ? void 0 : a.isApproved)));\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function addEthereumChain(_x7, _x8, _x9, _x10, _x11, _x12) {\n return _addEthereumChain.apply(this, arguments);\n }\n\n return addEthereumChain;\n }()\n }, {\n key: \"switchEthereumChain\",\n value: function () {\n var _switchEthereumChain = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(t) {\n var e, n, r;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.initializeRelay();\n\n case 2:\n e = _context3.sent;\n _context3.next = 5;\n return e.switchEthereumChain(t.toString(10), this.selectedAddress || void 0).promise;\n\n case 5:\n n = _context3.sent;\n\n if (!n.errorCode) {\n _context3.next = 8;\n break;\n }\n\n throw s.ethErrors.provider.custom({\n code: n.errorCode\n });\n\n case 8:\n r = n.result;\n r.isApproved && r.rpcUrl.length > 0 && this.updateProviderInfo(r.rpcUrl, t);\n\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function switchEthereumChain(_x13) {\n return _switchEthereumChain.apply(this, arguments);\n }\n\n return switchEthereumChain;\n }()\n }, {\n key: \"setAppInfo\",\n value: function setAppInfo(t, e) {\n this.initializeRelay().then(function (n) {\n return n.setAppInfo(t, e);\n });\n }\n }, {\n key: \"enable\",\n value: function () {\n var _enable = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var t;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n null === (t = this.diagnostic) || void 0 === t || t.log(a.EVENTS.ETH_ACCOUNTS_STATE, {\n method: \"provider::enable\",\n addresses_length: this._addresses.length,\n sessionIdHash: this._relay ? u.Session.hash(this._relay.session.id) : void 0\n });\n\n if (!(this._addresses.length > 0)) {\n _context4.next = 5;\n break;\n }\n\n _context4.t0 = _toConsumableArray(this._addresses);\n _context4.next = 8;\n break;\n\n case 5:\n _context4.next = 7;\n return this._send(f.JSONRPCMethod.eth_requestAccounts);\n\n case 7:\n _context4.t0 = _context4.sent;\n\n case 8:\n return _context4.abrupt(\"return\", _context4.t0);\n\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function enable() {\n return _enable.apply(this, arguments);\n }\n\n return enable;\n }()\n }, {\n key: \"close\",\n value: function () {\n var _close = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.initializeRelay();\n\n case 2:\n _context5.sent.resetAndReload();\n\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function close() {\n return _close.apply(this, arguments);\n }\n\n return close;\n }()\n }, {\n key: \"send\",\n value: function send(t, e) {\n var _this2 = this;\n\n if (\"string\" == typeof t) {\n var _n8 = {\n jsonrpc: \"2.0\",\n id: 0,\n method: t,\n params: Array.isArray(e) ? e : void 0 !== e ? [e] : []\n };\n return this._sendRequestAsync(_n8).then(function (t) {\n return t.result;\n });\n }\n\n if (\"function\" == typeof e) {\n var _n9 = t,\n _r6 = e;\n return this._sendAsync(_n9, _r6);\n }\n\n if (Array.isArray(t)) {\n return t.map(function (t) {\n return _this2._sendRequest(t);\n });\n }\n\n var n = t;\n return this._sendRequest(n);\n }\n }, {\n key: \"sendAsync\",\n value: function () {\n var _sendAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(t, e) {\n var _n10, n;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n if (!(\"function\" != typeof e)) {\n _context6.next = 2;\n break;\n }\n\n throw new Error(\"callback is required\");\n\n case 2:\n if (!Array.isArray(t)) {\n _context6.next = 5;\n break;\n }\n\n _n10 = e;\n return _context6.abrupt(\"return\", void this._sendMultipleRequestsAsync(t).then(function (t) {\n return _n10(null, t);\n }).catch(function (t) {\n return _n10(t, null);\n }));\n\n case 5:\n n = e;\n return _context6.abrupt(\"return\", this._sendRequestAsync(t).then(function (t) {\n return n(null, t);\n }).catch(function (t) {\n return n(t, null);\n }));\n\n case 7:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function sendAsync(_x14, _x15) {\n return _sendAsync.apply(this, arguments);\n }\n\n return sendAsync;\n }()\n }, {\n key: \"request\",\n value: function () {\n var _request = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(t) {\n var e, n, r, i;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n if (!(!t || \"object\" != _typeof(t) || Array.isArray(t))) {\n _context7.next = 2;\n break;\n }\n\n throw s.ethErrors.rpc.invalidRequest({\n message: \"Expected a single, non-array, object argument.\",\n data: t\n });\n\n case 2:\n e = t.method, n = t.params;\n\n if (!(\"string\" != typeof e || 0 === e.length)) {\n _context7.next = 5;\n break;\n }\n\n throw s.ethErrors.rpc.invalidRequest({\n message: \"'args.method' must be a non-empty string.\",\n data: t\n });\n\n case 5:\n if (!(void 0 !== n && !Array.isArray(n) && (\"object\" != _typeof(n) || null === n))) {\n _context7.next = 7;\n break;\n }\n\n throw s.ethErrors.rpc.invalidRequest({\n message: \"'args.params' must be an object or array if provided.\",\n data: t\n });\n\n case 7:\n r = void 0 === n ? [] : n, i = this._relayEventManager.makeRequestId();\n _context7.next = 10;\n return this._sendRequestAsync({\n method: e,\n params: r,\n jsonrpc: \"2.0\",\n id: i\n });\n\n case 10:\n return _context7.abrupt(\"return\", _context7.sent.result);\n\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function request(_x16) {\n return _request.apply(this, arguments);\n }\n\n return request;\n }()\n }, {\n key: \"scanQRCode\",\n value: function () {\n var _scanQRCode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.initializeRelay();\n\n case 2:\n e = _context8.sent;\n _context8.next = 5;\n return e.scanQRCode((0, l.ensureRegExpString)(t)).promise;\n\n case 5:\n n = _context8.sent;\n\n if (!(\"string\" != typeof n.result)) {\n _context8.next = 8;\n break;\n }\n\n throw new Error(\"result was not a string\");\n\n case 8:\n return _context8.abrupt(\"return\", n.result);\n\n case 9:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function scanQRCode(_x17) {\n return _scanQRCode.apply(this, arguments);\n }\n\n return scanQRCode;\n }()\n }, {\n key: \"genericRequest\",\n value: function () {\n var _genericRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(t, e) {\n var n, r;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.initializeRelay();\n\n case 2:\n n = _context9.sent;\n _context9.next = 5;\n return n.genericRequest(t, e).promise;\n\n case 5:\n r = _context9.sent;\n\n if (!(\"string\" != typeof r.result)) {\n _context9.next = 8;\n break;\n }\n\n throw new Error(\"result was not a string\");\n\n case 8:\n return _context9.abrupt(\"return\", r.result);\n\n case 9:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function genericRequest(_x18, _x19) {\n return _genericRequest.apply(this, arguments);\n }\n\n return genericRequest;\n }()\n }, {\n key: \"selectProvider\",\n value: function () {\n var _selectProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this.initializeRelay();\n\n case 2:\n e = _context10.sent;\n _context10.next = 5;\n return e.selectProvider(t).promise;\n\n case 5:\n n = _context10.sent;\n\n if (!(\"string\" != typeof n.result)) {\n _context10.next = 8;\n break;\n }\n\n throw new Error(\"result was not a string\");\n\n case 8:\n return _context10.abrupt(\"return\", n.result);\n\n case 9:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function selectProvider(_x20) {\n return _selectProvider.apply(this, arguments);\n }\n\n return selectProvider;\n }()\n }, {\n key: \"supportsSubscriptions\",\n value: function supportsSubscriptions() {\n return !1;\n }\n }, {\n key: \"subscribe\",\n value: function subscribe() {\n throw new Error(\"Subscriptions are not supported\");\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe() {\n throw new Error(\"Subscriptions are not supported\");\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n return !0;\n }\n }, {\n key: \"_sendRequest\",\n value: function _sendRequest(t) {\n var e = {\n jsonrpc: \"2.0\",\n id: t.id\n },\n n = t.method;\n if (e.result = this._handleSynchronousMethods(t), void 0 === e.result) throw new Error(\"Coinbase Wallet does not support calling \".concat(n, \" synchronously without a callback. Please provide a callback parameter to call \").concat(n, \" asynchronously.\"));\n return e;\n }\n }, {\n key: \"_setAddresses\",\n value: function _setAddresses(t, e) {\n if (!Array.isArray(t)) throw new Error(\"addresses is not an array\");\n var n = t.map(function (t) {\n return (0, l.ensureAddressString)(t);\n });\n JSON.stringify(n) !== JSON.stringify(this._addresses) && (this._addresses.length > 0 && !1 === this.supportsAddressSwitching && !e || (this._addresses = n, this.emit(\"accountsChanged\", this._addresses), this._storage.setItem(c.LOCAL_STORAGE_ADDRESSES_KEY, n.join(\" \"))));\n }\n }, {\n key: \"_sendRequestAsync\",\n value: function _sendRequestAsync(t) {\n var _this3 = this;\n\n return new Promise(function (e, n) {\n try {\n var _r7 = _this3._handleSynchronousMethods(t);\n\n if (void 0 !== _r7) return e({\n jsonrpc: \"2.0\",\n id: t.id,\n result: _r7\n });\n\n var _i2 = _this3._handleAsynchronousFilterMethods(t);\n\n if (void 0 !== _i2) return void _i2.then(function (n) {\n return e(Object.assign(Object.assign({}, n), {\n id: t.id\n }));\n }).catch(function (t) {\n return n(t);\n });\n\n var _o2 = _this3._handleSubscriptionMethods(t);\n\n if (void 0 !== _o2) return void _o2.then(function (n) {\n return e({\n jsonrpc: \"2.0\",\n id: t.id,\n result: n.result\n });\n }).catch(function (t) {\n return n(t);\n });\n } catch (t) {\n return n(t);\n }\n\n _this3._handleAsynchronousMethods(t).then(function (n) {\n return n && e(Object.assign(Object.assign({}, n), {\n id: t.id\n }));\n }).catch(function (t) {\n return n(t);\n });\n });\n }\n }, {\n key: \"_sendMultipleRequestsAsync\",\n value: function _sendMultipleRequestsAsync(t) {\n var _this4 = this;\n\n return Promise.all(t.map(function (t) {\n return _this4._sendRequestAsync(t);\n }));\n }\n }, {\n key: \"_handleSynchronousMethods\",\n value: function _handleSynchronousMethods(t) {\n var e = t.method,\n n = t.params || [];\n\n switch (e) {\n case f.JSONRPCMethod.eth_accounts:\n return this._eth_accounts();\n\n case f.JSONRPCMethod.eth_coinbase:\n return this._eth_coinbase();\n\n case f.JSONRPCMethod.eth_uninstallFilter:\n return this._eth_uninstallFilter(n);\n\n case f.JSONRPCMethod.net_version:\n return this._net_version();\n\n case f.JSONRPCMethod.eth_chainId:\n return this._eth_chainId();\n\n default:\n return;\n }\n }\n }, {\n key: \"_handleAsynchronousMethods\",\n value: function () {\n var _handleAsynchronousMethods2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n e = t.method, n = t.params || [];\n _context11.t0 = e;\n _context11.next = _context11.t0 === f.JSONRPCMethod.eth_requestAccounts ? 4 : _context11.t0 === f.JSONRPCMethod.eth_sign ? 5 : _context11.t0 === f.JSONRPCMethod.eth_ecRecover ? 6 : _context11.t0 === f.JSONRPCMethod.personal_sign ? 7 : _context11.t0 === f.JSONRPCMethod.personal_ecRecover ? 8 : _context11.t0 === f.JSONRPCMethod.eth_signTransaction ? 9 : _context11.t0 === f.JSONRPCMethod.eth_sendRawTransaction ? 10 : _context11.t0 === f.JSONRPCMethod.eth_sendTransaction ? 11 : _context11.t0 === f.JSONRPCMethod.eth_signTypedData_v1 ? 12 : _context11.t0 === f.JSONRPCMethod.eth_signTypedData_v2 ? 13 : _context11.t0 === f.JSONRPCMethod.eth_signTypedData_v3 ? 14 : _context11.t0 === f.JSONRPCMethod.eth_signTypedData_v4 ? 15 : _context11.t0 === f.JSONRPCMethod.eth_signTypedData ? 15 : _context11.t0 === f.JSONRPCMethod.cbWallet_arbitrary ? 16 : _context11.t0 === f.JSONRPCMethod.wallet_addEthereumChain ? 17 : _context11.t0 === f.JSONRPCMethod.wallet_switchEthereumChain ? 18 : _context11.t0 === f.JSONRPCMethod.wallet_watchAsset ? 19 : 20;\n break;\n\n case 4:\n return _context11.abrupt(\"return\", this._eth_requestAccounts());\n\n case 5:\n return _context11.abrupt(\"return\", this._eth_sign(n));\n\n case 6:\n return _context11.abrupt(\"return\", this._eth_ecRecover(n));\n\n case 7:\n return _context11.abrupt(\"return\", this._personal_sign(n));\n\n case 8:\n return _context11.abrupt(\"return\", this._personal_ecRecover(n));\n\n case 9:\n return _context11.abrupt(\"return\", this._eth_signTransaction(n));\n\n case 10:\n return _context11.abrupt(\"return\", this._eth_sendRawTransaction(n));\n\n case 11:\n return _context11.abrupt(\"return\", this._eth_sendTransaction(n));\n\n case 12:\n return _context11.abrupt(\"return\", this._eth_signTypedData_v1(n));\n\n case 13:\n return _context11.abrupt(\"return\", this._throwUnsupportedMethodError());\n\n case 14:\n return _context11.abrupt(\"return\", this._eth_signTypedData_v3(n));\n\n case 15:\n return _context11.abrupt(\"return\", this._eth_signTypedData_v4(n));\n\n case 16:\n return _context11.abrupt(\"return\", this._cbwallet_arbitrary(n));\n\n case 17:\n return _context11.abrupt(\"return\", this._wallet_addEthereumChain(n));\n\n case 18:\n return _context11.abrupt(\"return\", this._wallet_switchEthereumChain(n));\n\n case 19:\n return _context11.abrupt(\"return\", this._wallet_watchAsset(n));\n\n case 20:\n _context11.next = 22;\n return this.initializeRelay();\n\n case 22:\n return _context11.abrupt(\"return\", _context11.sent.makeEthereumJSONRPCRequest(t, this.jsonRpcUrl));\n\n case 23:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function _handleAsynchronousMethods(_x21) {\n return _handleAsynchronousMethods2.apply(this, arguments);\n }\n\n return _handleAsynchronousMethods;\n }()\n }, {\n key: \"_handleAsynchronousFilterMethods\",\n value: function _handleAsynchronousFilterMethods(t) {\n var e = t.method,\n n = t.params || [];\n\n switch (e) {\n case f.JSONRPCMethod.eth_newFilter:\n return this._eth_newFilter(n);\n\n case f.JSONRPCMethod.eth_newBlockFilter:\n return this._eth_newBlockFilter();\n\n case f.JSONRPCMethod.eth_newPendingTransactionFilter:\n return this._eth_newPendingTransactionFilter();\n\n case f.JSONRPCMethod.eth_getFilterChanges:\n return this._eth_getFilterChanges(n);\n\n case f.JSONRPCMethod.eth_getFilterLogs:\n return this._eth_getFilterLogs(n);\n }\n }\n }, {\n key: \"_handleSubscriptionMethods\",\n value: function _handleSubscriptionMethods(t) {\n switch (t.method) {\n case f.JSONRPCMethod.eth_subscribe:\n case f.JSONRPCMethod.eth_unsubscribe:\n return this._subscriptionManager.handleRequest(t);\n }\n }\n }, {\n key: \"_isKnownAddress\",\n value: function _isKnownAddress(t) {\n try {\n var _e5 = (0, l.ensureAddressString)(t);\n\n return this._addresses.map(function (t) {\n return (0, l.ensureAddressString)(t);\n }).includes(_e5);\n } catch (t) {}\n\n return !1;\n }\n }, {\n key: \"_ensureKnownAddress\",\n value: function _ensureKnownAddress(t) {\n var e;\n if (!this._isKnownAddress(t)) throw null === (e = this.diagnostic) || void 0 === e || e.log(a.EVENTS.UNKNOWN_ADDRESS_ENCOUNTERED), new Error(\"Unknown Ethereum address\");\n }\n }, {\n key: \"_prepareTransactionParams\",\n value: function _prepareTransactionParams(e) {\n var n = e.from ? (0, l.ensureAddressString)(e.from) : this.selectedAddress;\n if (!n) throw new Error(\"Ethereum address is unavailable\");\n\n this._ensureKnownAddress(n);\n\n return {\n fromAddress: n,\n toAddress: e.to ? (0, l.ensureAddressString)(e.to) : null,\n weiValue: null != e.value ? (0, l.ensureBN)(e.value) : new o.default(0),\n data: e.data ? (0, l.ensureBuffer)(e.data) : t.alloc(0),\n nonce: null != e.nonce ? (0, l.ensureIntNumber)(e.nonce) : null,\n gasPriceInWei: null != e.gasPrice ? (0, l.ensureBN)(e.gasPrice) : null,\n maxFeePerGas: null != e.maxFeePerGas ? (0, l.ensureBN)(e.maxFeePerGas) : null,\n maxPriorityFeePerGas: null != e.maxPriorityFeePerGas ? (0, l.ensureBN)(e.maxPriorityFeePerGas) : null,\n gasLimit: null != e.gas ? (0, l.ensureBN)(e.gas) : null,\n chainId: this.getChainId()\n };\n }\n }, {\n key: \"_isAuthorized\",\n value: function _isAuthorized() {\n return this._addresses.length > 0;\n }\n }, {\n key: \"_requireAuthorization\",\n value: function _requireAuthorization() {\n if (!this._isAuthorized()) throw s.ethErrors.provider.unauthorized({});\n }\n }, {\n key: \"_throwUnsupportedMethodError\",\n value: function _throwUnsupportedMethodError() {\n throw s.ethErrors.provider.unsupportedMethod({});\n }\n }, {\n key: \"_signEthereumMessage\",\n value: function () {\n var _signEthereumMessage2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(t, e, n, r) {\n var _i3;\n\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n this._ensureKnownAddress(e);\n\n _context12.prev = 1;\n _context12.next = 4;\n return this.initializeRelay();\n\n case 4:\n _i3 = _context12.sent;\n _context12.next = 7;\n return _i3.signEthereumMessage(t, e, n, r).promise;\n\n case 7:\n _context12.t0 = _context12.sent.result;\n return _context12.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context12.t0\n });\n\n case 11:\n _context12.prev = 11;\n _context12.t1 = _context12[\"catch\"](1);\n\n if (!(\"string\" == typeof _context12.t1.message && _context12.t1.message.match(/(denied|rejected)/i))) {\n _context12.next = 15;\n break;\n }\n\n throw s.ethErrors.provider.userRejectedRequest(\"User denied message signature\");\n\n case 15:\n throw _context12.t1;\n\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this, [[1, 11]]);\n }));\n\n function _signEthereumMessage(_x22, _x23, _x24, _x25) {\n return _signEthereumMessage2.apply(this, arguments);\n }\n\n return _signEthereumMessage;\n }()\n }, {\n key: \"_ethereumAddressFromSignedMessage\",\n value: function () {\n var _ethereumAddressFromSignedMessage2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(t, e, n) {\n var r;\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return this.initializeRelay();\n\n case 2:\n r = _context13.sent;\n _context13.next = 5;\n return r.ethereumAddressFromSignedMessage(t, e, n).promise;\n\n case 5:\n _context13.t0 = _context13.sent.result;\n return _context13.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context13.t0\n });\n\n case 7:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function _ethereumAddressFromSignedMessage(_x26, _x27, _x28) {\n return _ethereumAddressFromSignedMessage2.apply(this, arguments);\n }\n\n return _ethereumAddressFromSignedMessage;\n }()\n }, {\n key: \"_eth_accounts\",\n value: function _eth_accounts() {\n return _toConsumableArray(this._addresses);\n }\n }, {\n key: \"_eth_coinbase\",\n value: function _eth_coinbase() {\n return this.selectedAddress || null;\n }\n }, {\n key: \"_net_version\",\n value: function _net_version() {\n return this.getChainId().toString(10);\n }\n }, {\n key: \"_eth_chainId\",\n value: function _eth_chainId() {\n return (0, l.hexStringFromIntNumber)(this.getChainId());\n }\n }, {\n key: \"getChainId\",\n value: function getChainId() {\n var t = this._storage.getItem(\"DefaultChainId\");\n\n if (!t) return (0, l.ensureIntNumber)(this._chainIdFromOpts);\n var e = parseInt(t, 10);\n return (0, l.ensureIntNumber)(e);\n }\n }, {\n key: \"_eth_requestAccounts\",\n value: function () {\n var _eth_requestAccounts2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14() {\n var t, e, _t5;\n\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n if (!(null === (t = this.diagnostic) || void 0 === t || t.log(a.EVENTS.ETH_ACCOUNTS_STATE, {\n method: \"provider::_eth_requestAccounts\",\n addresses_length: this._addresses.length,\n sessionIdHash: this._relay ? u.Session.hash(this._relay.session.id) : void 0\n }), this._addresses.length > 0)) {\n _context14.next = 2;\n break;\n }\n\n return _context14.abrupt(\"return\", Promise.resolve({\n jsonrpc: \"2.0\",\n id: 0,\n result: this._addresses\n }));\n\n case 2:\n _context14.prev = 2;\n _context14.next = 5;\n return this.initializeRelay();\n\n case 5:\n _t5 = _context14.sent;\n _context14.next = 8;\n return _t5.requestEthereumAccounts().promise;\n\n case 8:\n e = _context14.sent;\n _context14.next = 16;\n break;\n\n case 11:\n _context14.prev = 11;\n _context14.t0 = _context14[\"catch\"](2);\n\n if (!(\"string\" == typeof _context14.t0.message && _context14.t0.message.match(/(denied|rejected)/i))) {\n _context14.next = 15;\n break;\n }\n\n throw s.ethErrors.provider.userRejectedRequest(\"User denied account authorization\");\n\n case 15:\n throw _context14.t0;\n\n case 16:\n if (e.result) {\n _context14.next = 18;\n break;\n }\n\n throw new Error(\"accounts received is empty\");\n\n case 18:\n this._setAddresses(e.result);\n\n _context14.t1 = this.isLedger || this.isCoinbaseBrowser;\n\n if (_context14.t1) {\n _context14.next = 23;\n break;\n }\n\n _context14.next = 23;\n return this.switchEthereumChain(this.getChainId());\n\n case 23:\n return _context14.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: this._addresses\n });\n\n case 24:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this, [[2, 11]]);\n }));\n\n function _eth_requestAccounts() {\n return _eth_requestAccounts2.apply(this, arguments);\n }\n\n return _eth_requestAccounts;\n }()\n }, {\n key: \"_eth_sign\",\n value: function _eth_sign(t) {\n this._requireAuthorization();\n\n var e = (0, l.ensureAddressString)(t[0]),\n n = (0, l.ensureBuffer)(t[1]);\n return this._signEthereumMessage(n, e, !1);\n }\n }, {\n key: \"_eth_ecRecover\",\n value: function _eth_ecRecover(t) {\n var e = (0, l.ensureBuffer)(t[0]),\n n = (0, l.ensureBuffer)(t[1]);\n return this._ethereumAddressFromSignedMessage(e, n, !1);\n }\n }, {\n key: \"_personal_sign\",\n value: function _personal_sign(t) {\n this._requireAuthorization();\n\n var e = (0, l.ensureBuffer)(t[0]),\n n = (0, l.ensureAddressString)(t[1]);\n return this._signEthereumMessage(e, n, !0);\n }\n }, {\n key: \"_personal_ecRecover\",\n value: function _personal_ecRecover(t) {\n var e = (0, l.ensureBuffer)(t[0]),\n n = (0, l.ensureBuffer)(t[1]);\n return this._ethereumAddressFromSignedMessage(e, n, !0);\n }\n }, {\n key: \"_eth_signTransaction\",\n value: function () {\n var _eth_signTransaction2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(t) {\n var e, _t6;\n\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n this._requireAuthorization();\n\n e = this._prepareTransactionParams(t[0] || {});\n _context15.prev = 2;\n _context15.next = 5;\n return this.initializeRelay();\n\n case 5:\n _t6 = _context15.sent;\n _context15.next = 8;\n return _t6.signEthereumTransaction(e).promise;\n\n case 8:\n _context15.t0 = _context15.sent.result;\n return _context15.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context15.t0\n });\n\n case 12:\n _context15.prev = 12;\n _context15.t1 = _context15[\"catch\"](2);\n\n if (!(\"string\" == typeof _context15.t1.message && _context15.t1.message.match(/(denied|rejected)/i))) {\n _context15.next = 16;\n break;\n }\n\n throw s.ethErrors.provider.userRejectedRequest(\"User denied transaction signature\");\n\n case 16:\n throw _context15.t1;\n\n case 17:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this, [[2, 12]]);\n }));\n\n function _eth_signTransaction(_x29) {\n return _eth_signTransaction2.apply(this, arguments);\n }\n\n return _eth_signTransaction;\n }()\n }, {\n key: \"_eth_sendRawTransaction\",\n value: function () {\n var _eth_sendRawTransaction2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n e = (0, l.ensureBuffer)(t[0]);\n _context16.next = 3;\n return this.initializeRelay();\n\n case 3:\n n = _context16.sent;\n _context16.next = 6;\n return n.submitEthereumTransaction(e, this.getChainId()).promise;\n\n case 6:\n _context16.t0 = _context16.sent.result;\n return _context16.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context16.t0\n });\n\n case 8:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function _eth_sendRawTransaction(_x30) {\n return _eth_sendRawTransaction2.apply(this, arguments);\n }\n\n return _eth_sendRawTransaction;\n }()\n }, {\n key: \"_eth_sendTransaction\",\n value: function () {\n var _eth_sendTransaction2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(t) {\n var e, _t7;\n\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n this._requireAuthorization();\n\n e = this._prepareTransactionParams(t[0] || {});\n _context17.prev = 2;\n _context17.next = 5;\n return this.initializeRelay();\n\n case 5:\n _t7 = _context17.sent;\n _context17.next = 8;\n return _t7.signAndSubmitEthereumTransaction(e).promise;\n\n case 8:\n _context17.t0 = _context17.sent.result;\n return _context17.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context17.t0\n });\n\n case 12:\n _context17.prev = 12;\n _context17.t1 = _context17[\"catch\"](2);\n\n if (!(\"string\" == typeof _context17.t1.message && _context17.t1.message.match(/(denied|rejected)/i))) {\n _context17.next = 16;\n break;\n }\n\n throw s.ethErrors.provider.userRejectedRequest(\"User denied transaction signature\");\n\n case 16:\n throw _context17.t1;\n\n case 17:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this, [[2, 12]]);\n }));\n\n function _eth_sendTransaction(_x31) {\n return _eth_sendTransaction2.apply(this, arguments);\n }\n\n return _eth_sendTransaction;\n }()\n }, {\n key: \"_eth_signTypedData_v1\",\n value: function () {\n var _eth_signTypedData_v = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(t) {\n var e, n, r, i;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n this._requireAuthorization();\n\n e = (0, l.ensureParsedJSONObject)(t[0]), n = (0, l.ensureAddressString)(t[1]);\n\n this._ensureKnownAddress(n);\n\n r = h.default.hashForSignTypedDataLegacy({\n data: e\n }), i = JSON.stringify(e, null, 2);\n return _context18.abrupt(\"return\", this._signEthereumMessage(r, n, !1, i));\n\n case 5:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function _eth_signTypedData_v1(_x32) {\n return _eth_signTypedData_v.apply(this, arguments);\n }\n\n return _eth_signTypedData_v1;\n }()\n }, {\n key: \"_eth_signTypedData_v3\",\n value: function () {\n var _eth_signTypedData_v2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(t) {\n var e, n, r, i;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n this._requireAuthorization();\n\n e = (0, l.ensureAddressString)(t[0]), n = (0, l.ensureParsedJSONObject)(t[1]);\n\n this._ensureKnownAddress(e);\n\n r = h.default.hashForSignTypedData_v3({\n data: n\n }), i = JSON.stringify(n, null, 2);\n return _context19.abrupt(\"return\", this._signEthereumMessage(r, e, !1, i));\n\n case 5:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, this);\n }));\n\n function _eth_signTypedData_v3(_x33) {\n return _eth_signTypedData_v2.apply(this, arguments);\n }\n\n return _eth_signTypedData_v3;\n }()\n }, {\n key: \"_eth_signTypedData_v4\",\n value: function () {\n var _eth_signTypedData_v5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(t) {\n var e, n, r, i;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n this._requireAuthorization();\n\n e = (0, l.ensureAddressString)(t[0]), n = (0, l.ensureParsedJSONObject)(t[1]);\n\n this._ensureKnownAddress(e);\n\n r = h.default.hashForSignTypedData_v4({\n data: n\n }), i = JSON.stringify(n, null, 2);\n return _context20.abrupt(\"return\", this._signEthereumMessage(r, e, !1, i));\n\n case 5:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, this);\n }));\n\n function _eth_signTypedData_v4(_x34) {\n return _eth_signTypedData_v5.apply(this, arguments);\n }\n\n return _eth_signTypedData_v4;\n }()\n }, {\n key: \"_cbwallet_arbitrary\",\n value: function () {\n var _cbwallet_arbitrary2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n e = t[0], n = t[1];\n\n if (!(\"string\" != typeof n)) {\n _context21.next = 3;\n break;\n }\n\n throw new Error(\"parameter must be a string\");\n\n case 3:\n if (!(\"object\" != _typeof(e) || null === e)) {\n _context21.next = 5;\n break;\n }\n\n throw new Error(\"parameter must be an object\");\n\n case 5:\n _context21.next = 7;\n return this.genericRequest(e, n);\n\n case 7:\n _context21.t0 = _context21.sent;\n return _context21.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context21.t0\n });\n\n case 9:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, this);\n }));\n\n function _cbwallet_arbitrary(_x35) {\n return _cbwallet_arbitrary2.apply(this, arguments);\n }\n\n return _cbwallet_arbitrary;\n }()\n }, {\n key: \"_wallet_addEthereumChain\",\n value: function () {\n var _wallet_addEthereumChain2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(t) {\n var e, n, r, i, o, a;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n o = t[0];\n\n if (!(0 === (null === (e = o.rpcUrls) || void 0 === e ? void 0 : e.length))) {\n _context22.next = 3;\n break;\n }\n\n return _context22.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n error: {\n code: 2,\n message: \"please pass in at least 1 rpcUrl\"\n }\n });\n\n case 3:\n if (!(!o.chainName || \"\" === o.chainName.trim())) {\n _context22.next = 5;\n break;\n }\n\n throw s.ethErrors.provider.custom({\n code: 0,\n message: \"chainName is a required field\"\n });\n\n case 5:\n if (o.nativeCurrency) {\n _context22.next = 7;\n break;\n }\n\n throw s.ethErrors.provider.custom({\n code: 0,\n message: \"nativeCurrency is a required field\"\n });\n\n case 7:\n a = parseInt(o.chainId, 16);\n _context22.next = 10;\n return this.addEthereumChain(a, null !== (n = o.rpcUrls) && void 0 !== n ? n : [], null !== (r = o.blockExplorerUrls) && void 0 !== r ? r : [], o.chainName, null !== (i = o.iconUrls) && void 0 !== i ? i : [], o.nativeCurrency);\n\n case 10:\n if (!_context22.sent) {\n _context22.next = 14;\n break;\n }\n\n _context22.t0 = {\n jsonrpc: \"2.0\",\n id: 0,\n result: null\n };\n _context22.next = 15;\n break;\n\n case 14:\n _context22.t0 = {\n jsonrpc: \"2.0\",\n id: 0,\n error: {\n code: 2,\n message: \"unable to add ethereum chain\"\n }\n };\n\n case 15:\n return _context22.abrupt(\"return\", _context22.t0);\n\n case 16:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this);\n }));\n\n function _wallet_addEthereumChain(_x36) {\n return _wallet_addEthereumChain2.apply(this, arguments);\n }\n\n return _wallet_addEthereumChain;\n }()\n }, {\n key: \"_wallet_switchEthereumChain\",\n value: function () {\n var _wallet_switchEthereumChain2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(t) {\n var e;\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n e = t[0];\n _context23.next = 3;\n return this.switchEthereumChain(parseInt(e.chainId, 16));\n\n case 3:\n return _context23.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: null\n });\n\n case 4:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this);\n }));\n\n function _wallet_switchEthereumChain(_x37) {\n return _wallet_switchEthereumChain2.apply(this, arguments);\n }\n\n return _wallet_switchEthereumChain;\n }()\n }, {\n key: \"_wallet_watchAsset\",\n value: function () {\n var _wallet_watchAsset2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(t) {\n var e, n, _e$options, r, i, o, a;\n\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n e = Array.isArray(t) ? t[0] : t;\n\n if (e.type) {\n _context24.next = 3;\n break;\n }\n\n throw s.ethErrors.rpc.invalidParams({\n message: \"Type is required\"\n });\n\n case 3:\n if (!(\"ERC20\" !== (null == e ? void 0 : e.type))) {\n _context24.next = 5;\n break;\n }\n\n throw s.ethErrors.rpc.invalidParams({\n message: \"Asset of type '\".concat(e.type, \"' is not supported\")\n });\n\n case 5:\n if (null == e ? void 0 : e.options) {\n _context24.next = 7;\n break;\n }\n\n throw s.ethErrors.rpc.invalidParams({\n message: \"Options are required\"\n });\n\n case 7:\n if (null == e ? void 0 : e.options.address) {\n _context24.next = 9;\n break;\n }\n\n throw s.ethErrors.rpc.invalidParams({\n message: \"Address is required\"\n });\n\n case 9:\n n = this.getChainId(), _e$options = e.options, r = _e$options.address, i = _e$options.symbol, o = _e$options.image, a = _e$options.decimals;\n _context24.next = 12;\n return this.watchAsset(e.type, r, i, a, o, n);\n\n case 12:\n _context24.t0 = _context24.sent;\n return _context24.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context24.t0\n });\n\n case 14:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, this);\n }));\n\n function _wallet_watchAsset(_x38) {\n return _wallet_watchAsset2.apply(this, arguments);\n }\n\n return _wallet_watchAsset;\n }()\n }, {\n key: \"_eth_uninstallFilter\",\n value: function _eth_uninstallFilter(t) {\n var e = (0, l.ensureHexString)(t[0]);\n return this._filterPolyfill.uninstallFilter(e);\n }\n }, {\n key: \"_eth_newFilter\",\n value: function () {\n var _eth_newFilter2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(t) {\n var e;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n e = t[0];\n _context25.next = 3;\n return this._filterPolyfill.newFilter(e);\n\n case 3:\n _context25.t0 = _context25.sent;\n return _context25.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context25.t0\n });\n\n case 5:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25, this);\n }));\n\n function _eth_newFilter(_x39) {\n return _eth_newFilter2.apply(this, arguments);\n }\n\n return _eth_newFilter;\n }()\n }, {\n key: \"_eth_newBlockFilter\",\n value: function () {\n var _eth_newBlockFilter2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26() {\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n _context26.next = 2;\n return this._filterPolyfill.newBlockFilter();\n\n case 2:\n _context26.t0 = _context26.sent;\n return _context26.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context26.t0\n });\n\n case 4:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26, this);\n }));\n\n function _eth_newBlockFilter() {\n return _eth_newBlockFilter2.apply(this, arguments);\n }\n\n return _eth_newBlockFilter;\n }()\n }, {\n key: \"_eth_newPendingTransactionFilter\",\n value: function () {\n var _eth_newPendingTransactionFilter2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27() {\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n _context27.next = 2;\n return this._filterPolyfill.newPendingTransactionFilter();\n\n case 2:\n _context27.t0 = _context27.sent;\n return _context27.abrupt(\"return\", {\n jsonrpc: \"2.0\",\n id: 0,\n result: _context27.t0\n });\n\n case 4:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27, this);\n }));\n\n function _eth_newPendingTransactionFilter() {\n return _eth_newPendingTransactionFilter2.apply(this, arguments);\n }\n\n return _eth_newPendingTransactionFilter;\n }()\n }, {\n key: \"_eth_getFilterChanges\",\n value: function _eth_getFilterChanges(t) {\n var e = (0, l.ensureHexString)(t[0]);\n return this._filterPolyfill.getFilterChanges(e);\n }\n }, {\n key: \"_eth_getFilterLogs\",\n value: function _eth_getFilterLogs(t) {\n var e = (0, l.ensureHexString)(t[0]);\n return this._filterPolyfill.getFilterLogs(e);\n }\n }, {\n key: \"initializeRelay\",\n value: function initializeRelay() {\n var _this5 = this;\n\n return this._relay ? Promise.resolve(this._relay) : this._relayProvider().then(function (t) {\n return t.setAccountsCallback(function (t, e) {\n return _this5._setAddresses(t, e);\n }), t.setChainCallback(function (t, e) {\n _this5.updateProviderInfo(e, parseInt(t, 10));\n }), t.setDappDefaultChainCallback(_this5._chainIdFromOpts), _this5._relay = t, t;\n });\n }\n }]);\n\n return b;\n }(i.default);\n\n e.CoinbaseWalletProvider = b;\n }).call(this, n(19).Buffer);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.getMessageFromCode = e.serializeError = e.EthereumProviderError = e.EthereumRpcError = e.ethErrors = e.errorCodes = void 0;\n var r = n(88);\n Object.defineProperty(e, \"EthereumRpcError\", {\n enumerable: !0,\n get: function get() {\n return r.EthereumRpcError;\n }\n }), Object.defineProperty(e, \"EthereumProviderError\", {\n enumerable: !0,\n get: function get() {\n return r.EthereumProviderError;\n }\n });\n var i = n(104);\n Object.defineProperty(e, \"serializeError\", {\n enumerable: !0,\n get: function get() {\n return i.serializeError;\n }\n }), Object.defineProperty(e, \"getMessageFromCode\", {\n enumerable: !0,\n get: function get() {\n return i.getMessageFromCode;\n }\n });\n var o = n(133);\n Object.defineProperty(e, \"ethErrors\", {\n enumerable: !0,\n get: function get() {\n return o.ethErrors;\n }\n });\n var s = n(89);\n Object.defineProperty(e, \"errorCodes\", {\n enumerable: !0,\n get: function get() {\n return s.errorCodes;\n }\n });\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.EthereumProviderError = e.EthereumRpcError = void 0;\n var r = n(103);\n\n var i = /*#__PURE__*/function (_Error) {\n _inherits(i, _Error);\n\n var _super3 = _createSuper(i);\n\n function i(t, e, n) {\n var _this6;\n\n _classCallCheck(this, i);\n\n if (!Number.isInteger(t)) throw new Error('\"code\" must be an integer.');\n if (!e || \"string\" != typeof e) throw new Error('\"message\" must be a nonempty string.');\n _this6 = _super3.call(this, e), _this6.code = t, void 0 !== n && (_this6.data = n);\n return _this6;\n }\n\n _createClass(i, [{\n key: \"serialize\",\n value: function serialize() {\n var t = {\n code: this.code,\n message: this.message\n };\n return void 0 !== this.data && (t.data = this.data), this.stack && (t.stack = this.stack), t;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return r.default(this.serialize(), o, 2);\n }\n }]);\n\n return i;\n }( /*#__PURE__*/_wrapNativeSuper(Error));\n\n e.EthereumRpcError = i;\n\n function o(t, e) {\n if (\"[Circular]\" !== e) return e;\n }\n\n e.EthereumProviderError = /*#__PURE__*/function (_i4) {\n _inherits(_class, _i4);\n\n var _super4 = _createSuper(_class);\n\n function _class(t, e, n) {\n _classCallCheck(this, _class);\n\n if (!function (t) {\n return Number.isInteger(t) && t >= 1e3 && t <= 4999;\n }(t)) throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n return _super4.call(this, t, e, n);\n }\n\n return _createClass(_class);\n }(i);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.errorValues = e.errorCodes = void 0, e.errorCodes = {\n rpc: {\n invalidInput: -32e3,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901\n }\n }, e.errorValues = {\n \"-32700\": {\n standard: \"JSON RPC 2.0\",\n message: \"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"\n },\n \"-32600\": {\n standard: \"JSON RPC 2.0\",\n message: \"The JSON sent is not a valid Request object.\"\n },\n \"-32601\": {\n standard: \"JSON RPC 2.0\",\n message: \"The method does not exist / is not available.\"\n },\n \"-32602\": {\n standard: \"JSON RPC 2.0\",\n message: \"Invalid method parameter(s).\"\n },\n \"-32603\": {\n standard: \"JSON RPC 2.0\",\n message: \"Internal JSON-RPC error.\"\n },\n \"-32000\": {\n standard: \"EIP-1474\",\n message: \"Invalid input.\"\n },\n \"-32001\": {\n standard: \"EIP-1474\",\n message: \"Resource not found.\"\n },\n \"-32002\": {\n standard: \"EIP-1474\",\n message: \"Resource unavailable.\"\n },\n \"-32003\": {\n standard: \"EIP-1474\",\n message: \"Transaction rejected.\"\n },\n \"-32004\": {\n standard: \"EIP-1474\",\n message: \"Method not supported.\"\n },\n \"-32005\": {\n standard: \"EIP-1474\",\n message: \"Request limit exceeded.\"\n },\n 4001: {\n standard: \"EIP-1193\",\n message: \"User rejected the request.\"\n },\n 4100: {\n standard: \"EIP-1193\",\n message: \"The requested account and/or method has not been authorized by the user.\"\n },\n 4200: {\n standard: \"EIP-1193\",\n message: \"The requested method is not supported by this Ethereum provider.\"\n },\n 4900: {\n standard: \"EIP-1193\",\n message: \"The provider is disconnected from all chains.\"\n },\n 4901: {\n standard: \"EIP-1193\",\n message: \"The provider is disconnected from the specified chain.\"\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.EVENTS = void 0, e.EVENTS = {\n STARTED_CONNECTING: \"walletlink_sdk.started.connecting\",\n CONNECTED_STATE_CHANGE: \"walletlink_sdk.connected\",\n DISCONNECTED: \"walletlink_sdk.disconnected\",\n METADATA_DESTROYED: \"walletlink_sdk_metadata_destroyed\",\n LINKED: \"walletlink_sdk.linked\",\n FAILURE: \"walletlink_sdk.generic_failure\",\n SESSION_CONFIG_RECEIVED: \"walletlink_sdk.session_config_event_received\",\n ETH_ACCOUNTS_STATE: \"walletlink_sdk.eth_accounts_state\",\n SESSION_STATE_CHANGE: \"walletlink_sdk.session_state_change\",\n UNLINKED_ERROR_STATE: \"walletlink_sdk.unlinked_error_state\",\n SKIPPED_CLEARING_SESSION: \"walletlink_sdk.skipped_clearing_session\",\n GENERAL_ERROR: \"walletlink_sdk.general_error\",\n WEB3_REQUEST: \"walletlink_sdk.web3.request\",\n WEB3_REQUEST_PUBLISHED: \"walletlink_sdk.web3.request_published\",\n WEB3_RESPONSE: \"walletlink_sdk.web3.response\",\n UNKNOWN_ADDRESS_ENCOUNTERED: \"walletlink_sdk.unknown_address_encountered\"\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Session = void 0;\n var r = n(134),\n i = n(38);\n\n var o = /*#__PURE__*/function () {\n function o(t, e, n, _o3) {\n _classCallCheck(this, o);\n\n this._storage = t, this._id = e || (0, i.randomBytesHex)(16), this._secret = n || (0, i.randomBytesHex)(32), this._key = new r.sha256().update(\"\".concat(this._id, \", \").concat(this._secret, \" WalletLink\")).digest(\"hex\"), this._linked = !!_o3;\n }\n\n _createClass(o, [{\n key: \"id\",\n get: function get() {\n return this._id;\n }\n }, {\n key: \"secret\",\n get: function get() {\n return this._secret;\n }\n }, {\n key: \"key\",\n get: function get() {\n return this._key;\n }\n }, {\n key: \"linked\",\n get: function get() {\n return this._linked;\n },\n set: function set(t) {\n this._linked = t, this.persistLinked();\n }\n }, {\n key: \"save\",\n value: function save() {\n return this._storage.setItem(\"session:id\", this._id), this._storage.setItem(\"session:secret\", this._secret), this.persistLinked(), this;\n }\n }, {\n key: \"persistLinked\",\n value: function persistLinked() {\n this._storage.setItem(\"session:linked\", this._linked ? \"1\" : \"0\");\n }\n }], [{\n key: \"load\",\n value: function load(t) {\n var e = t.getItem(\"session:id\"),\n n = t.getItem(\"session:linked\"),\n r = t.getItem(\"session:secret\");\n return e && r ? new o(t, e, r, \"1\" === n) : null;\n }\n }, {\n key: \"hash\",\n value: function hash(t) {\n return new r.sha256().update(t).digest(\"hex\");\n }\n }]);\n\n return o;\n }();\n\n e.Session = o;\n}, function (t, e, n) {\n \"use strict\";\n\n var r = SyntaxError,\n i = Function,\n o = TypeError,\n s = function s(t) {\n try {\n return i('\"use strict\"; return (' + t + \").constructor;\")();\n } catch (t) {}\n },\n a = Object.getOwnPropertyDescriptor;\n\n if (a) try {\n a({}, \"\");\n } catch (t) {\n a = null;\n }\n\n var u = function u() {\n throw new o();\n },\n c = a ? function () {\n try {\n return u;\n } catch (t) {\n try {\n return a(arguments, \"callee\").get;\n } catch (t) {\n return u;\n }\n }\n }() : u,\n l = n(142)(),\n h = n(144)(),\n d = Object.getPrototypeOf || (h ? function (t) {\n return t.__proto__;\n } : null),\n f = {},\n p = \"undefined\" != typeof Uint8Array && d ? d(Uint8Array) : void 0,\n b = {\n \"%AggregateError%\": \"undefined\" == typeof AggregateError ? void 0 : AggregateError,\n \"%Array%\": Array,\n \"%ArrayBuffer%\": \"undefined\" == typeof ArrayBuffer ? void 0 : ArrayBuffer,\n \"%ArrayIteratorPrototype%\": l && d ? d([][Symbol.iterator]()) : void 0,\n \"%AsyncFromSyncIteratorPrototype%\": void 0,\n \"%AsyncFunction%\": f,\n \"%AsyncGenerator%\": f,\n \"%AsyncGeneratorFunction%\": f,\n \"%AsyncIteratorPrototype%\": f,\n \"%Atomics%\": \"undefined\" == typeof Atomics ? void 0 : Atomics,\n \"%BigInt%\": \"undefined\" == typeof BigInt ? void 0 : BigInt,\n \"%BigInt64Array%\": \"undefined\" == typeof BigInt64Array ? void 0 : BigInt64Array,\n \"%BigUint64Array%\": \"undefined\" == typeof BigUint64Array ? void 0 : BigUint64Array,\n \"%Boolean%\": Boolean,\n \"%DataView%\": \"undefined\" == typeof DataView ? void 0 : DataView,\n \"%Date%\": Date,\n \"%decodeURI%\": decodeURI,\n \"%decodeURIComponent%\": decodeURIComponent,\n \"%encodeURI%\": encodeURI,\n \"%encodeURIComponent%\": encodeURIComponent,\n \"%Error%\": Error,\n \"%eval%\": eval,\n \"%EvalError%\": EvalError,\n \"%Float32Array%\": \"undefined\" == typeof Float32Array ? void 0 : Float32Array,\n \"%Float64Array%\": \"undefined\" == typeof Float64Array ? void 0 : Float64Array,\n \"%FinalizationRegistry%\": \"undefined\" == typeof FinalizationRegistry ? void 0 : FinalizationRegistry,\n \"%Function%\": i,\n \"%GeneratorFunction%\": f,\n \"%Int8Array%\": \"undefined\" == typeof Int8Array ? void 0 : Int8Array,\n \"%Int16Array%\": \"undefined\" == typeof Int16Array ? void 0 : Int16Array,\n \"%Int32Array%\": \"undefined\" == typeof Int32Array ? void 0 : Int32Array,\n \"%isFinite%\": isFinite,\n \"%isNaN%\": isNaN,\n \"%IteratorPrototype%\": l && d ? d(d([][Symbol.iterator]())) : void 0,\n \"%JSON%\": \"object\" == (typeof JSON === \"undefined\" ? \"undefined\" : _typeof(JSON)) ? JSON : void 0,\n \"%Map%\": \"undefined\" == typeof Map ? void 0 : Map,\n \"%MapIteratorPrototype%\": \"undefined\" != typeof Map && l && d ? d(new Map()[Symbol.iterator]()) : void 0,\n \"%Math%\": Math,\n \"%Number%\": Number,\n \"%Object%\": Object,\n \"%parseFloat%\": parseFloat,\n \"%parseInt%\": parseInt,\n \"%Promise%\": \"undefined\" == typeof Promise ? void 0 : Promise,\n \"%Proxy%\": \"undefined\" == typeof Proxy ? void 0 : Proxy,\n \"%RangeError%\": RangeError,\n \"%ReferenceError%\": ReferenceError,\n \"%Reflect%\": \"undefined\" == typeof Reflect ? void 0 : Reflect,\n \"%RegExp%\": RegExp,\n \"%Set%\": \"undefined\" == typeof Set ? void 0 : Set,\n \"%SetIteratorPrototype%\": \"undefined\" != typeof Set && l && d ? d(new Set()[Symbol.iterator]()) : void 0,\n \"%SharedArrayBuffer%\": \"undefined\" == typeof SharedArrayBuffer ? void 0 : SharedArrayBuffer,\n \"%String%\": String,\n \"%StringIteratorPrototype%\": l && d ? d(\"\"[Symbol.iterator]()) : void 0,\n \"%Symbol%\": l ? Symbol : void 0,\n \"%SyntaxError%\": r,\n \"%ThrowTypeError%\": c,\n \"%TypedArray%\": p,\n \"%TypeError%\": o,\n \"%Uint8Array%\": \"undefined\" == typeof Uint8Array ? void 0 : Uint8Array,\n \"%Uint8ClampedArray%\": \"undefined\" == typeof Uint8ClampedArray ? void 0 : Uint8ClampedArray,\n \"%Uint16Array%\": \"undefined\" == typeof Uint16Array ? void 0 : Uint16Array,\n \"%Uint32Array%\": \"undefined\" == typeof Uint32Array ? void 0 : Uint32Array,\n \"%URIError%\": URIError,\n \"%WeakMap%\": \"undefined\" == typeof WeakMap ? void 0 : WeakMap,\n \"%WeakRef%\": \"undefined\" == typeof WeakRef ? void 0 : WeakRef,\n \"%WeakSet%\": \"undefined\" == typeof WeakSet ? void 0 : WeakSet\n };\n\n if (d) try {\n null.error;\n } catch (t) {\n var y = d(d(t));\n b[\"%Error.prototype%\"] = y;\n }\n\n var g = {\n \"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n \"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n \"%ArrayProto_entries%\": [\"Array\", \"prototype\", \"entries\"],\n \"%ArrayProto_forEach%\": [\"Array\", \"prototype\", \"forEach\"],\n \"%ArrayProto_keys%\": [\"Array\", \"prototype\", \"keys\"],\n \"%ArrayProto_values%\": [\"Array\", \"prototype\", \"values\"],\n \"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n \"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n \"%AsyncGeneratorPrototype%\": [\"AsyncGeneratorFunction\", \"prototype\", \"prototype\"],\n \"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n \"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n \"%DatePrototype%\": [\"Date\", \"prototype\"],\n \"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n \"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n \"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n \"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n \"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n \"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n \"%GeneratorPrototype%\": [\"GeneratorFunction\", \"prototype\", \"prototype\"],\n \"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n \"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n \"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n \"%JSONParse%\": [\"JSON\", \"parse\"],\n \"%JSONStringify%\": [\"JSON\", \"stringify\"],\n \"%MapPrototype%\": [\"Map\", \"prototype\"],\n \"%NumberPrototype%\": [\"Number\", \"prototype\"],\n \"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n \"%ObjProto_toString%\": [\"Object\", \"prototype\", \"toString\"],\n \"%ObjProto_valueOf%\": [\"Object\", \"prototype\", \"valueOf\"],\n \"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n \"%PromiseProto_then%\": [\"Promise\", \"prototype\", \"then\"],\n \"%Promise_all%\": [\"Promise\", \"all\"],\n \"%Promise_reject%\": [\"Promise\", \"reject\"],\n \"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n \"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n \"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n \"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n \"%SetPrototype%\": [\"Set\", \"prototype\"],\n \"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n \"%StringPrototype%\": [\"String\", \"prototype\"],\n \"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n \"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n \"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n \"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n \"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n \"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n \"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n \"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n \"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n \"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n \"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n },\n m = n(93),\n v = n(146),\n w = m.call(Function.call, Array.prototype.concat),\n _ = m.call(Function.apply, Array.prototype.splice),\n S = m.call(Function.call, String.prototype.replace),\n E = m.call(Function.call, String.prototype.slice),\n M = m.call(Function.call, RegExp.prototype.exec),\n x = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,\n k = /\\\\(\\\\)?/g,\n C = function C(t) {\n var e = E(t, 0, 1),\n n = E(t, -1);\n if (\"%\" === e && \"%\" !== n) throw new r(\"invalid intrinsic syntax, expected closing `%`\");\n if (\"%\" === n && \"%\" !== e) throw new r(\"invalid intrinsic syntax, expected opening `%`\");\n var i = [];\n return S(t, x, function (t, e, n, r) {\n i[i.length] = n ? S(r, k, \"$1\") : e || t;\n }), i;\n },\n A = function A(t, e) {\n var n,\n i = t;\n\n if (v(g, i) && (i = \"%\" + (n = g[i])[0] + \"%\"), v(b, i)) {\n var a = b[i];\n if (a === f && (a = function t(e) {\n var n;\n if (\"%AsyncFunction%\" === e) n = s(\"async function () {}\");else if (\"%GeneratorFunction%\" === e) n = s(\"function* () {}\");else if (\"%AsyncGeneratorFunction%\" === e) n = s(\"async function* () {}\");else if (\"%AsyncGenerator%\" === e) {\n var r = t(\"%AsyncGeneratorFunction%\");\n r && (n = r.prototype);\n } else if (\"%AsyncIteratorPrototype%\" === e) {\n var i = t(\"%AsyncGenerator%\");\n i && d && (n = d(i.prototype));\n }\n return b[e] = n, n;\n }(i)), void 0 === a && !e) throw new o(\"intrinsic \" + t + \" exists, but is not available. Please file an issue!\");\n return {\n alias: n,\n name: i,\n value: a\n };\n }\n\n throw new r(\"intrinsic \" + t + \" does not exist!\");\n };\n\n t.exports = function (t, e) {\n if (\"string\" != typeof t || 0 === t.length) throw new o(\"intrinsic name must be a non-empty string\");\n if (arguments.length > 1 && \"boolean\" != typeof e) throw new o('\"allowMissing\" argument must be a boolean');\n if (null === M(/^%?[^%]*%?$/, t)) throw new r(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");\n var n = C(t),\n i = n.length > 0 ? n[0] : \"\",\n s = A(\"%\" + i + \"%\", e),\n u = s.name,\n c = s.value,\n l = !1,\n h = s.alias;\n h && (i = h[0], _(n, w([0, 1], h)));\n\n for (var d = 1, f = !0; d < n.length; d += 1) {\n var p = n[d],\n y = E(p, 0, 1),\n g = E(p, -1);\n if (('\"' === y || \"'\" === y || \"`\" === y || '\"' === g || \"'\" === g || \"`\" === g) && y !== g) throw new r(\"property names with quotes must have matching quotes\");\n if (\"constructor\" !== p && f || (l = !0), v(b, u = \"%\" + (i += \".\" + p) + \"%\")) c = b[u];else if (null != c) {\n if (!(p in c)) {\n if (!e) throw new o(\"base intrinsic for \" + t + \" exists, but the property is not available.\");\n return;\n }\n\n if (a && d + 1 >= n.length) {\n var m = a(c, p);\n c = (f = !!m) && \"get\" in m && !(\"originalValue\" in m.get) ? m.get : c[p];\n } else f = v(c, p), c = c[p];\n\n f && !l && (b[u] = c);\n }\n }\n\n return c;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(145);\n t.exports = Function.prototype.bind || r;\n}, function (t, e, n) {\n \"use strict\";\n\n var r = String.prototype.replace,\n i = /%20/g,\n o = \"RFC1738\",\n s = \"RFC3986\";\n t.exports = {\n default: s,\n formatters: {\n RFC1738: function RFC1738(t) {\n return r.call(t, i, \"+\");\n },\n RFC3986: function RFC3986(t) {\n return String(t);\n }\n },\n RFC1738: o,\n RFC3986: s\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(46).codes.ERR_STREAM_PREMATURE_CLOSE;\n\n function i() {}\n\n t.exports = function t(e, n, o) {\n if (\"function\" == typeof n) return t(e, null, n);\n n || (n = {}), o = function (t) {\n var e = !1;\n return function () {\n if (!e) {\n e = !0;\n\n for (var n = arguments.length, r = new Array(n), i = 0; i < n; i++) {\n r[i] = arguments[i];\n }\n\n t.apply(this, r);\n }\n };\n }(o || i);\n\n var s = n.readable || !1 !== n.readable && e.readable,\n a = n.writable || !1 !== n.writable && e.writable,\n u = function u() {\n e.writable || l();\n },\n c = e._writableState && e._writableState.finished,\n l = function l() {\n a = !1, c = !0, s || o.call(e);\n },\n h = e._readableState && e._readableState.endEmitted,\n d = function d() {\n s = !1, h = !0, a || o.call(e);\n },\n f = function f(t) {\n o.call(e, t);\n },\n p = function p() {\n var t;\n return s && !h ? (e._readableState && e._readableState.ended || (t = new r()), o.call(e, t)) : a && !c ? (e._writableState && e._writableState.ended || (t = new r()), o.call(e, t)) : void 0;\n },\n b = function b() {\n e.req.on(\"finish\", l);\n };\n\n return !function (t) {\n return t.setHeader && \"function\" == typeof t.abort;\n }(e) ? a && !e._writableState && (e.on(\"end\", u), e.on(\"close\", u)) : (e.on(\"complete\", l), e.on(\"abort\", p), e.req ? b() : e.on(\"request\", b)), e.on(\"end\", d), e.on(\"finish\", l), !1 !== n.error && e.on(\"error\", f), e.on(\"close\", p), function () {\n e.removeListener(\"complete\", l), e.removeListener(\"abort\", p), e.removeListener(\"request\", b), e.req && e.req.removeListener(\"finish\", l), e.removeListener(\"end\", u), e.removeListener(\"close\", u), e.removeListener(\"finish\", l), e.removeListener(\"end\", d), e.removeListener(\"error\", f), e.removeListener(\"close\", p);\n };\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.EthereumProviderError = e.EthereumRpcError = void 0;\n var r = n(103);\n\n var i = /*#__PURE__*/function (_Error2) {\n _inherits(i, _Error2);\n\n var _super5 = _createSuper(i);\n\n function i(t, e, n) {\n var _this7;\n\n _classCallCheck(this, i);\n\n if (!Number.isInteger(t)) throw new Error('\"code\" must be an integer.');\n if (!e || \"string\" != typeof e) throw new Error('\"message\" must be a nonempty string.');\n _this7 = _super5.call(this, e), _this7.code = t, void 0 !== n && (_this7.data = n);\n return _this7;\n }\n\n _createClass(i, [{\n key: \"serialize\",\n value: function serialize() {\n var t = {\n code: this.code,\n message: this.message\n };\n return void 0 !== this.data && (t.data = this.data), this.stack && (t.stack = this.stack), t;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return r.default(this.serialize(), o, 2);\n }\n }]);\n\n return i;\n }( /*#__PURE__*/_wrapNativeSuper(Error));\n\n e.EthereumRpcError = i;\n\n function o(t, e) {\n if (\"[Circular]\" !== e) return e;\n }\n\n e.EthereumProviderError = /*#__PURE__*/function (_i5) {\n _inherits(_class2, _i5);\n\n var _super6 = _createSuper(_class2);\n\n function _class2(t, e, n) {\n _classCallCheck(this, _class2);\n\n if (!function (t) {\n return Number.isInteger(t) && t >= 1e3 && t <= 4999;\n }(t)) throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n return _super6.call(this, t, e, n);\n }\n\n return _createClass(_class2);\n }(i);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.errorValues = e.errorCodes = void 0, e.errorCodes = {\n rpc: {\n invalidInput: -32e3,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901\n }\n }, e.errorValues = {\n \"-32700\": {\n standard: \"JSON RPC 2.0\",\n message: \"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"\n },\n \"-32600\": {\n standard: \"JSON RPC 2.0\",\n message: \"The JSON sent is not a valid Request object.\"\n },\n \"-32601\": {\n standard: \"JSON RPC 2.0\",\n message: \"The method does not exist / is not available.\"\n },\n \"-32602\": {\n standard: \"JSON RPC 2.0\",\n message: \"Invalid method parameter(s).\"\n },\n \"-32603\": {\n standard: \"JSON RPC 2.0\",\n message: \"Internal JSON-RPC error.\"\n },\n \"-32000\": {\n standard: \"EIP-1474\",\n message: \"Invalid input.\"\n },\n \"-32001\": {\n standard: \"EIP-1474\",\n message: \"Resource not found.\"\n },\n \"-32002\": {\n standard: \"EIP-1474\",\n message: \"Resource unavailable.\"\n },\n \"-32003\": {\n standard: \"EIP-1474\",\n message: \"Transaction rejected.\"\n },\n \"-32004\": {\n standard: \"EIP-1474\",\n message: \"Method not supported.\"\n },\n \"-32005\": {\n standard: \"EIP-1474\",\n message: \"Request limit exceeded.\"\n },\n 4001: {\n standard: \"EIP-1193\",\n message: \"User rejected the request.\"\n },\n 4100: {\n standard: \"EIP-1193\",\n message: \"The requested account and/or method has not been authorized by the user.\"\n },\n 4200: {\n standard: \"EIP-1193\",\n message: \"The requested method is not supported by this Ethereum provider.\"\n },\n 4900: {\n standard: \"EIP-1193\",\n message: \"The provider is disconnected from all chains.\"\n },\n 4901: {\n standard: \"EIP-1193\",\n message: \"The provider is disconnected from the specified chain.\"\n }\n };\n}, function (t, e, n) {\n var r = n(64).default;\n\n t.exports = /*#__PURE__*/function (_r8) {\n _inherits(_class3, _r8);\n\n var _super7 = _createSuper(_class3);\n\n function _class3() {\n var _this8;\n\n _classCallCheck(this, _class3);\n\n _this8 = _super7.call(this), _this8.updates = [];\n return _this8;\n }\n\n _createClass(_class3, [{\n key: \"initialize\",\n value: function () {\n var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28() {\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28);\n }));\n\n function initialize() {\n return _initialize.apply(this, arguments);\n }\n\n return initialize;\n }()\n }, {\n key: \"update\",\n value: function () {\n var _update = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29() {\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n throw new Error(\"BaseFilter - no update method specified\");\n\n case 1:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29);\n }));\n\n function update() {\n return _update.apply(this, arguments);\n }\n\n return update;\n }()\n }, {\n key: \"addResults\",\n value: function addResults(t) {\n var _this9 = this;\n\n this.updates = this.updates.concat(t), t.forEach(function (t) {\n return _this9.emit(\"update\", t);\n });\n }\n }, {\n key: \"addInitialResults\",\n value: function addInitialResults(t) {}\n }, {\n key: \"getChangesAndClear\",\n value: function getChangesAndClear() {\n var t = this.updates;\n return this.updates = [], t;\n }\n }]);\n\n return _class3;\n }(r);\n}, function (t, e) {\n function n(t) {\n return null == t ? t : Number.parseInt(t, 16);\n }\n\n function r(t) {\n if (null == t) return t;\n return \"0x\" + t.toString(16);\n }\n\n function i(t, e) {\n return new Promise(function (n, r) {\n t.sendAsync(e, function (t, e) {\n t ? r(t) : e.error ? r(e.error) : e.result ? n(e.result) : r(new Error(\"Result was empty\"));\n });\n });\n }\n\n t.exports = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee31(_ref2) {\n var t, e, o, s, a, u;\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n t = _ref2.provider, e = _ref2.fromBlock, o = _ref2.toBlock;\n e || (e = o);\n s = n(e), a = n(o), u = Array(a - s + 1).fill().map(function (t, e) {\n return s + e;\n }).map(r);\n _context31.next = 5;\n return Promise.all(u.map(function (e) {\n return function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee30(t, e, n) {\n var _r9;\n\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n _r9 = 0;\n\n case 1:\n if (!(_r9 < 3)) {\n _context30.next = 14;\n break;\n }\n\n _context30.prev = 2;\n _context30.next = 5;\n return i(t, {\n id: 1,\n jsonrpc: \"2.0\",\n method: e,\n params: n\n });\n\n case 5:\n return _context30.abrupt(\"return\", _context30.sent);\n\n case 8:\n _context30.prev = 8;\n _context30.t0 = _context30[\"catch\"](2);\n console.error(\"provider.sendAsync failed: \" + (_context30.t0.stack || _context30.t0.message || _context30.t0));\n\n case 11:\n _r9++;\n _context30.next = 1;\n break;\n\n case 14:\n throw new Error(\"Block not found for params: \" + JSON.stringify(n));\n\n case 15:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30, null, [[2, 8]]);\n }));\n\n return function (_x41, _x42, _x43) {\n return _ref4.apply(this, arguments);\n };\n }()(t, \"eth_getBlockByNumber\", [e, !1]);\n }));\n\n case 5:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 6:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31);\n }));\n\n return function (_x40) {\n return _ref3.apply(this, arguments);\n };\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.RelayMessageType = void 0, function (t) {\n t.SESSION_ID_REQUEST = \"SESSION_ID_REQUEST\", t.SESSION_ID_RESPONSE = \"SESSION_ID_RESPONSE\", t.LINKED = \"LINKED\", t.UNLINKED = \"UNLINKED\", t.WEB3_REQUEST = \"WEB3_REQUEST\", t.WEB3_REQUEST_CANCELED = \"WEB3_REQUEST_CANCELED\", t.WEB3_RESPONSE = \"WEB3_RESPONSE\";\n }(e.RelayMessageType || (e.RelayMessageType = {}));\n}, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"audit\", function () {\n return o;\n }), n.d(e, \"auditTime\", function () {\n return l;\n }), n.d(e, \"buffer\", function () {\n return h;\n }), n.d(e, \"bufferCount\", function () {\n return b;\n }), n.d(e, \"bufferTime\", function () {\n return w;\n }), n.d(e, \"bufferToggle\", function () {\n return O;\n }), n.d(e, \"bufferWhen\", function () {\n return N;\n }), n.d(e, \"catchError\", function () {\n return L;\n }), n.d(e, \"combineAll\", function () {\n return U;\n }), n.d(e, \"combineLatest\", function () {\n return z;\n }), n.d(e, \"concat\", function () {\n return q;\n }), n.d(e, \"concatAll\", function () {\n return Z.a;\n }), n.d(e, \"concatMap\", function () {\n return Y;\n }), n.d(e, \"concatMapTo\", function () {\n return $;\n }), n.d(e, \"count\", function () {\n return J;\n }), n.d(e, \"debounce\", function () {\n return X;\n }), n.d(e, \"debounceTime\", function () {\n return nt;\n }), n.d(e, \"defaultIfEmpty\", function () {\n return st;\n }), n.d(e, \"delay\", function () {\n return ht;\n }), n.d(e, \"delayWhen\", function () {\n return yt;\n }), n.d(e, \"dematerialize\", function () {\n return _t;\n }), n.d(e, \"distinct\", function () {\n return Mt;\n }), n.d(e, \"distinctUntilChanged\", function () {\n return Ct;\n }), n.d(e, \"distinctUntilKeyChanged\", function () {\n return Ot;\n }), n.d(e, \"elementAt\", function () {\n return Ht;\n }), n.d(e, \"endWith\", function () {\n return Vt;\n }), n.d(e, \"every\", function () {\n return qt;\n }), n.d(e, \"exhaust\", function () {\n return Yt;\n }), n.d(e, \"exhaustMap\", function () {\n return Kt;\n }), n.d(e, \"expand\", function () {\n return ee;\n }), n.d(e, \"filter\", function () {\n return Rt.a;\n }), n.d(e, \"finalize\", function () {\n return ie;\n }), n.d(e, \"find\", function () {\n return ae;\n }), n.d(e, \"findIndex\", function () {\n return le;\n }), n.d(e, \"first\", function () {\n return de;\n }), n.d(e, \"groupBy\", function () {\n return fe.b;\n }), n.d(e, \"ignoreElements\", function () {\n return pe;\n }), n.d(e, \"isEmpty\", function () {\n return ge;\n }), n.d(e, \"last\", function () {\n return Ee;\n }), n.d(e, \"map\", function () {\n return Qt.a;\n }), n.d(e, \"mapTo\", function () {\n return Me;\n }), n.d(e, \"materialize\", function () {\n return Ce;\n }), n.d(e, \"max\", function () {\n return Pe;\n }), n.d(e, \"merge\", function () {\n return De;\n }), n.d(e, \"mergeAll\", function () {\n return Be.a;\n }), n.d(e, \"mergeMap\", function () {\n return G.b;\n }), n.d(e, \"flatMap\", function () {\n return G.a;\n }), n.d(e, \"mergeMapTo\", function () {\n return Fe;\n }), n.d(e, \"mergeScan\", function () {\n return Ue;\n }), n.d(e, \"min\", function () {\n return ze;\n }), n.d(e, \"multicast\", function () {\n return qe;\n }), n.d(e, \"observeOn\", function () {\n return Ge.b;\n }), n.d(e, \"onErrorResumeNext\", function () {\n return Ye;\n }), n.d(e, \"pairwise\", function () {\n return Qe;\n }), n.d(e, \"partition\", function () {\n return en;\n }), n.d(e, \"pluck\", function () {\n return nn;\n }), n.d(e, \"publish\", function () {\n return sn;\n }), n.d(e, \"publishBehavior\", function () {\n return un;\n }), n.d(e, \"publishLast\", function () {\n return ln;\n }), n.d(e, \"publishReplay\", function () {\n return dn;\n }), n.d(e, \"race\", function () {\n return pn;\n }), n.d(e, \"reduce\", function () {\n return Te;\n }), n.d(e, \"repeat\", function () {\n return bn;\n }), n.d(e, \"repeatWhen\", function () {\n return mn;\n }), n.d(e, \"retry\", function () {\n return _n;\n }), n.d(e, \"retryWhen\", function () {\n return Mn;\n }), n.d(e, \"refCount\", function () {\n return Cn.a;\n }), n.d(e, \"sample\", function () {\n return An;\n }), n.d(e, \"sampleTime\", function () {\n return jn;\n }), n.d(e, \"scan\", function () {\n return Oe;\n }), n.d(e, \"sequenceEqual\", function () {\n return Pn;\n }), n.d(e, \"share\", function () {\n return Un;\n }), n.d(e, \"shareReplay\", function () {\n return Wn;\n }), n.d(e, \"single\", function () {\n return Hn;\n }), n.d(e, \"skip\", function () {\n return qn;\n }), n.d(e, \"skipLast\", function () {\n return Yn;\n }), n.d(e, \"skipUntil\", function () {\n return Qn;\n }), n.d(e, \"skipWhile\", function () {\n return tr;\n }), n.d(e, \"startWith\", function () {\n return rr;\n }), n.d(e, \"subscribeOn\", function () {\n return ar;\n }), n.d(e, \"switchAll\", function () {\n return dr;\n }), n.d(e, \"switchMap\", function () {\n return cr;\n }), n.d(e, \"switchMapTo\", function () {\n return fr;\n }), n.d(e, \"take\", function () {\n return Ft;\n }), n.d(e, \"takeLast\", function () {\n return we;\n }), n.d(e, \"takeUntil\", function () {\n return pr;\n }), n.d(e, \"takeWhile\", function () {\n return gr;\n }), n.d(e, \"tap\", function () {\n return Sr;\n }), n.d(e, \"throttle\", function () {\n return kr;\n }), n.d(e, \"throttleTime\", function () {\n return Ir;\n }), n.d(e, \"throwIfEmpty\", function () {\n return Tt;\n }), n.d(e, \"timeInterval\", function () {\n return Tr;\n }), n.d(e, \"timeout\", function () {\n return Wr;\n }), n.d(e, \"timeoutWith\", function () {\n return Dr;\n }), n.d(e, \"timestamp\", function () {\n return Hr;\n }), n.d(e, \"toArray\", function () {\n return qr;\n }), n.d(e, \"window\", function () {\n return Zr;\n }), n.d(e, \"windowCount\", function () {\n return $r;\n }), n.d(e, \"windowTime\", function () {\n return Kr;\n }), n.d(e, \"windowToggle\", function () {\n return oi;\n }), n.d(e, \"windowWhen\", function () {\n return ui;\n }), n.d(e, \"withLatestFrom\", function () {\n return hi;\n }), n.d(e, \"zip\", function () {\n return bi;\n }), n.d(e, \"zipAll\", function () {\n return yi;\n });\n var r = n(0),\n i = n(2);\n\n function o(t) {\n return function (e) {\n return e.lift(new s(t));\n };\n }\n\n var s = function () {\n function t(t) {\n this.durationSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new a(t, this.durationSelector));\n }, t;\n }(),\n a = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.durationSelector = n, r.hasValue = !1, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n if (this.value = t, this.hasValue = !0, !this.throttled) {\n var e = void 0;\n\n try {\n e = (0, this.durationSelector)(t);\n } catch (t) {\n return this.destination.error(t);\n }\n\n var n = Object(i.c)(e, new i.a(this));\n !n || n.closed ? this.clearThrottle() : this.add(this.throttled = n);\n }\n }, e.prototype.clearThrottle = function () {\n var t = this.value,\n e = this.hasValue,\n n = this.throttled;\n n && (this.remove(n), this.throttled = void 0, n.unsubscribe()), e && (this.value = void 0, this.hasValue = !1, this.destination.next(t));\n }, e.prototype.notifyNext = function () {\n this.clearThrottle();\n }, e.prototype.notifyComplete = function () {\n this.clearThrottle();\n }, e;\n }(i.b),\n u = n(7),\n c = n(78);\n\n function l(t, e) {\n return void 0 === e && (e = u.a), o(function () {\n return Object(c.a)(t, e);\n });\n }\n\n function h(t) {\n return function (e) {\n return e.lift(new d(t));\n };\n }\n\n var d = function () {\n function t(t) {\n this.closingNotifier = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new f(t, this.closingNotifier));\n }, t;\n }(),\n f = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.buffer = [], r.add(Object(i.c)(n, new i.a(r))), r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.buffer.push(t);\n }, e.prototype.notifyNext = function () {\n var t = this.buffer;\n this.buffer = [], this.destination.next(t);\n }, e;\n }(i.b),\n p = n(1);\n\n function b(t, e) {\n return void 0 === e && (e = null), function (n) {\n return n.lift(new y(t, e));\n };\n }\n\n var y = function () {\n function t(t, e) {\n this.bufferSize = t, this.startBufferEvery = e, this.subscriberClass = e && t !== e ? m : g;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new this.subscriberClass(t, this.bufferSize, this.startBufferEvery));\n }, t;\n }(),\n g = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.bufferSize = n, r.buffer = [], r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.buffer;\n e.push(t), e.length == this.bufferSize && (this.destination.next(e), this.buffer = []);\n }, e.prototype._complete = function () {\n var e = this.buffer;\n e.length > 0 && this.destination.next(e), t.prototype._complete.call(this);\n }, e;\n }(p.a),\n m = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.bufferSize = n, i.startBufferEvery = r, i.buffers = [], i.count = 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.bufferSize,\n n = this.startBufferEvery,\n r = this.buffers,\n i = this.count;\n this.count++, i % n == 0 && r.push([]);\n\n for (var o = r.length; o--;) {\n var s = r[o];\n s.push(t), s.length === e && (r.splice(o, 1), this.destination.next(s));\n }\n }, e.prototype._complete = function () {\n for (var e = this.buffers, n = this.destination; e.length > 0;) {\n var r = e.shift();\n r.length > 0 && n.next(r);\n }\n\n t.prototype._complete.call(this);\n }, e;\n }(p.a),\n v = n(10);\n\n function w(t) {\n var e = arguments.length,\n n = u.a;\n Object(v.a)(arguments[arguments.length - 1]) && (n = arguments[arguments.length - 1], e--);\n var r = null;\n e >= 2 && (r = arguments[1]);\n var i = Number.POSITIVE_INFINITY;\n return e >= 3 && (i = arguments[2]), function (e) {\n return e.lift(new _(t, r, i, n));\n };\n }\n\n var _ = function () {\n function t(t, e, n, r) {\n this.bufferTimeSpan = t, this.bufferCreationInterval = e, this.maxBufferSize = n, this.scheduler = r;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new E(t, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n }, t;\n }(),\n S = function () {\n return function () {\n this.buffer = [];\n };\n }(),\n E = function (t) {\n function e(e, n, r, i, o) {\n var s = t.call(this, e) || this;\n s.bufferTimeSpan = n, s.bufferCreationInterval = r, s.maxBufferSize = i, s.scheduler = o, s.contexts = [];\n var a = s.openContext();\n\n if (s.timespanOnly = null == r || r < 0, s.timespanOnly) {\n var u = {\n subscriber: s,\n context: a,\n bufferTimeSpan: n\n };\n s.add(a.closeAction = o.schedule(M, n, u));\n } else {\n var c = {\n subscriber: s,\n context: a\n },\n l = {\n bufferTimeSpan: n,\n bufferCreationInterval: r,\n subscriber: s,\n scheduler: o\n };\n s.add(a.closeAction = o.schedule(k, n, c)), s.add(o.schedule(x, r, l));\n }\n\n return s;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n for (var e, n = this.contexts, r = n.length, i = 0; i < r; i++) {\n var o = n[i],\n s = o.buffer;\n s.push(t), s.length == this.maxBufferSize && (e = o);\n }\n\n e && this.onBufferFull(e);\n }, e.prototype._error = function (e) {\n this.contexts.length = 0, t.prototype._error.call(this, e);\n }, e.prototype._complete = function () {\n for (var e = this.contexts, n = this.destination; e.length > 0;) {\n var r = e.shift();\n n.next(r.buffer);\n }\n\n t.prototype._complete.call(this);\n }, e.prototype._unsubscribe = function () {\n this.contexts = null;\n }, e.prototype.onBufferFull = function (t) {\n this.closeContext(t);\n var e = t.closeAction;\n\n if (e.unsubscribe(), this.remove(e), !this.closed && this.timespanOnly) {\n t = this.openContext();\n var n = this.bufferTimeSpan,\n r = {\n subscriber: this,\n context: t,\n bufferTimeSpan: n\n };\n this.add(t.closeAction = this.scheduler.schedule(M, n, r));\n }\n }, e.prototype.openContext = function () {\n var t = new S();\n return this.contexts.push(t), t;\n }, e.prototype.closeContext = function (t) {\n this.destination.next(t.buffer);\n var e = this.contexts;\n (e ? e.indexOf(t) : -1) >= 0 && e.splice(e.indexOf(t), 1);\n }, e;\n }(p.a);\n\n function M(t) {\n var e = t.subscriber,\n n = t.context;\n n && e.closeContext(n), e.closed || (t.context = e.openContext(), t.context.closeAction = this.schedule(t, t.bufferTimeSpan));\n }\n\n function x(t) {\n var e = t.bufferCreationInterval,\n n = t.bufferTimeSpan,\n r = t.subscriber,\n i = t.scheduler,\n o = r.openContext();\n r.closed || (r.add(o.closeAction = i.schedule(k, n, {\n subscriber: r,\n context: o\n })), this.schedule(t, e));\n }\n\n function k(t) {\n var e = t.subscriber,\n n = t.context;\n e.closeContext(n);\n }\n\n var C = n(4),\n A = n(13),\n I = n(16);\n\n function O(t, e) {\n return function (n) {\n return n.lift(new j(t, e));\n };\n }\n\n var j = function () {\n function t(t, e) {\n this.openings = t, this.closingSelector = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new R(t, this.openings, this.closingSelector));\n }, t;\n }(),\n R = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.closingSelector = r, i.contexts = [], i.add(Object(A.a)(i, n)), i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n for (var e = this.contexts, n = e.length, r = 0; r < n; r++) {\n e[r].buffer.push(t);\n }\n }, e.prototype._error = function (e) {\n for (var n = this.contexts; n.length > 0;) {\n var r = n.shift();\n r.subscription.unsubscribe(), r.buffer = null, r.subscription = null;\n }\n\n this.contexts = null, t.prototype._error.call(this, e);\n }, e.prototype._complete = function () {\n for (var e = this.contexts; e.length > 0;) {\n var n = e.shift();\n this.destination.next(n.buffer), n.subscription.unsubscribe(), n.buffer = null, n.subscription = null;\n }\n\n this.contexts = null, t.prototype._complete.call(this);\n }, e.prototype.notifyNext = function (t, e) {\n t ? this.closeBuffer(t) : this.openBuffer(e);\n }, e.prototype.notifyComplete = function (t) {\n this.closeBuffer(t.context);\n }, e.prototype.openBuffer = function (t) {\n try {\n var e = this.closingSelector.call(this, t);\n e && this.trySubscribe(e);\n } catch (t) {\n this._error(t);\n }\n }, e.prototype.closeBuffer = function (t) {\n var e = this.contexts;\n\n if (e && t) {\n var n = t.buffer,\n r = t.subscription;\n this.destination.next(n), e.splice(e.indexOf(t), 1), this.remove(r), r.unsubscribe();\n }\n }, e.prototype.trySubscribe = function (t) {\n var e = this.contexts,\n n = new C.a(),\n r = {\n buffer: [],\n subscription: n\n };\n e.push(r);\n var i = Object(A.a)(this, t, r);\n !i || i.closed ? this.closeBuffer(r) : (i.context = r, this.add(i), n.add(i));\n }, e;\n }(I.a);\n\n function N(t) {\n return function (e) {\n return e.lift(new T(t));\n };\n }\n\n var T = function () {\n function t(t) {\n this.closingSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new P(t, this.closingSelector));\n }, t;\n }(),\n P = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.closingSelector = n, r.subscribing = !1, r.openBuffer(), r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.buffer.push(t);\n }, e.prototype._complete = function () {\n var e = this.buffer;\n e && this.destination.next(e), t.prototype._complete.call(this);\n }, e.prototype._unsubscribe = function () {\n this.buffer = void 0, this.subscribing = !1;\n }, e.prototype.notifyNext = function () {\n this.openBuffer();\n }, e.prototype.notifyComplete = function () {\n this.subscribing ? this.complete() : this.openBuffer();\n }, e.prototype.openBuffer = function () {\n var t = this.closingSubscription;\n t && (this.remove(t), t.unsubscribe());\n var e,\n n = this.buffer;\n this.buffer && this.destination.next(n), this.buffer = [];\n\n try {\n e = (0, this.closingSelector)();\n } catch (t) {\n return this.error(t);\n }\n\n t = new C.a(), this.closingSubscription = t, this.add(t), this.subscribing = !0, t.add(Object(i.c)(e, new i.a(this))), this.subscribing = !1;\n }, e;\n }(i.b);\n\n function L(t) {\n return function (e) {\n var n = new D(t),\n r = e.lift(n);\n return n.caught = r;\n };\n }\n\n var D = function () {\n function t(t) {\n this.selector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new B(t, this.selector, this.caught));\n }, t;\n }(),\n B = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.selector = n, i.caught = r, i;\n }\n\n return r.a(e, t), e.prototype.error = function (e) {\n if (!this.isStopped) {\n var n = void 0;\n\n try {\n n = this.selector(e, this.caught);\n } catch (e) {\n return void t.prototype.error.call(this, e);\n }\n\n this._unsubscribeAndRecycle();\n\n var r = new i.a(this);\n this.add(r);\n var o = Object(i.c)(n, r);\n o !== r && this.add(o);\n }\n }, e;\n }(i.b),\n F = n(51);\n\n function U(t) {\n return function (e) {\n return e.lift(new F.a(t));\n };\n }\n\n var W = n(8),\n H = n(12);\n\n function z() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = null;\n return \"function\" == typeof t[t.length - 1] && (n = t.pop()), 1 === t.length && Object(W.a)(t[0]) && (t = t[0].slice()), function (e) {\n return e.lift.call(Object(H.a)([e].concat(t)), new F.a(n));\n };\n }\n\n var V = n(34);\n\n function q() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return function (e) {\n return e.lift.call(V.a.apply(void 0, [e].concat(t)));\n };\n }\n\n var Z = n(75),\n G = n(28);\n\n function Y(t, e) {\n return Object(G.b)(t, e, 1);\n }\n\n function $(t, e) {\n return Y(function () {\n return t;\n }, e);\n }\n\n function J(t) {\n return function (e) {\n return e.lift(new Q(t, e));\n };\n }\n\n var Q = function () {\n function t(t, e) {\n this.predicate = t, this.source = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new K(t, this.predicate, this.source));\n }, t;\n }(),\n K = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.predicate = n, i.source = r, i.count = 0, i.index = 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.predicate ? this._tryPredicate(t) : this.count++;\n }, e.prototype._tryPredicate = function (t) {\n var e;\n\n try {\n e = this.predicate(t, this.index++, this.source);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n e && this.count++;\n }, e.prototype._complete = function () {\n this.destination.next(this.count), this.destination.complete();\n }, e;\n }(p.a);\n\n function X(t) {\n return function (e) {\n return e.lift(new tt(t));\n };\n }\n\n var tt = function () {\n function t(t) {\n this.durationSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new et(t, this.durationSelector));\n }, t;\n }(),\n et = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.durationSelector = n, r.hasValue = !1, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n try {\n var e = this.durationSelector.call(this, t);\n e && this._tryNext(t, e);\n } catch (t) {\n this.destination.error(t);\n }\n }, e.prototype._complete = function () {\n this.emitValue(), this.destination.complete();\n }, e.prototype._tryNext = function (t, e) {\n var n = this.durationSubscription;\n this.value = t, this.hasValue = !0, n && (n.unsubscribe(), this.remove(n)), (n = Object(i.c)(e, new i.a(this))) && !n.closed && this.add(this.durationSubscription = n);\n }, e.prototype.notifyNext = function () {\n this.emitValue();\n }, e.prototype.notifyComplete = function () {\n this.emitValue();\n }, e.prototype.emitValue = function () {\n if (this.hasValue) {\n var e = this.value,\n n = this.durationSubscription;\n n && (this.durationSubscription = void 0, n.unsubscribe(), this.remove(n)), this.value = void 0, this.hasValue = !1, t.prototype._next.call(this, e);\n }\n }, e;\n }(i.b);\n\n function nt(t, e) {\n return void 0 === e && (e = u.a), function (n) {\n return n.lift(new rt(t, e));\n };\n }\n\n var rt = function () {\n function t(t, e) {\n this.dueTime = t, this.scheduler = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new it(t, this.dueTime, this.scheduler));\n }, t;\n }(),\n it = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.dueTime = n, i.scheduler = r, i.debouncedSubscription = null, i.lastValue = null, i.hasValue = !1, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.clearDebounce(), this.lastValue = t, this.hasValue = !0, this.add(this.debouncedSubscription = this.scheduler.schedule(ot, this.dueTime, this));\n }, e.prototype._complete = function () {\n this.debouncedNext(), this.destination.complete();\n }, e.prototype.debouncedNext = function () {\n if (this.clearDebounce(), this.hasValue) {\n var t = this.lastValue;\n this.lastValue = null, this.hasValue = !1, this.destination.next(t);\n }\n }, e.prototype.clearDebounce = function () {\n var t = this.debouncedSubscription;\n null !== t && (this.remove(t), t.unsubscribe(), this.debouncedSubscription = null);\n }, e;\n }(p.a);\n\n function ot(t) {\n t.debouncedNext();\n }\n\n function st(t) {\n return void 0 === t && (t = null), function (e) {\n return e.lift(new at(t));\n };\n }\n\n var at = function () {\n function t(t) {\n this.defaultValue = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ut(t, this.defaultValue));\n }, t;\n }(),\n ut = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.defaultValue = n, r.isEmpty = !0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.isEmpty = !1, this.destination.next(t);\n }, e.prototype._complete = function () {\n this.isEmpty && this.destination.next(this.defaultValue), this.destination.complete();\n }, e;\n }(p.a);\n\n function ct(t) {\n return t instanceof Date && !isNaN(+t);\n }\n\n var lt = n(18);\n\n function ht(t, e) {\n void 0 === e && (e = u.a);\n var n = ct(t) ? +t - e.now() : Math.abs(t);\n return function (t) {\n return t.lift(new dt(n, e));\n };\n }\n\n var dt = function () {\n function t(t, e) {\n this.delay = t, this.scheduler = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ft(t, this.delay, this.scheduler));\n }, t;\n }(),\n ft = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.delay = n, i.scheduler = r, i.queue = [], i.active = !1, i.errored = !1, i;\n }\n\n return r.a(e, t), e.dispatch = function (t) {\n for (var e = t.source, n = e.queue, r = t.scheduler, i = t.destination; n.length > 0 && n[0].time - r.now() <= 0;) {\n n.shift().notification.observe(i);\n }\n\n if (n.length > 0) {\n var o = Math.max(0, n[0].time - r.now());\n this.schedule(t, o);\n } else this.unsubscribe(), e.active = !1;\n }, e.prototype._schedule = function (t) {\n this.active = !0, this.destination.add(t.schedule(e.dispatch, this.delay, {\n source: this,\n destination: this.destination,\n scheduler: t\n }));\n }, e.prototype.scheduleNotification = function (t) {\n if (!0 !== this.errored) {\n var e = this.scheduler,\n n = new pt(e.now() + this.delay, t);\n this.queue.push(n), !1 === this.active && this._schedule(e);\n }\n }, e.prototype._next = function (t) {\n this.scheduleNotification(lt.a.createNext(t));\n }, e.prototype._error = function (t) {\n this.errored = !0, this.queue = [], this.destination.error(t), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.scheduleNotification(lt.a.createComplete()), this.unsubscribe();\n }, e;\n }(p.a),\n pt = function () {\n return function (t, e) {\n this.time = t, this.notification = e;\n };\n }(),\n bt = n(3);\n\n function yt(t, e) {\n return e ? function (n) {\n return new vt(n, e).lift(new gt(t));\n } : function (e) {\n return e.lift(new gt(t));\n };\n }\n\n var gt = function () {\n function t(t) {\n this.delayDurationSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new mt(t, this.delayDurationSelector));\n }, t;\n }(),\n mt = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.delayDurationSelector = n, r.completed = !1, r.delayNotifierSubscriptions = [], r.index = 0, r;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function (t, e, n, r, i) {\n this.destination.next(t), this.removeSubscription(i), this.tryComplete();\n }, e.prototype.notifyError = function (t, e) {\n this._error(t);\n }, e.prototype.notifyComplete = function (t) {\n var e = this.removeSubscription(t);\n e && this.destination.next(e), this.tryComplete();\n }, e.prototype._next = function (t) {\n var e = this.index++;\n\n try {\n var n = this.delayDurationSelector(t, e);\n n && this.tryDelay(n, t);\n } catch (t) {\n this.destination.error(t);\n }\n }, e.prototype._complete = function () {\n this.completed = !0, this.tryComplete(), this.unsubscribe();\n }, e.prototype.removeSubscription = function (t) {\n t.unsubscribe();\n var e = this.delayNotifierSubscriptions.indexOf(t);\n return -1 !== e && this.delayNotifierSubscriptions.splice(e, 1), t.outerValue;\n }, e.prototype.tryDelay = function (t, e) {\n var n = Object(A.a)(this, t, e);\n n && !n.closed && (this.destination.add(n), this.delayNotifierSubscriptions.push(n));\n }, e.prototype.tryComplete = function () {\n this.completed && 0 === this.delayNotifierSubscriptions.length && this.destination.complete();\n }, e;\n }(I.a),\n vt = function (t) {\n function e(e, n) {\n var r = t.call(this) || this;\n return r.source = e, r.subscriptionDelay = n, r;\n }\n\n return r.a(e, t), e.prototype._subscribe = function (t) {\n this.subscriptionDelay.subscribe(new wt(t, this.source));\n }, e;\n }(bt.a),\n wt = function (t) {\n function e(e, n) {\n var r = t.call(this) || this;\n return r.parent = e, r.source = n, r.sourceSubscribed = !1, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.subscribeToSource();\n }, e.prototype._error = function (t) {\n this.unsubscribe(), this.parent.error(t);\n }, e.prototype._complete = function () {\n this.unsubscribe(), this.subscribeToSource();\n }, e.prototype.subscribeToSource = function () {\n this.sourceSubscribed || (this.sourceSubscribed = !0, this.unsubscribe(), this.source.subscribe(this.parent));\n }, e;\n }(p.a);\n\n function _t() {\n return function (t) {\n return t.lift(new St());\n };\n }\n\n var St = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Et(t));\n }, t;\n }(),\n Et = function (t) {\n function e(e) {\n return t.call(this, e) || this;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n t.observe(this.destination);\n }, e;\n }(p.a);\n\n function Mt(t, e) {\n return function (n) {\n return n.lift(new xt(t, e));\n };\n }\n\n var xt = function () {\n function t(t, e) {\n this.keySelector = t, this.flushes = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new kt(t, this.keySelector, this.flushes));\n }, t;\n }(),\n kt = function (t) {\n function e(e, n, r) {\n var o = t.call(this, e) || this;\n return o.keySelector = n, o.values = new Set(), r && o.add(Object(i.c)(r, new i.a(o))), o;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function () {\n this.values.clear();\n }, e.prototype.notifyError = function (t) {\n this._error(t);\n }, e.prototype._next = function (t) {\n this.keySelector ? this._useKeySelector(t) : this._finalizeNext(t, t);\n }, e.prototype._useKeySelector = function (t) {\n var e,\n n = this.destination;\n\n try {\n e = this.keySelector(t);\n } catch (t) {\n return void n.error(t);\n }\n\n this._finalizeNext(e, t);\n }, e.prototype._finalizeNext = function (t, e) {\n var n = this.values;\n n.has(t) || (n.add(t), this.destination.next(e));\n }, e;\n }(i.b);\n\n function Ct(t, e) {\n return function (n) {\n return n.lift(new At(t, e));\n };\n }\n\n var At = function () {\n function t(t, e) {\n this.compare = t, this.keySelector = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new It(t, this.compare, this.keySelector));\n }, t;\n }(),\n It = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.keySelector = r, i.hasKey = !1, \"function\" == typeof n && (i.compare = n), i;\n }\n\n return r.a(e, t), e.prototype.compare = function (t, e) {\n return t === e;\n }, e.prototype._next = function (t) {\n var e;\n\n try {\n var n = this.keySelector;\n e = n ? n(t) : t;\n } catch (t) {\n return this.destination.error(t);\n }\n\n var r = !1;\n if (this.hasKey) try {\n r = (0, this.compare)(this.key, e);\n } catch (t) {\n return this.destination.error(t);\n } else this.hasKey = !0;\n r || (this.key = e, this.destination.next(t));\n }, e;\n }(p.a);\n\n function Ot(t, e) {\n return Ct(function (n, r) {\n return e ? e(n[t], r[t]) : n[t] === r[t];\n });\n }\n\n var jt = n(25),\n Rt = n(17),\n Nt = n(27);\n\n function Tt(t) {\n return void 0 === t && (t = Dt), function (e) {\n return e.lift(new Pt(t));\n };\n }\n\n var Pt = function () {\n function t(t) {\n this.errorFactory = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Lt(t, this.errorFactory));\n }, t;\n }(),\n Lt = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.errorFactory = n, r.hasValue = !1, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.hasValue = !0, this.destination.next(t);\n }, e.prototype._complete = function () {\n if (this.hasValue) return this.destination.complete();\n var t = void 0;\n\n try {\n t = this.errorFactory();\n } catch (e) {\n t = e;\n }\n\n this.destination.error(t);\n }, e;\n }(p.a);\n\n function Dt() {\n return new Nt.a();\n }\n\n var Bt = n(11);\n\n function Ft(t) {\n return function (e) {\n return 0 === t ? Object(Bt.b)() : e.lift(new Ut(t));\n };\n }\n\n var Ut = function () {\n function t(t) {\n if (this.total = t, this.total < 0) throw new jt.a();\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Wt(t, this.total));\n }, t;\n }(),\n Wt = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.total = n, r.count = 0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.total,\n n = ++this.count;\n n <= e && (this.destination.next(t), n === e && (this.destination.complete(), this.unsubscribe()));\n }, e;\n }(p.a);\n\n function Ht(t, e) {\n if (t < 0) throw new jt.a();\n var n = arguments.length >= 2;\n return function (r) {\n return r.pipe(Object(Rt.a)(function (e, n) {\n return n === t;\n }), Ft(1), n ? st(e) : Tt(function () {\n return new jt.a();\n }));\n };\n }\n\n var zt = n(39);\n\n function Vt() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return function (e) {\n return Object(V.a)(e, zt.a.apply(void 0, t));\n };\n }\n\n function qt(t, e) {\n return function (n) {\n return n.lift(new Zt(t, e, n));\n };\n }\n\n var Zt = function () {\n function t(t, e, n) {\n this.predicate = t, this.thisArg = e, this.source = n;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Gt(t, this.predicate, this.thisArg, this.source));\n }, t;\n }(),\n Gt = function (t) {\n function e(e, n, r, i) {\n var o = t.call(this, e) || this;\n return o.predicate = n, o.thisArg = r, o.source = i, o.index = 0, o.thisArg = r || o, o;\n }\n\n return r.a(e, t), e.prototype.notifyComplete = function (t) {\n this.destination.next(t), this.destination.complete();\n }, e.prototype._next = function (t) {\n var e = !1;\n\n try {\n e = this.predicate.call(this.thisArg, t, this.index++, this.source);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n e || this.notifyComplete(!1);\n }, e.prototype._complete = function () {\n this.notifyComplete(!0);\n }, e;\n }(p.a);\n\n function Yt() {\n return function (t) {\n return t.lift(new $t());\n };\n }\n\n var $t = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Jt(t));\n }, t;\n }(),\n Jt = function (t) {\n function e(e) {\n var n = t.call(this, e) || this;\n return n.hasCompleted = !1, n.hasSubscription = !1, n;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.hasSubscription || (this.hasSubscription = !0, this.add(Object(i.c)(t, new i.a(this))));\n }, e.prototype._complete = function () {\n this.hasCompleted = !0, this.hasSubscription || this.destination.complete();\n }, e.prototype.notifyComplete = function () {\n this.hasSubscription = !1, this.hasCompleted && this.destination.complete();\n }, e;\n }(i.b),\n Qt = n(9);\n\n function Kt(t, e) {\n return e ? function (n) {\n return n.pipe(Kt(function (n, r) {\n return Object(H.a)(t(n, r)).pipe(Object(Qt.a)(function (t, i) {\n return e(n, t, r, i);\n }));\n }));\n } : function (e) {\n return e.lift(new Xt(t));\n };\n }\n\n var Xt = function () {\n function t(t) {\n this.project = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new te(t, this.project));\n }, t;\n }(),\n te = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.project = n, r.hasSubscription = !1, r.hasCompleted = !1, r.index = 0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.hasSubscription || this.tryNext(t);\n }, e.prototype.tryNext = function (t) {\n var e,\n n = this.index++;\n\n try {\n e = this.project(t, n);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.hasSubscription = !0, this._innerSub(e);\n }, e.prototype._innerSub = function (t) {\n var e = new i.a(this),\n n = this.destination;\n n.add(e);\n var r = Object(i.c)(t, e);\n r !== e && n.add(r);\n }, e.prototype._complete = function () {\n this.hasCompleted = !0, this.hasSubscription || this.destination.complete(), this.unsubscribe();\n }, e.prototype.notifyNext = function (t) {\n this.destination.next(t);\n }, e.prototype.notifyError = function (t) {\n this.destination.error(t);\n }, e.prototype.notifyComplete = function () {\n this.hasSubscription = !1, this.hasCompleted && this.destination.complete();\n }, e;\n }(i.b);\n\n function ee(t, e, n) {\n return void 0 === e && (e = Number.POSITIVE_INFINITY), e = (e || 0) < 1 ? Number.POSITIVE_INFINITY : e, function (r) {\n return r.lift(new ne(t, e, n));\n };\n }\n\n var ne = function () {\n function t(t, e, n) {\n this.project = t, this.concurrent = e, this.scheduler = n;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new re(t, this.project, this.concurrent, this.scheduler));\n }, t;\n }(),\n re = function (t) {\n function e(e, n, r, i) {\n var o = t.call(this, e) || this;\n return o.project = n, o.concurrent = r, o.scheduler = i, o.index = 0, o.active = 0, o.hasCompleted = !1, r < Number.POSITIVE_INFINITY && (o.buffer = []), o;\n }\n\n return r.a(e, t), e.dispatch = function (t) {\n var e = t.subscriber,\n n = t.result,\n r = t.value,\n i = t.index;\n e.subscribeToProjection(n, r, i);\n }, e.prototype._next = function (t) {\n var n = this.destination;\n if (n.closed) this._complete();else {\n var r = this.index++;\n\n if (this.active < this.concurrent) {\n n.next(t);\n\n try {\n var i = (0, this.project)(t, r);\n\n if (this.scheduler) {\n var o = {\n subscriber: this,\n result: i,\n value: t,\n index: r\n };\n this.destination.add(this.scheduler.schedule(e.dispatch, 0, o));\n } else this.subscribeToProjection(i, t, r);\n } catch (t) {\n n.error(t);\n }\n } else this.buffer.push(t);\n }\n }, e.prototype.subscribeToProjection = function (t, e, n) {\n this.active++, this.destination.add(Object(i.c)(t, new i.a(this)));\n }, e.prototype._complete = function () {\n this.hasCompleted = !0, this.hasCompleted && 0 === this.active && this.destination.complete(), this.unsubscribe();\n }, e.prototype.notifyNext = function (t) {\n this._next(t);\n }, e.prototype.notifyComplete = function () {\n var t = this.buffer;\n this.active--, t && t.length > 0 && this._next(t.shift()), this.hasCompleted && 0 === this.active && this.destination.complete();\n }, e;\n }(i.b);\n\n function ie(t) {\n return function (e) {\n return e.lift(new oe(t));\n };\n }\n\n var oe = function () {\n function t(t) {\n this.callback = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new se(t, this.callback));\n }, t;\n }(),\n se = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.add(new C.a(n)), r;\n }\n\n return r.a(e, t), e;\n }(p.a);\n\n function ae(t, e) {\n if (\"function\" != typeof t) throw new TypeError(\"predicate is not a function\");\n return function (n) {\n return n.lift(new ue(t, n, !1, e));\n };\n }\n\n var ue = function () {\n function t(t, e, n, r) {\n this.predicate = t, this.source = e, this.yieldIndex = n, this.thisArg = r;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ce(t, this.predicate, this.source, this.yieldIndex, this.thisArg));\n }, t;\n }(),\n ce = function (t) {\n function e(e, n, r, i, o) {\n var s = t.call(this, e) || this;\n return s.predicate = n, s.source = r, s.yieldIndex = i, s.thisArg = o, s.index = 0, s;\n }\n\n return r.a(e, t), e.prototype.notifyComplete = function (t) {\n var e = this.destination;\n e.next(t), e.complete(), this.unsubscribe();\n }, e.prototype._next = function (t) {\n var e = this.predicate,\n n = this.thisArg,\n r = this.index++;\n\n try {\n e.call(n || this, t, r, this.source) && this.notifyComplete(this.yieldIndex ? r : t);\n } catch (t) {\n this.destination.error(t);\n }\n }, e.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : void 0);\n }, e;\n }(p.a);\n\n function le(t, e) {\n return function (n) {\n return n.lift(new ue(t, n, !0, e));\n };\n }\n\n var he = n(15);\n\n function de(t, e) {\n var n = arguments.length >= 2;\n return function (r) {\n return r.pipe(t ? Object(Rt.a)(function (e, n) {\n return t(e, n, r);\n }) : he.a, Ft(1), n ? st(e) : Tt(function () {\n return new Nt.a();\n }));\n };\n }\n\n var fe = n(68);\n\n function pe() {\n return function (t) {\n return t.lift(new be());\n };\n }\n\n var be = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ye(t));\n }, t;\n }(),\n ye = function (t) {\n function e() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {}, e;\n }(p.a);\n\n function ge() {\n return function (t) {\n return t.lift(new me());\n };\n }\n\n var me = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ve(t));\n }, t;\n }(),\n ve = function (t) {\n function e(e) {\n return t.call(this, e) || this;\n }\n\n return r.a(e, t), e.prototype.notifyComplete = function (t) {\n var e = this.destination;\n e.next(t), e.complete();\n }, e.prototype._next = function (t) {\n this.notifyComplete(!1);\n }, e.prototype._complete = function () {\n this.notifyComplete(!0);\n }, e;\n }(p.a);\n\n function we(t) {\n return function (e) {\n return 0 === t ? Object(Bt.b)() : e.lift(new _e(t));\n };\n }\n\n var _e = function () {\n function t(t) {\n if (this.total = t, this.total < 0) throw new jt.a();\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Se(t, this.total));\n }, t;\n }(),\n Se = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.total = n, r.ring = new Array(), r.count = 0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.ring,\n n = this.total,\n r = this.count++;\n e.length < n ? e.push(t) : e[r % n] = t;\n }, e.prototype._complete = function () {\n var t = this.destination,\n e = this.count;\n if (e > 0) for (var n = this.count >= this.total ? this.total : this.count, r = this.ring, i = 0; i < n; i++) {\n var o = e++ % n;\n t.next(r[o]);\n }\n t.complete();\n }, e;\n }(p.a);\n\n function Ee(t, e) {\n var n = arguments.length >= 2;\n return function (r) {\n return r.pipe(t ? Object(Rt.a)(function (e, n) {\n return t(e, n, r);\n }) : he.a, we(1), n ? st(e) : Tt(function () {\n return new Nt.a();\n }));\n };\n }\n\n function Me(t) {\n return function (e) {\n return e.lift(new xe(t));\n };\n }\n\n var xe = function () {\n function t(t) {\n this.value = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ke(t, this.value));\n }, t;\n }(),\n ke = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.value = n, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.destination.next(this.value);\n }, e;\n }(p.a);\n\n function Ce() {\n return function (t) {\n return t.lift(new Ae());\n };\n }\n\n var Ae = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Ie(t));\n }, t;\n }(),\n Ie = function (t) {\n function e(e) {\n return t.call(this, e) || this;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.destination.next(lt.a.createNext(t));\n }, e.prototype._error = function (t) {\n var e = this.destination;\n e.next(lt.a.createError(t)), e.complete();\n }, e.prototype._complete = function () {\n var t = this.destination;\n t.next(lt.a.createComplete()), t.complete();\n }, e;\n }(p.a);\n\n function Oe(t, e) {\n var n = !1;\n return arguments.length >= 2 && (n = !0), function (r) {\n return r.lift(new je(t, e, n));\n };\n }\n\n var je = function () {\n function t(t, e, n) {\n void 0 === n && (n = !1), this.accumulator = t, this.seed = e, this.hasSeed = n;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Re(t, this.accumulator, this.seed, this.hasSeed));\n }, t;\n }(),\n Re = function (t) {\n function e(e, n, r, i) {\n var o = t.call(this, e) || this;\n return o.accumulator = n, o._seed = r, o.hasSeed = i, o.index = 0, o;\n }\n\n return r.a(e, t), Object.defineProperty(e.prototype, \"seed\", {\n get: function get() {\n return this._seed;\n },\n set: function set(t) {\n this.hasSeed = !0, this._seed = t;\n },\n enumerable: !0,\n configurable: !0\n }), e.prototype._next = function (t) {\n if (this.hasSeed) return this._tryNext(t);\n this.seed = t, this.destination.next(t);\n }, e.prototype._tryNext = function (t) {\n var e,\n n = this.index++;\n\n try {\n e = this.accumulator(this.seed, t, n);\n } catch (t) {\n this.destination.error(t);\n }\n\n this.seed = e, this.destination.next(e);\n }, e;\n }(p.a),\n Ne = n(41);\n\n function Te(t, e) {\n return arguments.length >= 2 ? function (n) {\n return Object(Ne.a)(Oe(t, e), we(1), st(e))(n);\n } : function (e) {\n return Object(Ne.a)(Oe(function (e, n, r) {\n return t(e, n, r + 1);\n }), we(1))(e);\n };\n }\n\n function Pe(t) {\n return Te(\"function\" == typeof t ? function (e, n) {\n return t(e, n) > 0 ? e : n;\n } : function (t, e) {\n return t > e ? t : e;\n });\n }\n\n var Le = n(76);\n\n function De() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return function (e) {\n return e.lift.call(Le.a.apply(void 0, [e].concat(t)));\n };\n }\n\n var Be = n(52);\n\n function Fe(t, e, n) {\n return void 0 === n && (n = Number.POSITIVE_INFINITY), \"function\" == typeof e ? Object(G.b)(function () {\n return t;\n }, e, n) : (\"number\" == typeof e && (n = e), Object(G.b)(function () {\n return t;\n }, n));\n }\n\n function Ue(t, e, n) {\n return void 0 === n && (n = Number.POSITIVE_INFINITY), function (r) {\n return r.lift(new We(t, e, n));\n };\n }\n\n var We = function () {\n function t(t, e, n) {\n this.accumulator = t, this.seed = e, this.concurrent = n;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new He(t, this.accumulator, this.seed, this.concurrent));\n }, t;\n }(),\n He = function (t) {\n function e(e, n, r, i) {\n var o = t.call(this, e) || this;\n return o.accumulator = n, o.acc = r, o.concurrent = i, o.hasValue = !1, o.hasCompleted = !1, o.buffer = [], o.active = 0, o.index = 0, o;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n if (this.active < this.concurrent) {\n var e = this.index++,\n n = this.destination,\n r = void 0;\n\n try {\n r = (0, this.accumulator)(this.acc, t, e);\n } catch (t) {\n return n.error(t);\n }\n\n this.active++, this._innerSub(r);\n } else this.buffer.push(t);\n }, e.prototype._innerSub = function (t) {\n var e = new i.a(this),\n n = this.destination;\n n.add(e);\n var r = Object(i.c)(t, e);\n r !== e && n.add(r);\n }, e.prototype._complete = function () {\n this.hasCompleted = !0, 0 === this.active && 0 === this.buffer.length && (!1 === this.hasValue && this.destination.next(this.acc), this.destination.complete()), this.unsubscribe();\n }, e.prototype.notifyNext = function (t) {\n var e = this.destination;\n this.acc = t, this.hasValue = !0, e.next(t);\n }, e.prototype.notifyComplete = function () {\n var t = this.buffer;\n this.active--, t.length > 0 ? this._next(t.shift()) : 0 === this.active && this.hasCompleted && (!1 === this.hasValue && this.destination.next(this.acc), this.destination.complete());\n }, e;\n }(i.b);\n\n function ze(t) {\n return Te(\"function\" == typeof t ? function (e, n) {\n return t(e, n) < 0 ? e : n;\n } : function (t, e) {\n return t < e ? t : e;\n });\n }\n\n var Ve = n(71);\n\n function qe(t, e) {\n return function (n) {\n var r;\n if (r = \"function\" == typeof t ? t : function () {\n return t;\n }, \"function\" == typeof e) return n.lift(new Ze(r, e));\n var i = Object.create(n, Ve.b);\n return i.source = n, i.subjectFactory = r, i;\n };\n }\n\n var Ze = function () {\n function t(t, e) {\n this.subjectFactory = t, this.selector = e;\n }\n\n return t.prototype.call = function (t, e) {\n var n = this.selector,\n r = this.subjectFactory(),\n i = n(r).subscribe(t);\n return i.add(e.subscribe(r)), i;\n }, t;\n }(),\n Ge = n(73);\n\n function Ye() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return 1 === t.length && Object(W.a)(t[0]) && (t = t[0]), function (e) {\n return e.lift(new $e(t));\n };\n }\n\n var $e = function () {\n function t(t) {\n this.nextSources = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Je(t, this.nextSources));\n }, t;\n }(),\n Je = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.destination = e, r.nextSources = n, r;\n }\n\n return r.a(e, t), e.prototype.notifyError = function () {\n this.subscribeToNextSource();\n }, e.prototype.notifyComplete = function () {\n this.subscribeToNextSource();\n }, e.prototype._error = function (t) {\n this.subscribeToNextSource(), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.subscribeToNextSource(), this.unsubscribe();\n }, e.prototype.subscribeToNextSource = function () {\n var t = this.nextSources.shift();\n\n if (t) {\n var e = new i.a(this),\n n = this.destination;\n n.add(e);\n var r = Object(i.c)(t, e);\n r !== e && n.add(r);\n } else this.destination.complete();\n }, e;\n }(i.b);\n\n function Qe() {\n return function (t) {\n return t.lift(new Ke());\n };\n }\n\n var Ke = function () {\n function t() {}\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Xe(t));\n }, t;\n }(),\n Xe = function (t) {\n function e(e) {\n var n = t.call(this, e) || this;\n return n.hasPrev = !1, n;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e;\n this.hasPrev ? e = [this.prev, t] : this.hasPrev = !0, this.prev = t, e && this.destination.next(e);\n }, e;\n }(p.a),\n tn = n(84);\n\n function en(t, e) {\n return function (n) {\n return [Object(Rt.a)(t, e)(n), Object(Rt.a)(Object(tn.a)(t, e))(n)];\n };\n }\n\n function nn() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = t.length;\n if (0 === n) throw new Error(\"list of properties cannot be empty.\");\n return function (e) {\n return Object(Qt.a)(rn(t, n))(e);\n };\n }\n\n function rn(t, e) {\n return function (n) {\n for (var r = n, i = 0; i < e; i++) {\n var o = null != r ? r[t[i]] : void 0;\n if (void 0 === o) return;\n r = o;\n }\n\n return r;\n };\n }\n\n var on = n(6);\n\n function sn(t) {\n return t ? qe(function () {\n return new on.a();\n }, t) : qe(new on.a());\n }\n\n var an = n(72);\n\n function un(t) {\n return function (e) {\n return qe(new an.a(t))(e);\n };\n }\n\n var cn = n(31);\n\n function ln() {\n return function (t) {\n return qe(new cn.a())(t);\n };\n }\n\n var hn = n(49);\n\n function dn(t, e, n, r) {\n n && \"function\" != typeof n && (r = n);\n var i = \"function\" == typeof n ? n : void 0,\n o = new hn.a(t, e, r);\n return function (t) {\n return qe(function () {\n return o;\n }, i)(t);\n };\n }\n\n var fn = n(77);\n\n function pn() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return function (e) {\n return 1 === t.length && Object(W.a)(t[0]) && (t = t[0]), e.lift.call(fn.a.apply(void 0, [e].concat(t)));\n };\n }\n\n function bn(t) {\n return void 0 === t && (t = -1), function (e) {\n return 0 === t ? Object(Bt.b)() : t < 0 ? e.lift(new yn(-1, e)) : e.lift(new yn(t - 1, e));\n };\n }\n\n var yn = function () {\n function t(t, e) {\n this.count = t, this.source = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new gn(t, this.count, this.source));\n }, t;\n }(),\n gn = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.count = n, i.source = r, i;\n }\n\n return r.a(e, t), e.prototype.complete = function () {\n if (!this.isStopped) {\n var e = this.source,\n n = this.count;\n if (0 === n) return t.prototype.complete.call(this);\n n > -1 && (this.count = n - 1), e.subscribe(this._unsubscribeAndRecycle());\n }\n }, e;\n }(p.a);\n\n function mn(t) {\n return function (e) {\n return e.lift(new vn(t));\n };\n }\n\n var vn = function () {\n function t(t) {\n this.notifier = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new wn(t, this.notifier, e));\n }, t;\n }(),\n wn = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.notifier = n, i.source = r, i.sourceIsBeingSubscribedTo = !0, i;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function () {\n this.sourceIsBeingSubscribedTo = !0, this.source.subscribe(this);\n }, e.prototype.notifyComplete = function () {\n if (!1 === this.sourceIsBeingSubscribedTo) return t.prototype.complete.call(this);\n }, e.prototype.complete = function () {\n if (this.sourceIsBeingSubscribedTo = !1, !this.isStopped) {\n if (this.retries || this.subscribeToRetries(), !this.retriesSubscription || this.retriesSubscription.closed) return t.prototype.complete.call(this);\n this._unsubscribeAndRecycle(), this.notifications.next(void 0);\n }\n }, e.prototype._unsubscribe = function () {\n var t = this.notifications,\n e = this.retriesSubscription;\n t && (t.unsubscribe(), this.notifications = void 0), e && (e.unsubscribe(), this.retriesSubscription = void 0), this.retries = void 0;\n }, e.prototype._unsubscribeAndRecycle = function () {\n var e = this._unsubscribe;\n return this._unsubscribe = null, t.prototype._unsubscribeAndRecycle.call(this), this._unsubscribe = e, this;\n }, e.prototype.subscribeToRetries = function () {\n var e;\n this.notifications = new on.a();\n\n try {\n e = (0, this.notifier)(this.notifications);\n } catch (e) {\n return t.prototype.complete.call(this);\n }\n\n this.retries = e, this.retriesSubscription = Object(i.c)(e, new i.a(this));\n }, e;\n }(i.b);\n\n function _n(t) {\n return void 0 === t && (t = -1), function (e) {\n return e.lift(new Sn(t, e));\n };\n }\n\n var Sn = function () {\n function t(t, e) {\n this.count = t, this.source = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new En(t, this.count, this.source));\n }, t;\n }(),\n En = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.count = n, i.source = r, i;\n }\n\n return r.a(e, t), e.prototype.error = function (e) {\n if (!this.isStopped) {\n var n = this.source,\n r = this.count;\n if (0 === r) return t.prototype.error.call(this, e);\n r > -1 && (this.count = r - 1), n.subscribe(this._unsubscribeAndRecycle());\n }\n }, e;\n }(p.a);\n\n function Mn(t) {\n return function (e) {\n return e.lift(new xn(t, e));\n };\n }\n\n var xn = function () {\n function t(t, e) {\n this.notifier = t, this.source = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new kn(t, this.notifier, this.source));\n }, t;\n }(),\n kn = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.notifier = n, i.source = r, i;\n }\n\n return r.a(e, t), e.prototype.error = function (e) {\n if (!this.isStopped) {\n var n = this.errors,\n r = this.retries,\n o = this.retriesSubscription;\n if (r) this.errors = void 0, this.retriesSubscription = void 0;else {\n n = new on.a();\n\n try {\n r = (0, this.notifier)(n);\n } catch (e) {\n return t.prototype.error.call(this, e);\n }\n\n o = Object(i.c)(r, new i.a(this));\n }\n this._unsubscribeAndRecycle(), this.errors = n, this.retries = r, this.retriesSubscription = o, n.next(e);\n }\n }, e.prototype._unsubscribe = function () {\n var t = this.errors,\n e = this.retriesSubscription;\n t && (t.unsubscribe(), this.errors = void 0), e && (e.unsubscribe(), this.retriesSubscription = void 0), this.retries = void 0;\n }, e.prototype.notifyNext = function () {\n var t = this._unsubscribe;\n this._unsubscribe = null, this._unsubscribeAndRecycle(), this._unsubscribe = t, this.source.subscribe(this);\n }, e;\n }(i.b),\n Cn = n(48);\n\n function An(t) {\n return function (e) {\n return e.lift(new In(t));\n };\n }\n\n var In = function () {\n function t(t) {\n this.notifier = t;\n }\n\n return t.prototype.call = function (t, e) {\n var n = new On(t),\n r = e.subscribe(n);\n return r.add(Object(i.c)(this.notifier, new i.a(n))), r;\n }, t;\n }(),\n On = function (t) {\n function e() {\n var e = null !== t && t.apply(this, arguments) || this;\n return e.hasValue = !1, e;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.value = t, this.hasValue = !0;\n }, e.prototype.notifyNext = function () {\n this.emitValue();\n }, e.prototype.notifyComplete = function () {\n this.emitValue();\n }, e.prototype.emitValue = function () {\n this.hasValue && (this.hasValue = !1, this.destination.next(this.value));\n }, e;\n }(i.b);\n\n function jn(t, e) {\n return void 0 === e && (e = u.a), function (n) {\n return n.lift(new Rn(t, e));\n };\n }\n\n var Rn = function () {\n function t(t, e) {\n this.period = t, this.scheduler = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Nn(t, this.period, this.scheduler));\n }, t;\n }(),\n Nn = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.period = n, i.scheduler = r, i.hasValue = !1, i.add(r.schedule(Tn, n, {\n subscriber: i,\n period: n\n })), i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.lastValue = t, this.hasValue = !0;\n }, e.prototype.notifyNext = function () {\n this.hasValue && (this.hasValue = !1, this.destination.next(this.lastValue));\n }, e;\n }(p.a);\n\n function Tn(t) {\n var e = t.subscriber,\n n = t.period;\n e.notifyNext(), this.schedule(t, n);\n }\n\n function Pn(t, e) {\n return function (n) {\n return n.lift(new Ln(t, e));\n };\n }\n\n var Ln = function () {\n function t(t, e) {\n this.compareTo = t, this.comparator = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Dn(t, this.compareTo, this.comparator));\n }, t;\n }(),\n Dn = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.compareTo = n, i.comparator = r, i._a = [], i._b = [], i._oneComplete = !1, i.destination.add(n.subscribe(new Bn(e, i))), i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this._oneComplete && 0 === this._b.length ? this.emit(!1) : (this._a.push(t), this.checkValues());\n }, e.prototype._complete = function () {\n this._oneComplete ? this.emit(0 === this._a.length && 0 === this._b.length) : this._oneComplete = !0, this.unsubscribe();\n }, e.prototype.checkValues = function () {\n for (var t = this._a, e = this._b, n = this.comparator; t.length > 0 && e.length > 0;) {\n var r = t.shift(),\n i = e.shift(),\n o = !1;\n\n try {\n o = n ? n(r, i) : r === i;\n } catch (t) {\n this.destination.error(t);\n }\n\n o || this.emit(!1);\n }\n }, e.prototype.emit = function (t) {\n var e = this.destination;\n e.next(t), e.complete();\n }, e.prototype.nextB = function (t) {\n this._oneComplete && 0 === this._a.length ? this.emit(!1) : (this._b.push(t), this.checkValues());\n }, e.prototype.completeB = function () {\n this._oneComplete ? this.emit(0 === this._a.length && 0 === this._b.length) : this._oneComplete = !0;\n }, e;\n }(p.a),\n Bn = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.parent = n, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.parent.nextB(t);\n }, e.prototype._error = function (t) {\n this.parent.error(t), this.unsubscribe();\n }, e.prototype._complete = function () {\n this.parent.completeB(), this.unsubscribe();\n }, e;\n }(p.a);\n\n function Fn() {\n return new on.a();\n }\n\n function Un() {\n return function (t) {\n return Object(Cn.a)()(qe(Fn)(t));\n };\n }\n\n function Wn(t, e, n) {\n var r;\n return r = t && \"object\" == _typeof(t) ? t : {\n bufferSize: t,\n windowTime: e,\n refCount: !1,\n scheduler: n\n }, function (t) {\n return t.lift(function (t) {\n var e,\n n,\n r = t.bufferSize,\n i = void 0 === r ? Number.POSITIVE_INFINITY : r,\n o = t.windowTime,\n s = void 0 === o ? Number.POSITIVE_INFINITY : o,\n a = t.refCount,\n u = t.scheduler,\n c = 0,\n l = !1,\n h = !1;\n return function (t) {\n var r;\n c++, !e || l ? (l = !1, e = new hn.a(i, s, u), r = e.subscribe(this), n = t.subscribe({\n next: function next(t) {\n e.next(t);\n },\n error: function error(t) {\n l = !0, e.error(t);\n },\n complete: function complete() {\n h = !0, n = void 0, e.complete();\n }\n }), h && (n = void 0)) : r = e.subscribe(this), this.add(function () {\n c--, r.unsubscribe(), r = void 0, n && !h && a && 0 === c && (n.unsubscribe(), n = void 0, e = void 0);\n });\n };\n }(r));\n };\n }\n\n function Hn(t) {\n return function (e) {\n return e.lift(new zn(t, e));\n };\n }\n\n var zn = function () {\n function t(t, e) {\n this.predicate = t, this.source = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Vn(t, this.predicate, this.source));\n }, t;\n }(),\n Vn = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.predicate = n, i.source = r, i.seenValue = !1, i.index = 0, i;\n }\n\n return r.a(e, t), e.prototype.applySingleValue = function (t) {\n this.seenValue ? this.destination.error(\"Sequence contains more than one element\") : (this.seenValue = !0, this.singleValue = t);\n }, e.prototype._next = function (t) {\n var e = this.index++;\n this.predicate ? this.tryNext(t, e) : this.applySingleValue(t);\n }, e.prototype.tryNext = function (t, e) {\n try {\n this.predicate(t, e, this.source) && this.applySingleValue(t);\n } catch (t) {\n this.destination.error(t);\n }\n }, e.prototype._complete = function () {\n var t = this.destination;\n this.index > 0 ? (t.next(this.seenValue ? this.singleValue : void 0), t.complete()) : t.error(new Nt.a());\n }, e;\n }(p.a);\n\n function qn(t) {\n return function (e) {\n return e.lift(new Zn(t));\n };\n }\n\n var Zn = function () {\n function t(t) {\n this.total = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Gn(t, this.total));\n }, t;\n }(),\n Gn = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.total = n, r.count = 0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n ++this.count > this.total && this.destination.next(t);\n }, e;\n }(p.a);\n\n function Yn(t) {\n return function (e) {\n return e.lift(new $n(t));\n };\n }\n\n var $n = function () {\n function t(t) {\n if (this._skipCount = t, this._skipCount < 0) throw new jt.a();\n }\n\n return t.prototype.call = function (t, e) {\n return 0 === this._skipCount ? e.subscribe(new p.a(t)) : e.subscribe(new Jn(t, this._skipCount));\n }, t;\n }(),\n Jn = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r._skipCount = n, r._count = 0, r._ring = new Array(n), r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this._skipCount,\n n = this._count++;\n if (n < e) this._ring[n] = t;else {\n var r = n % e,\n i = this._ring,\n o = i[r];\n i[r] = t, this.destination.next(o);\n }\n }, e;\n }(p.a);\n\n function Qn(t) {\n return function (e) {\n return e.lift(new Kn(t));\n };\n }\n\n var Kn = function () {\n function t(t) {\n this.notifier = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Xn(t, this.notifier));\n }, t;\n }(),\n Xn = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n r.hasValue = !1;\n var o = new i.a(r);\n r.add(o), r.innerSubscription = o;\n var s = Object(i.c)(n, o);\n return s !== o && (r.add(s), r.innerSubscription = s), r;\n }\n\n return r.a(e, t), e.prototype._next = function (e) {\n this.hasValue && t.prototype._next.call(this, e);\n }, e.prototype.notifyNext = function () {\n this.hasValue = !0, this.innerSubscription && this.innerSubscription.unsubscribe();\n }, e.prototype.notifyComplete = function () {}, e;\n }(i.b);\n\n function tr(t) {\n return function (e) {\n return e.lift(new er(t));\n };\n }\n\n var er = function () {\n function t(t) {\n this.predicate = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new nr(t, this.predicate));\n }, t;\n }(),\n nr = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.predicate = n, r.skipping = !0, r.index = 0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.destination;\n this.skipping && this.tryCallPredicate(t), this.skipping || e.next(t);\n }, e.prototype.tryCallPredicate = function (t) {\n try {\n var e = this.predicate(t, this.index++);\n this.skipping = Boolean(e);\n } catch (t) {\n this.destination.error(t);\n }\n }, e;\n }(p.a);\n\n function rr() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n var n = t[t.length - 1];\n return Object(v.a)(n) ? (t.pop(), function (e) {\n return Object(V.a)(t, e, n);\n }) : function (e) {\n return Object(V.a)(t, e);\n };\n }\n\n var ir = n(42),\n or = n(33),\n sr = function (t) {\n function e(e, n, r) {\n void 0 === n && (n = 0), void 0 === r && (r = ir.a);\n var i = t.call(this) || this;\n return i.source = e, i.delayTime = n, i.scheduler = r, (!Object(or.a)(n) || n < 0) && (i.delayTime = 0), r && \"function\" == typeof r.schedule || (i.scheduler = ir.a), i;\n }\n\n return r.a(e, t), e.create = function (t, n, r) {\n return void 0 === n && (n = 0), void 0 === r && (r = ir.a), new e(t, n, r);\n }, e.dispatch = function (t) {\n var e = t.source,\n n = t.subscriber;\n return this.add(e.subscribe(n));\n }, e.prototype._subscribe = function (t) {\n var n = this.delayTime,\n r = this.source;\n return this.scheduler.schedule(e.dispatch, n, {\n source: r,\n subscriber: t\n });\n }, e;\n }(bt.a);\n\n function ar(t, e) {\n return void 0 === e && (e = 0), function (n) {\n return n.lift(new ur(t, e));\n };\n }\n\n var ur = function () {\n function t(t, e) {\n this.scheduler = t, this.delay = e;\n }\n\n return t.prototype.call = function (t, e) {\n return new sr(e, this.delay, this.scheduler).subscribe(t);\n }, t;\n }();\n\n function cr(t, e) {\n return \"function\" == typeof e ? function (n) {\n return n.pipe(cr(function (n, r) {\n return Object(H.a)(t(n, r)).pipe(Object(Qt.a)(function (t, i) {\n return e(n, t, r, i);\n }));\n }));\n } : function (e) {\n return e.lift(new lr(t));\n };\n }\n\n var lr = function () {\n function t(t) {\n this.project = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new hr(t, this.project));\n }, t;\n }(),\n hr = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.project = n, r.index = 0, r;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e,\n n = this.index++;\n\n try {\n e = this.project(t, n);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this._innerSub(e);\n }, e.prototype._innerSub = function (t) {\n var e = this.innerSubscription;\n e && e.unsubscribe();\n var n = new i.a(this),\n r = this.destination;\n r.add(n), this.innerSubscription = Object(i.c)(t, n), this.innerSubscription !== n && r.add(this.innerSubscription);\n }, e.prototype._complete = function () {\n var e = this.innerSubscription;\n e && !e.closed || t.prototype._complete.call(this), this.unsubscribe();\n }, e.prototype._unsubscribe = function () {\n this.innerSubscription = void 0;\n }, e.prototype.notifyComplete = function () {\n this.innerSubscription = void 0, this.isStopped && t.prototype._complete.call(this);\n }, e.prototype.notifyNext = function (t) {\n this.destination.next(t);\n }, e;\n }(i.b);\n\n function dr() {\n return cr(he.a);\n }\n\n function fr(t, e) {\n return e ? cr(function () {\n return t;\n }, e) : cr(function () {\n return t;\n });\n }\n\n function pr(t) {\n return function (e) {\n return e.lift(new br(t));\n };\n }\n\n var br = function () {\n function t(t) {\n this.notifier = t;\n }\n\n return t.prototype.call = function (t, e) {\n var n = new yr(t),\n r = Object(i.c)(this.notifier, new i.a(n));\n return r && !n.seenValue ? (n.add(r), e.subscribe(n)) : n;\n }, t;\n }(),\n yr = function (t) {\n function e(e) {\n var n = t.call(this, e) || this;\n return n.seenValue = !1, n;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function () {\n this.seenValue = !0, this.complete();\n }, e.prototype.notifyComplete = function () {}, e;\n }(i.b);\n\n function gr(t, e) {\n return void 0 === e && (e = !1), function (n) {\n return n.lift(new mr(t, e));\n };\n }\n\n var mr = function () {\n function t(t, e) {\n this.predicate = t, this.inclusive = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new vr(t, this.predicate, this.inclusive));\n }, t;\n }(),\n vr = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.predicate = n, i.inclusive = r, i.index = 0, i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e,\n n = this.destination;\n\n try {\n e = this.predicate(t, this.index++);\n } catch (t) {\n return void n.error(t);\n }\n\n this.nextOrComplete(t, e);\n }, e.prototype.nextOrComplete = function (t, e) {\n var n = this.destination;\n Boolean(e) ? n.next(t) : (this.inclusive && n.next(t), n.complete());\n }, e;\n }(p.a),\n wr = n(21),\n _r = n(26);\n\n function Sr(t, e, n) {\n return function (r) {\n return r.lift(new Er(t, e, n));\n };\n }\n\n var Er = function () {\n function t(t, e, n) {\n this.nextOrObserver = t, this.error = e, this.complete = n;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Mr(t, this.nextOrObserver, this.error, this.complete));\n }, t;\n }(),\n Mr = function (t) {\n function e(e, n, r, i) {\n var o = t.call(this, e) || this;\n return o._tapNext = wr.a, o._tapError = wr.a, o._tapComplete = wr.a, o._tapError = r || wr.a, o._tapComplete = i || wr.a, Object(_r.a)(n) ? (o._context = o, o._tapNext = n) : n && (o._context = n, o._tapNext = n.next || wr.a, o._tapError = n.error || wr.a, o._tapComplete = n.complete || wr.a), o;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n try {\n this._tapNext.call(this._context, t);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.destination.next(t);\n }, e.prototype._error = function (t) {\n try {\n this._tapError.call(this._context, t);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.destination.error(t);\n }, e.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n return this.destination.complete();\n }, e;\n }(p.a),\n xr = {\n leading: !0,\n trailing: !1\n };\n\n function kr(t, e) {\n return void 0 === e && (e = xr), function (n) {\n return n.lift(new Cr(t, !!e.leading, !!e.trailing));\n };\n }\n\n var Cr = function () {\n function t(t, e, n) {\n this.durationSelector = t, this.leading = e, this.trailing = n;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Ar(t, this.durationSelector, this.leading, this.trailing));\n }, t;\n }(),\n Ar = function (t) {\n function e(e, n, r, i) {\n var o = t.call(this, e) || this;\n return o.destination = e, o.durationSelector = n, o._leading = r, o._trailing = i, o._hasValue = !1, o;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this._hasValue = !0, this._sendValue = t, this._throttled || (this._leading ? this.send() : this.throttle(t));\n }, e.prototype.send = function () {\n var t = this._hasValue,\n e = this._sendValue;\n t && (this.destination.next(e), this.throttle(e)), this._hasValue = !1, this._sendValue = void 0;\n }, e.prototype.throttle = function (t) {\n var e = this.tryDurationSelector(t);\n e && this.add(this._throttled = Object(i.c)(e, new i.a(this)));\n }, e.prototype.tryDurationSelector = function (t) {\n try {\n return this.durationSelector(t);\n } catch (t) {\n return this.destination.error(t), null;\n }\n }, e.prototype.throttlingDone = function () {\n var t = this._throttled,\n e = this._trailing;\n t && t.unsubscribe(), this._throttled = void 0, e && this.send();\n }, e.prototype.notifyNext = function () {\n this.throttlingDone();\n }, e.prototype.notifyComplete = function () {\n this.throttlingDone();\n }, e;\n }(i.b);\n\n function Ir(t, e, n) {\n return void 0 === e && (e = u.a), void 0 === n && (n = xr), function (r) {\n return r.lift(new Or(t, e, n.leading, n.trailing));\n };\n }\n\n var Or = function () {\n function t(t, e, n, r) {\n this.duration = t, this.scheduler = e, this.leading = n, this.trailing = r;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new jr(t, this.duration, this.scheduler, this.leading, this.trailing));\n }, t;\n }(),\n jr = function (t) {\n function e(e, n, r, i, o) {\n var s = t.call(this, e) || this;\n return s.duration = n, s.scheduler = r, s.leading = i, s.trailing = o, s._hasTrailingValue = !1, s._trailingValue = null, s;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n this.throttled ? this.trailing && (this._trailingValue = t, this._hasTrailingValue = !0) : (this.add(this.throttled = this.scheduler.schedule(Rr, this.duration, {\n subscriber: this\n })), this.leading ? this.destination.next(t) : this.trailing && (this._trailingValue = t, this._hasTrailingValue = !0));\n }, e.prototype._complete = function () {\n this._hasTrailingValue ? (this.destination.next(this._trailingValue), this.destination.complete()) : this.destination.complete();\n }, e.prototype.clearThrottle = function () {\n var t = this.throttled;\n t && (this.trailing && this._hasTrailingValue && (this.destination.next(this._trailingValue), this._trailingValue = null, this._hasTrailingValue = !1), t.unsubscribe(), this.remove(t), this.throttled = null);\n }, e;\n }(p.a);\n\n function Rr(t) {\n t.subscriber.clearThrottle();\n }\n\n var Nr = n(53);\n\n function Tr(t) {\n return void 0 === t && (t = u.a), function (e) {\n return Object(Nr.a)(function () {\n return e.pipe(Oe(function (e, n) {\n var r = e.current;\n return {\n value: n,\n current: t.now(),\n last: r\n };\n }, {\n current: t.now(),\n value: void 0,\n last: void 0\n }), Object(Qt.a)(function (t) {\n var e = t.current,\n n = t.last,\n r = t.value;\n return new Pr(r, e - n);\n }));\n });\n };\n }\n\n var Pr = function () {\n return function (t, e) {\n this.value = t, this.interval = e;\n };\n }(),\n Lr = n(74);\n\n function Dr(t, e, n) {\n return void 0 === n && (n = u.a), function (r) {\n var i = ct(t),\n o = i ? +t - n.now() : Math.abs(t);\n return r.lift(new Br(o, i, e, n));\n };\n }\n\n var Br = function () {\n function t(t, e, n, r) {\n this.waitFor = t, this.absoluteTimeout = e, this.withObservable = n, this.scheduler = r;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Fr(t, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n }, t;\n }(),\n Fr = function (t) {\n function e(e, n, r, i, o) {\n var s = t.call(this, e) || this;\n return s.absoluteTimeout = n, s.waitFor = r, s.withObservable = i, s.scheduler = o, s.scheduleTimeout(), s;\n }\n\n return r.a(e, t), e.dispatchTimeout = function (t) {\n var e = t.withObservable;\n t._unsubscribeAndRecycle(), t.add(Object(i.c)(e, new i.a(t)));\n }, e.prototype.scheduleTimeout = function () {\n var t = this.action;\n t ? this.action = t.schedule(this, this.waitFor) : this.add(this.action = this.scheduler.schedule(e.dispatchTimeout, this.waitFor, this));\n }, e.prototype._next = function (e) {\n this.absoluteTimeout || this.scheduleTimeout(), t.prototype._next.call(this, e);\n }, e.prototype._unsubscribe = function () {\n this.action = void 0, this.scheduler = null, this.withObservable = null;\n }, e;\n }(i.b),\n Ur = n(50);\n\n function Wr(t, e) {\n return void 0 === e && (e = u.a), Dr(t, Object(Ur.a)(new Lr.a()), e);\n }\n\n function Hr(t) {\n return void 0 === t && (t = u.a), Object(Qt.a)(function (e) {\n return new zr(e, t.now());\n });\n }\n\n var zr = function () {\n return function (t, e) {\n this.value = t, this.timestamp = e;\n };\n }();\n\n function Vr(t, e, n) {\n return 0 === n ? [e] : (t.push(e), t);\n }\n\n function qr() {\n return Te(Vr, []);\n }\n\n function Zr(t) {\n return function (e) {\n return e.lift(new Gr(t));\n };\n }\n\n var Gr = function () {\n function t(t) {\n this.windowBoundaries = t;\n }\n\n return t.prototype.call = function (t, e) {\n var n = new Yr(t),\n r = e.subscribe(n);\n return r.closed || n.add(Object(i.c)(this.windowBoundaries, new i.a(n))), r;\n }, t;\n }(),\n Yr = function (t) {\n function e(e) {\n var n = t.call(this, e) || this;\n return n.window = new on.a(), e.next(n.window), n;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function () {\n this.openWindow();\n }, e.prototype.notifyError = function (t) {\n this._error(t);\n }, e.prototype.notifyComplete = function () {\n this._complete();\n }, e.prototype._next = function (t) {\n this.window.next(t);\n }, e.prototype._error = function (t) {\n this.window.error(t), this.destination.error(t);\n }, e.prototype._complete = function () {\n this.window.complete(), this.destination.complete();\n }, e.prototype._unsubscribe = function () {\n this.window = null;\n }, e.prototype.openWindow = function () {\n var t = this.window;\n t && t.complete();\n var e = this.destination,\n n = this.window = new on.a();\n e.next(n);\n }, e;\n }(i.b);\n\n function $r(t, e) {\n return void 0 === e && (e = 0), function (n) {\n return n.lift(new Jr(t, e));\n };\n }\n\n var Jr = function () {\n function t(t, e) {\n this.windowSize = t, this.startWindowEvery = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new Qr(t, this.windowSize, this.startWindowEvery));\n }, t;\n }(),\n Qr = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.destination = e, i.windowSize = n, i.startWindowEvery = r, i.windows = [new on.a()], i.count = 0, e.next(i.windows[0]), i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n for (var e = this.startWindowEvery > 0 ? this.startWindowEvery : this.windowSize, n = this.destination, r = this.windowSize, i = this.windows, o = i.length, s = 0; s < o && !this.closed; s++) {\n i[s].next(t);\n }\n\n var a = this.count - r + 1;\n\n if (a >= 0 && a % e == 0 && !this.closed && i.shift().complete(), ++this.count % e == 0 && !this.closed) {\n var u = new on.a();\n i.push(u), n.next(u);\n }\n }, e.prototype._error = function (t) {\n var e = this.windows;\n if (e) for (; e.length > 0 && !this.closed;) {\n e.shift().error(t);\n }\n this.destination.error(t);\n }, e.prototype._complete = function () {\n var t = this.windows;\n if (t) for (; t.length > 0 && !this.closed;) {\n t.shift().complete();\n }\n this.destination.complete();\n }, e.prototype._unsubscribe = function () {\n this.count = 0, this.windows = null;\n }, e;\n }(p.a);\n\n function Kr(t) {\n var e = u.a,\n n = null,\n r = Number.POSITIVE_INFINITY;\n return Object(v.a)(arguments[3]) && (e = arguments[3]), Object(v.a)(arguments[2]) ? e = arguments[2] : Object(or.a)(arguments[2]) && (r = Number(arguments[2])), Object(v.a)(arguments[1]) ? e = arguments[1] : Object(or.a)(arguments[1]) && (n = Number(arguments[1])), function (i) {\n return i.lift(new Xr(t, n, r, e));\n };\n }\n\n var Xr = function () {\n function t(t, e, n, r) {\n this.windowTimeSpan = t, this.windowCreationInterval = e, this.maxWindowSize = n, this.scheduler = r;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ei(t, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n }, t;\n }(),\n ti = function (t) {\n function e() {\n var e = null !== t && t.apply(this, arguments) || this;\n return e._numberOfNextedValues = 0, e;\n }\n\n return r.a(e, t), e.prototype.next = function (e) {\n this._numberOfNextedValues++, t.prototype.next.call(this, e);\n }, Object.defineProperty(e.prototype, \"numberOfNextedValues\", {\n get: function get() {\n return this._numberOfNextedValues;\n },\n enumerable: !0,\n configurable: !0\n }), e;\n }(on.a),\n ei = function (t) {\n function e(e, n, r, i, o) {\n var s = t.call(this, e) || this;\n s.destination = e, s.windowTimeSpan = n, s.windowCreationInterval = r, s.maxWindowSize = i, s.scheduler = o, s.windows = [];\n var a = s.openWindow();\n\n if (null !== r && r >= 0) {\n var u = {\n subscriber: s,\n window: a,\n context: null\n },\n c = {\n windowTimeSpan: n,\n windowCreationInterval: r,\n subscriber: s,\n scheduler: o\n };\n s.add(o.schedule(ii, n, u)), s.add(o.schedule(ri, r, c));\n } else {\n var l = {\n subscriber: s,\n window: a,\n windowTimeSpan: n\n };\n s.add(o.schedule(ni, n, l));\n }\n\n return s;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n for (var e = this.windows, n = e.length, r = 0; r < n; r++) {\n var i = e[r];\n i.closed || (i.next(t), i.numberOfNextedValues >= this.maxWindowSize && this.closeWindow(i));\n }\n }, e.prototype._error = function (t) {\n for (var e = this.windows; e.length > 0;) {\n e.shift().error(t);\n }\n\n this.destination.error(t);\n }, e.prototype._complete = function () {\n for (var t = this.windows; t.length > 0;) {\n var e = t.shift();\n e.closed || e.complete();\n }\n\n this.destination.complete();\n }, e.prototype.openWindow = function () {\n var t = new ti();\n return this.windows.push(t), this.destination.next(t), t;\n }, e.prototype.closeWindow = function (t) {\n t.complete();\n var e = this.windows;\n e.splice(e.indexOf(t), 1);\n }, e;\n }(p.a);\n\n function ni(t) {\n var e = t.subscriber,\n n = t.windowTimeSpan,\n r = t.window;\n r && e.closeWindow(r), t.window = e.openWindow(), this.schedule(t, n);\n }\n\n function ri(t) {\n var e = t.windowTimeSpan,\n n = t.subscriber,\n r = t.scheduler,\n i = t.windowCreationInterval,\n o = n.openWindow(),\n s = {\n action: this,\n subscription: null\n },\n a = {\n subscriber: n,\n window: o,\n context: s\n };\n s.subscription = r.schedule(ii, e, a), this.add(s.subscription), this.schedule(t, i);\n }\n\n function ii(t) {\n var e = t.subscriber,\n n = t.window,\n r = t.context;\n r && r.action && r.subscription && r.action.remove(r.subscription), e.closeWindow(n);\n }\n\n function oi(t, e) {\n return function (n) {\n return n.lift(new si(t, e));\n };\n }\n\n var si = function () {\n function t(t, e) {\n this.openings = t, this.closingSelector = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new ai(t, this.openings, this.closingSelector));\n }, t;\n }(),\n ai = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n return i.openings = n, i.closingSelector = r, i.contexts = [], i.add(i.openSubscription = Object(A.a)(i, n, n)), i;\n }\n\n return r.a(e, t), e.prototype._next = function (t) {\n var e = this.contexts;\n if (e) for (var n = e.length, r = 0; r < n; r++) {\n e[r].window.next(t);\n }\n }, e.prototype._error = function (e) {\n var n = this.contexts;\n if (this.contexts = null, n) for (var r = n.length, i = -1; ++i < r;) {\n var o = n[i];\n o.window.error(e), o.subscription.unsubscribe();\n }\n\n t.prototype._error.call(this, e);\n }, e.prototype._complete = function () {\n var e = this.contexts;\n if (this.contexts = null, e) for (var n = e.length, r = -1; ++r < n;) {\n var i = e[r];\n i.window.complete(), i.subscription.unsubscribe();\n }\n\n t.prototype._complete.call(this);\n }, e.prototype._unsubscribe = function () {\n var t = this.contexts;\n if (this.contexts = null, t) for (var e = t.length, n = -1; ++n < e;) {\n var r = t[n];\n r.window.unsubscribe(), r.subscription.unsubscribe();\n }\n }, e.prototype.notifyNext = function (t, e, n, r, i) {\n if (t === this.openings) {\n var o = void 0;\n\n try {\n o = (0, this.closingSelector)(e);\n } catch (t) {\n return this.error(t);\n }\n\n var s = new on.a(),\n a = new C.a(),\n u = {\n window: s,\n subscription: a\n };\n this.contexts.push(u);\n var c = Object(A.a)(this, o, u);\n c.closed ? this.closeWindow(this.contexts.length - 1) : (c.context = u, a.add(c)), this.destination.next(s);\n } else this.closeWindow(this.contexts.indexOf(t));\n }, e.prototype.notifyError = function (t) {\n this.error(t);\n }, e.prototype.notifyComplete = function (t) {\n t !== this.openSubscription && this.closeWindow(this.contexts.indexOf(t.context));\n }, e.prototype.closeWindow = function (t) {\n if (-1 !== t) {\n var e = this.contexts,\n n = e[t],\n r = n.window,\n i = n.subscription;\n e.splice(t, 1), r.complete(), i.unsubscribe();\n }\n }, e;\n }(I.a);\n\n function ui(t) {\n return function (e) {\n return e.lift(new ci(t));\n };\n }\n\n var ci = function () {\n function t(t) {\n this.closingSelector = t;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new li(t, this.closingSelector));\n }, t;\n }(),\n li = function (t) {\n function e(e, n) {\n var r = t.call(this, e) || this;\n return r.destination = e, r.closingSelector = n, r.openWindow(), r;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function (t, e, n, r, i) {\n this.openWindow(i);\n }, e.prototype.notifyError = function (t) {\n this._error(t);\n }, e.prototype.notifyComplete = function (t) {\n this.openWindow(t);\n }, e.prototype._next = function (t) {\n this.window.next(t);\n }, e.prototype._error = function (t) {\n this.window.error(t), this.destination.error(t), this.unsubscribeClosingNotification();\n }, e.prototype._complete = function () {\n this.window.complete(), this.destination.complete(), this.unsubscribeClosingNotification();\n }, e.prototype.unsubscribeClosingNotification = function () {\n this.closingNotification && this.closingNotification.unsubscribe();\n }, e.prototype.openWindow = function (t) {\n void 0 === t && (t = null), t && (this.remove(t), t.unsubscribe());\n var e = this.window;\n e && e.complete();\n var n,\n r = this.window = new on.a();\n this.destination.next(r);\n\n try {\n n = (0, this.closingSelector)();\n } catch (t) {\n return this.destination.error(t), void this.window.error(t);\n }\n\n this.add(this.closingNotification = Object(A.a)(this, n));\n }, e;\n }(I.a);\n\n function hi() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return function (e) {\n var n;\n \"function\" == typeof t[t.length - 1] && (n = t.pop());\n var r = t;\n return e.lift(new di(r, n));\n };\n }\n\n var di = function () {\n function t(t, e) {\n this.observables = t, this.project = e;\n }\n\n return t.prototype.call = function (t, e) {\n return e.subscribe(new fi(t, this.observables, this.project));\n }, t;\n }(),\n fi = function (t) {\n function e(e, n, r) {\n var i = t.call(this, e) || this;\n i.observables = n, i.project = r, i.toRespond = [];\n var o = n.length;\n i.values = new Array(o);\n\n for (var s = 0; s < o; s++) {\n i.toRespond.push(s);\n }\n\n for (s = 0; s < o; s++) {\n var a = n[s];\n i.add(Object(A.a)(i, a, void 0, s));\n }\n\n return i;\n }\n\n return r.a(e, t), e.prototype.notifyNext = function (t, e, n) {\n this.values[n] = e;\n var r = this.toRespond;\n\n if (r.length > 0) {\n var i = r.indexOf(n);\n -1 !== i && r.splice(i, 1);\n }\n }, e.prototype.notifyComplete = function () {}, e.prototype._next = function (t) {\n if (0 === this.toRespond.length) {\n var e = [t].concat(this.values);\n this.project ? this._tryProject(e) : this.destination.next(e);\n }\n }, e.prototype._tryProject = function (t) {\n var e;\n\n try {\n e = this.project.apply(this, t);\n } catch (t) {\n return void this.destination.error(t);\n }\n\n this.destination.next(e);\n }, e;\n }(I.a),\n pi = n(54);\n\n function bi() {\n for (var t = [], e = 0; e < arguments.length; e++) {\n t[e] = arguments[e];\n }\n\n return function (e) {\n return e.lift.call(pi.b.apply(void 0, [e].concat(t)));\n };\n }\n\n function yi(t) {\n return function (e) {\n return e.lift(new pi.a(t));\n };\n }\n}, function (t, e, n) {\n \"use strict\";\n\n (function (t) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CoinbaseWalletSDK = void 0;\n var r = n(126),\n i = n(127),\n o = n(86),\n s = n(192),\n a = n(219),\n u = n(231),\n c = n(38),\n l = t.env.LINK_API_URL || \"https://www.walletlink.org\",\n h = t.env.SDK_VERSION || n(232).version || \"unknown\";\n\n var d = /*#__PURE__*/function () {\n function d(t) {\n _classCallCheck(this, d);\n\n var e, n, r;\n this._appName = \"\", this._appLogoUrl = null, this._relay = null, this._relayEventManager = null;\n var o = t.linkAPIUrl || l;\n var c;\n if (c = t.uiConstructor ? t.uiConstructor : function (t) {\n return new s.WalletSDKUI(t);\n }, void 0 === t.overrideIsMetaMask ? this._overrideIsMetaMask = !1 : this._overrideIsMetaMask = t.overrideIsMetaMask, this._overrideIsCoinbaseWallet = null === (e = t.overrideIsCoinbaseWallet) || void 0 === e || e, this._overrideIsCoinbaseBrowser = null !== (n = t.overrideIsCoinbaseBrowser) && void 0 !== n && n, t.diagnosticLogger && t.eventListener) throw new Error(\"Can't have both eventListener and diagnosticLogger options, use only diagnosticLogger\");\n t.eventListener ? this._diagnosticLogger = {\n log: t.eventListener.onEvent\n } : this._diagnosticLogger = t.diagnosticLogger, this._reloadOnDisconnect = null === (r = t.reloadOnDisconnect) || void 0 === r || r;\n var f = new URL(o),\n p = \"\".concat(f.protocol, \"//\").concat(f.host);\n this._storage = new i.ScopedLocalStorage(\"-walletlink:\" + p), this._storage.setItem(\"version\", d.VERSION), this.walletExtension || this.coinbaseBrowser || (this._relayEventManager = new u.WalletSDKRelayEventManager(), this._relay = new a.WalletSDKRelay({\n linkAPIUrl: o,\n version: h,\n darkMode: !!t.darkMode,\n uiConstructor: c,\n storage: this._storage,\n relayEventManager: this._relayEventManager,\n diagnosticLogger: this._diagnosticLogger,\n reloadOnDisconnect: this._reloadOnDisconnect\n }), this.setAppInfo(t.appName, t.appLogoUrl), t.headlessMode || this._relay.attachUI());\n }\n\n _createClass(d, [{\n key: \"makeWeb3Provider\",\n value: function makeWeb3Provider() {\n var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var n = this.walletExtension;\n if (n) return this.isCipherProvider(n) || n.setProviderInfo(t, e), !1 === this._reloadOnDisconnect && \"function\" == typeof n.disableReloadOnDisconnect && n.disableReloadOnDisconnect(), n;\n var r = this.coinbaseBrowser;\n if (r) return r;\n var i = this._relay;\n if (!i || !this._relayEventManager || !this._storage) throw new Error(\"Relay not initialized, should never happen\");\n return t || i.setConnectDisabled(!0), new o.CoinbaseWalletProvider({\n relayProvider: function relayProvider() {\n return Promise.resolve(i);\n },\n relayEventManager: this._relayEventManager,\n storage: this._storage,\n jsonRpcUrl: t,\n chainId: e,\n qrUrl: this.getQrUrl(),\n diagnosticLogger: this._diagnosticLogger,\n overrideIsMetaMask: this._overrideIsMetaMask,\n overrideIsCoinbaseWallet: this._overrideIsCoinbaseWallet,\n overrideIsCoinbaseBrowser: this._overrideIsCoinbaseBrowser\n });\n }\n }, {\n key: \"setAppInfo\",\n value: function setAppInfo(t, e) {\n var n;\n this._appName = t || \"DApp\", this._appLogoUrl = e || (0, c.getFavicon)();\n var r = this.walletExtension;\n r ? this.isCipherProvider(r) || r.setAppInfo(this._appName, this._appLogoUrl) : null === (n = this._relay) || void 0 === n || n.setAppInfo(this._appName, this._appLogoUrl);\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n var t;\n var e = this.walletExtension;\n e ? e.close() : null === (t = this._relay) || void 0 === t || t.resetAndReload();\n }\n }, {\n key: \"getQrUrl\",\n value: function getQrUrl() {\n var t, e;\n return null !== (e = null === (t = this._relay) || void 0 === t ? void 0 : t.getQRCodeUrl()) && void 0 !== e ? e : null;\n }\n }, {\n key: \"getCoinbaseWalletLogo\",\n value: function getCoinbaseWalletLogo(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 240;\n return (0, r.walletLogo)(t, e);\n }\n }, {\n key: \"walletExtension\",\n get: function get() {\n var t;\n return null !== (t = window.coinbaseWalletExtension) && void 0 !== t ? t : window.walletLinkExtension;\n }\n }, {\n key: \"coinbaseBrowser\",\n get: function get() {\n var t, e;\n\n try {\n var _n11 = null !== (t = window.ethereum) && void 0 !== t ? t : null === (e = window.top) || void 0 === e ? void 0 : e.ethereum;\n\n if (!_n11) return;\n return \"isCoinbaseBrowser\" in _n11 && _n11.isCoinbaseBrowser ? _n11 : void 0;\n } catch (t) {\n return;\n }\n }\n }, {\n key: \"isCipherProvider\",\n value: function isCipherProvider(t) {\n return \"boolean\" == typeof t.isCipher && t.isCipher;\n }\n }]);\n\n return d;\n }();\n\n e.CoinbaseWalletSDK = d, d.VERSION = h;\n }).call(this, n(40));\n}, function (t, e) {\n t.exports = o, o.default = o, o.stable = u, o.stableStringify = u;\n var n = [],\n r = [];\n\n function i() {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n };\n }\n\n function o(t, e, o, a) {\n var u;\n void 0 === a && (a = i()), function t(e, n, r, i, o, a, u) {\n var c;\n\n if (a += 1, \"object\" == _typeof(e) && null !== e) {\n for (c = 0; c < i.length; c++) {\n if (i[c] === e) return void s(\"[Circular]\", e, n, o);\n }\n\n if (void 0 !== u.depthLimit && a > u.depthLimit) return void s(\"[...]\", e, n, o);\n if (void 0 !== u.edgesLimit && r + 1 > u.edgesLimit) return void s(\"[...]\", e, n, o);\n if (i.push(e), Array.isArray(e)) for (c = 0; c < e.length; c++) {\n t(e[c], c, c, i, e, a, u);\n } else {\n var l = Object.keys(e);\n\n for (c = 0; c < l.length; c++) {\n var h = l[c];\n t(e[h], h, c, i, e, a, u);\n }\n }\n i.pop();\n }\n }(t, \"\", 0, [], void 0, 0, a);\n\n try {\n u = 0 === r.length ? JSON.stringify(t, e, o) : JSON.stringify(t, c(e), o);\n } catch (t) {\n return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\");\n } finally {\n for (; 0 !== n.length;) {\n var l = n.pop();\n 4 === l.length ? Object.defineProperty(l[0], l[1], l[3]) : l[0][l[1]] = l[2];\n }\n }\n\n return u;\n }\n\n function s(t, e, i, o) {\n var s = Object.getOwnPropertyDescriptor(o, i);\n void 0 !== s.get ? s.configurable ? (Object.defineProperty(o, i, {\n value: t\n }), n.push([o, i, e, s])) : r.push([e, i, t]) : (o[i] = t, n.push([o, i, e]));\n }\n\n function a(t, e) {\n return t < e ? -1 : t > e ? 1 : 0;\n }\n\n function u(t, e, o, u) {\n void 0 === u && (u = i());\n\n var l,\n h = function t(e, r, i, o, u, c, l) {\n var h;\n\n if (c += 1, \"object\" == _typeof(e) && null !== e) {\n for (h = 0; h < o.length; h++) {\n if (o[h] === e) return void s(\"[Circular]\", e, r, u);\n }\n\n try {\n if (\"function\" == typeof e.toJSON) return;\n } catch (t) {\n return;\n }\n\n if (void 0 !== l.depthLimit && c > l.depthLimit) return void s(\"[...]\", e, r, u);\n if (void 0 !== l.edgesLimit && i + 1 > l.edgesLimit) return void s(\"[...]\", e, r, u);\n if (o.push(e), Array.isArray(e)) for (h = 0; h < e.length; h++) {\n t(e[h], h, h, o, e, c, l);\n } else {\n var d = {},\n f = Object.keys(e).sort(a);\n\n for (h = 0; h < f.length; h++) {\n var p = f[h];\n t(e[p], p, h, o, e, c, l), d[p] = e[p];\n }\n\n if (void 0 === u) return d;\n n.push([u, r, e]), u[r] = d;\n }\n o.pop();\n }\n }(t, \"\", 0, [], void 0, 0, u) || t;\n\n try {\n l = 0 === r.length ? JSON.stringify(h, e, o) : JSON.stringify(h, c(e), o);\n } catch (t) {\n return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\");\n } finally {\n for (; 0 !== n.length;) {\n var d = n.pop();\n 4 === d.length ? Object.defineProperty(d[0], d[1], d[3]) : d[0][d[1]] = d[2];\n }\n }\n\n return l;\n }\n\n function c(t) {\n return t = void 0 !== t ? t : function (t, e) {\n return e;\n }, function (e, n) {\n if (r.length > 0) for (var i = 0; i < r.length; i++) {\n var o = r[i];\n\n if (o[1] === e && o[0] === n) {\n n = o[2], r.splice(i, 1);\n break;\n }\n }\n return t.call(this, e, n);\n };\n }\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.serializeError = e.isValidCode = e.getMessageFromCode = e.JSON_RPC_SERVER_ERROR_MESSAGE = void 0;\n var r = n(89),\n i = n(88),\n o = r.errorCodes.rpc.internal,\n s = {\n code: o,\n message: a(o)\n };\n\n function a(t) {\n var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Unspecified error message. This is a bug, please report it.\";\n\n if (Number.isInteger(t)) {\n var _n12 = t.toString();\n\n if (h(r.errorValues, _n12)) return r.errorValues[_n12].message;\n if (c(t)) return e.JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n\n return n;\n }\n\n function u(t) {\n if (!Number.isInteger(t)) return !1;\n var e = t.toString();\n return !!r.errorValues[e] || !!c(t);\n }\n\n function c(t) {\n return t >= -32099 && t <= -32e3;\n }\n\n function l(t) {\n return t && \"object\" == _typeof(t) && !Array.isArray(t) ? Object.assign({}, t) : t;\n }\n\n function h(t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }\n\n e.JSON_RPC_SERVER_ERROR_MESSAGE = \"Unspecified server error.\", e.getMessageFromCode = a, e.isValidCode = u, e.serializeError = function (t) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref5$fallbackError = _ref5.fallbackError,\n e = _ref5$fallbackError === void 0 ? s : _ref5$fallbackError,\n _ref5$shouldIncludeSt = _ref5.shouldIncludeStack,\n n = _ref5$shouldIncludeSt === void 0 ? !1 : _ref5$shouldIncludeSt;\n\n var r, o;\n if (!e || !Number.isInteger(e.code) || \"string\" != typeof e.message) throw new Error(\"Must provide fallback error with integer number code and string message.\");\n if (t instanceof i.EthereumRpcError) return t.serialize();\n var c = {};\n\n if (t && \"object\" == _typeof(t) && !Array.isArray(t) && h(t, \"code\") && u(t.code)) {\n var _e6 = t;\n c.code = _e6.code, _e6.message && \"string\" == typeof _e6.message ? (c.message = _e6.message, h(_e6, \"data\") && (c.data = _e6.data)) : (c.message = a(c.code), c.data = {\n originalError: l(t)\n });\n } else {\n c.code = e.code;\n\n var _n13 = null === (r = t) || void 0 === r ? void 0 : r.message;\n\n c.message = _n13 && \"string\" == typeof _n13 ? _n13 : e.message, c.data = {\n originalError: l(t)\n };\n }\n\n var d = null === (o = t) || void 0 === o ? void 0 : o.stack;\n return n && t && d && \"string\" == typeof d && (c.stack = d), c;\n };\n}, function (t, e, n) {\n var r = n(24),\n i = n(45),\n o = n(37).Buffer,\n s = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298],\n a = new Array(64);\n\n function u() {\n this.init(), this._w = a, i.call(this, 64, 56);\n }\n\n function c(t, e, n) {\n return n ^ t & (e ^ n);\n }\n\n function l(t, e, n) {\n return t & e | n & (t | e);\n }\n\n function h(t) {\n return (t >>> 2 | t << 30) ^ (t >>> 13 | t << 19) ^ (t >>> 22 | t << 10);\n }\n\n function d(t) {\n return (t >>> 6 | t << 26) ^ (t >>> 11 | t << 21) ^ (t >>> 25 | t << 7);\n }\n\n function f(t) {\n return (t >>> 7 | t << 25) ^ (t >>> 18 | t << 14) ^ t >>> 3;\n }\n\n r(u, i), u.prototype.init = function () {\n return this._a = 1779033703, this._b = 3144134277, this._c = 1013904242, this._d = 2773480762, this._e = 1359893119, this._f = 2600822924, this._g = 528734635, this._h = 1541459225, this;\n }, u.prototype._update = function (t) {\n for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, o = 0 | this._c, a = 0 | this._d, u = 0 | this._e, p = 0 | this._f, b = 0 | this._g, y = 0 | this._h, g = 0; g < 16; ++g) {\n n[g] = t.readInt32BE(4 * g);\n }\n\n for (; g < 64; ++g) {\n n[g] = 0 | (((e = n[g - 2]) >>> 17 | e << 15) ^ (e >>> 19 | e << 13) ^ e >>> 10) + n[g - 7] + f(n[g - 15]) + n[g - 16];\n }\n\n for (var m = 0; m < 64; ++m) {\n var v = y + d(u) + c(u, p, b) + s[m] + n[m] | 0,\n w = h(r) + l(r, i, o) | 0;\n y = b, b = p, p = u, u = a + v | 0, a = o, o = i, i = r, r = v + w | 0;\n }\n\n this._a = r + this._a | 0, this._b = i + this._b | 0, this._c = o + this._c | 0, this._d = a + this._d | 0, this._e = u + this._e | 0, this._f = p + this._f | 0, this._g = b + this._g | 0, this._h = y + this._h | 0;\n }, u.prototype._hash = function () {\n var t = o.allocUnsafe(32);\n return t.writeInt32BE(this._a, 0), t.writeInt32BE(this._b, 4), t.writeInt32BE(this._c, 8), t.writeInt32BE(this._d, 12), t.writeInt32BE(this._e, 16), t.writeInt32BE(this._f, 20), t.writeInt32BE(this._g, 24), t.writeInt32BE(this._h, 28), t;\n }, t.exports = u;\n}, function (t, e, n) {\n var r = n(24),\n i = n(45),\n o = n(37).Buffer,\n s = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, 987167468, 1816402316, 1246189591],\n a = new Array(160);\n\n function u() {\n this.init(), this._w = a, i.call(this, 128, 112);\n }\n\n function c(t, e, n) {\n return n ^ t & (e ^ n);\n }\n\n function l(t, e, n) {\n return t & e | n & (t | e);\n }\n\n function h(t, e) {\n return (t >>> 28 | e << 4) ^ (e >>> 2 | t << 30) ^ (e >>> 7 | t << 25);\n }\n\n function d(t, e) {\n return (t >>> 14 | e << 18) ^ (t >>> 18 | e << 14) ^ (e >>> 9 | t << 23);\n }\n\n function f(t, e) {\n return (t >>> 1 | e << 31) ^ (t >>> 8 | e << 24) ^ t >>> 7;\n }\n\n function p(t, e) {\n return (t >>> 1 | e << 31) ^ (t >>> 8 | e << 24) ^ (t >>> 7 | e << 25);\n }\n\n function b(t, e) {\n return (t >>> 19 | e << 13) ^ (e >>> 29 | t << 3) ^ t >>> 6;\n }\n\n function y(t, e) {\n return (t >>> 19 | e << 13) ^ (e >>> 29 | t << 3) ^ (t >>> 6 | e << 26);\n }\n\n function g(t, e) {\n return t >>> 0 < e >>> 0 ? 1 : 0;\n }\n\n r(u, i), u.prototype.init = function () {\n return this._ah = 1779033703, this._bh = 3144134277, this._ch = 1013904242, this._dh = 2773480762, this._eh = 1359893119, this._fh = 2600822924, this._gh = 528734635, this._hh = 1541459225, this._al = 4089235720, this._bl = 2227873595, this._cl = 4271175723, this._dl = 1595750129, this._el = 2917565137, this._fl = 725511199, this._gl = 4215389547, this._hl = 327033209, this;\n }, u.prototype._update = function (t) {\n for (var e = this._w, n = 0 | this._ah, r = 0 | this._bh, i = 0 | this._ch, o = 0 | this._dh, a = 0 | this._eh, u = 0 | this._fh, m = 0 | this._gh, v = 0 | this._hh, w = 0 | this._al, _ = 0 | this._bl, S = 0 | this._cl, E = 0 | this._dl, M = 0 | this._el, x = 0 | this._fl, k = 0 | this._gl, C = 0 | this._hl, A = 0; A < 32; A += 2) {\n e[A] = t.readInt32BE(4 * A), e[A + 1] = t.readInt32BE(4 * A + 4);\n }\n\n for (; A < 160; A += 2) {\n var I = e[A - 30],\n O = e[A - 30 + 1],\n j = f(I, O),\n R = p(O, I),\n N = b(I = e[A - 4], O = e[A - 4 + 1]),\n T = y(O, I),\n P = e[A - 14],\n L = e[A - 14 + 1],\n D = e[A - 32],\n B = e[A - 32 + 1],\n F = R + L | 0,\n U = j + P + g(F, R) | 0;\n U = (U = U + N + g(F = F + T | 0, T) | 0) + D + g(F = F + B | 0, B) | 0, e[A] = U, e[A + 1] = F;\n }\n\n for (var W = 0; W < 160; W += 2) {\n U = e[W], F = e[W + 1];\n var H = l(n, r, i),\n z = l(w, _, S),\n V = h(n, w),\n q = h(w, n),\n Z = d(a, M),\n G = d(M, a),\n Y = s[W],\n $ = s[W + 1],\n J = c(a, u, m),\n Q = c(M, x, k),\n K = C + G | 0,\n X = v + Z + g(K, C) | 0;\n X = (X = (X = X + J + g(K = K + Q | 0, Q) | 0) + Y + g(K = K + $ | 0, $) | 0) + U + g(K = K + F | 0, F) | 0;\n var tt = q + z | 0,\n et = V + H + g(tt, q) | 0;\n v = m, C = k, m = u, k = x, u = a, x = M, a = o + X + g(M = E + K | 0, E) | 0, o = i, E = S, i = r, S = _, r = n, _ = w, n = X + et + g(w = K + tt | 0, K) | 0;\n }\n\n this._al = this._al + w | 0, this._bl = this._bl + _ | 0, this._cl = this._cl + S | 0, this._dl = this._dl + E | 0, this._el = this._el + M | 0, this._fl = this._fl + x | 0, this._gl = this._gl + k | 0, this._hl = this._hl + C | 0, this._ah = this._ah + n + g(this._al, w) | 0, this._bh = this._bh + r + g(this._bl, _) | 0, this._ch = this._ch + i + g(this._cl, S) | 0, this._dh = this._dh + o + g(this._dl, E) | 0, this._eh = this._eh + a + g(this._el, M) | 0, this._fh = this._fh + u + g(this._fl, x) | 0, this._gh = this._gh + m + g(this._gl, k) | 0, this._hh = this._hh + v + g(this._hl, C) | 0;\n }, u.prototype._hash = function () {\n var t = o.allocUnsafe(64);\n\n function e(e, n, r) {\n t.writeInt32BE(e, r), t.writeInt32BE(n, r + 4);\n }\n\n return e(this._ah, this._al, 0), e(this._bh, this._bl, 8), e(this._ch, this._cl, 16), e(this._dh, this._dl, 24), e(this._eh, this._el, 32), e(this._fh, this._fl, 40), e(this._gh, this._gl, 48), e(this._hh, this._hl, 56), t;\n }, t.exports = u;\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(94),\n i = Object.prototype.hasOwnProperty,\n o = Array.isArray,\n s = function () {\n for (var t = [], e = 0; e < 256; ++e) {\n t.push(\"%\" + ((e < 16 ? \"0\" : \"\") + e.toString(16)).toUpperCase());\n }\n\n return t;\n }(),\n a = function a(t, e) {\n for (var n = e && e.plainObjects ? Object.create(null) : {}, r = 0; r < t.length; ++r) {\n void 0 !== t[r] && (n[r] = t[r]);\n }\n\n return n;\n };\n\n t.exports = {\n arrayToObject: a,\n assign: function assign(t, e) {\n return Object.keys(e).reduce(function (t, n) {\n return t[n] = e[n], t;\n }, t);\n },\n combine: function combine(t, e) {\n return [].concat(t, e);\n },\n compact: function compact(t) {\n for (var e = [{\n obj: {\n o: t\n },\n prop: \"o\"\n }], n = [], r = 0; r < e.length; ++r) {\n for (var i = e[r], s = i.obj[i.prop], a = Object.keys(s), u = 0; u < a.length; ++u) {\n var c = a[u],\n l = s[c];\n \"object\" == _typeof(l) && null !== l && -1 === n.indexOf(l) && (e.push({\n obj: s,\n prop: c\n }), n.push(l));\n }\n }\n\n return function (t) {\n for (; t.length > 1;) {\n var e = t.pop(),\n n = e.obj[e.prop];\n\n if (o(n)) {\n for (var r = [], i = 0; i < n.length; ++i) {\n void 0 !== n[i] && r.push(n[i]);\n }\n\n e.obj[e.prop] = r;\n }\n }\n }(e), t;\n },\n decode: function decode(t, e, n) {\n var r = t.replace(/\\+/g, \" \");\n if (\"iso-8859-1\" === n) return r.replace(/%[0-9a-f]{2}/gi, unescape);\n\n try {\n return decodeURIComponent(r);\n } catch (t) {\n return r;\n }\n },\n encode: function encode(t, e, n, i, o) {\n if (0 === t.length) return t;\n var a = t;\n if (\"symbol\" == _typeof(t) ? a = Symbol.prototype.toString.call(t) : \"string\" != typeof t && (a = String(t)), \"iso-8859-1\" === n) return escape(a).replace(/%u[0-9a-f]{4}/gi, function (t) {\n return \"%26%23\" + parseInt(t.slice(2), 16) + \"%3B\";\n });\n\n for (var u = \"\", c = 0; c < a.length; ++c) {\n var l = a.charCodeAt(c);\n 45 === l || 46 === l || 95 === l || 126 === l || l >= 48 && l <= 57 || l >= 65 && l <= 90 || l >= 97 && l <= 122 || o === r.RFC1738 && (40 === l || 41 === l) ? u += a.charAt(c) : l < 128 ? u += s[l] : l < 2048 ? u += s[192 | l >> 6] + s[128 | 63 & l] : l < 55296 || l >= 57344 ? u += s[224 | l >> 12] + s[128 | l >> 6 & 63] + s[128 | 63 & l] : (c += 1, l = 65536 + ((1023 & l) << 10 | 1023 & a.charCodeAt(c)), u += s[240 | l >> 18] + s[128 | l >> 12 & 63] + s[128 | l >> 6 & 63] + s[128 | 63 & l]);\n }\n\n return u;\n },\n isBuffer: function isBuffer(t) {\n return !(!t || \"object\" != _typeof(t)) && !!(t.constructor && t.constructor.isBuffer && t.constructor.isBuffer(t));\n },\n isRegExp: function isRegExp(t) {\n return \"[object RegExp]\" === Object.prototype.toString.call(t);\n },\n maybeMap: function maybeMap(t, e) {\n if (o(t)) {\n for (var n = [], r = 0; r < t.length; r += 1) {\n n.push(e(t[r]));\n }\n\n return n;\n }\n\n return e(t);\n },\n merge: function t(e, n, r) {\n if (!n) return e;\n\n if (\"object\" != _typeof(n)) {\n if (o(e)) e.push(n);else {\n if (!e || \"object\" != _typeof(e)) return [e, n];\n (r && (r.plainObjects || r.allowPrototypes) || !i.call(Object.prototype, n)) && (e[n] = !0);\n }\n return e;\n }\n\n if (!e || \"object\" != _typeof(e)) return [e].concat(n);\n var s = e;\n return o(e) && !o(n) && (s = a(e, r)), o(e) && o(n) ? (n.forEach(function (n, o) {\n if (i.call(e, o)) {\n var s = e[o];\n s && \"object\" == _typeof(s) && n && \"object\" == _typeof(n) ? e[o] = t(s, n, r) : e.push(n);\n } else e[o] = n;\n }), e) : Object.keys(n).reduce(function (e, o) {\n var s = n[o];\n return i.call(e, o) ? e[o] = t(e[o], s, r) : e[o] = s, e;\n }, s);\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WalletSDKRelayAbstract = e.APP_VERSION_KEY = e.LOCAL_STORAGE_ADDRESSES_KEY = e.WALLET_USER_NAME_KEY = void 0;\n var r = n(87);\n e.WALLET_USER_NAME_KEY = \"walletUsername\", e.LOCAL_STORAGE_ADDRESSES_KEY = \"Addresses\", e.APP_VERSION_KEY = \"AppVersion\";\n\n e.WalletSDKRelayAbstract = /*#__PURE__*/function () {\n function _class4() {\n _classCallCheck(this, _class4);\n }\n\n _createClass(_class4, [{\n key: \"makeEthereumJSONRPCRequest\",\n value: function () {\n var _makeEthereumJSONRPCRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee32(t, e) {\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n if (e) {\n _context32.next = 2;\n break;\n }\n\n throw new Error(\"Error: No jsonRpcUrl provided\");\n\n case 2:\n return _context32.abrupt(\"return\", window.fetch(e, {\n method: \"POST\",\n body: JSON.stringify(t),\n mode: \"cors\",\n headers: {\n \"Content-Type\": \"application/json\"\n }\n }).then(function (t) {\n return t.json();\n }).then(function (t) {\n if (!t) throw r.ethErrors.rpc.parse({});\n var e = t,\n n = e.error;\n if (n) throw (0, r.serializeError)(n);\n return e;\n }));\n\n case 3:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }));\n\n function makeEthereumJSONRPCRequest(_x44, _x45) {\n return _makeEthereumJSONRPCRequest.apply(this, arguments);\n }\n\n return makeEthereumJSONRPCRequest;\n }()\n }]);\n\n return _class4;\n }();\n}, function (t, e, n) {\n (function (e) {\n var r = n(153),\n i = n(66);\n\n function o(t) {\n return e.allocUnsafe(t).fill(0);\n }\n\n function s(t, e, n) {\n var r = o(e);\n return t = a(t), n ? t.length < e ? (t.copy(r), r) : t.slice(0, e) : t.length < e ? (t.copy(r, e - t.length), r) : t.slice(-e);\n }\n\n function a(t) {\n if (!e.isBuffer(t)) if (Array.isArray(t)) t = e.from(t);else if (\"string\" == typeof t) t = u(t) ? e.from((n = c(t)).length % 2 ? \"0\" + n : n, \"hex\") : e.from(t);else if (\"number\" == typeof t) t = intToBuffer(t);else if (null == t) t = e.allocUnsafe(0);else if (i.isBN(t)) t = t.toArrayLike(e);else {\n if (!t.toArray) throw new Error(\"invalid type\");\n t = e.from(t.toArray());\n }\n var n;\n return t;\n }\n\n function u(t) {\n return \"string\" == typeof t && t.match(/^0x[0-9A-Fa-f]*$/);\n }\n\n function c(t) {\n return \"string\" == typeof t && t.startsWith(\"0x\") ? t.slice(2) : t;\n }\n\n t.exports = {\n zeros: o,\n setLength: s,\n setLengthRight: function setLengthRight(t, e) {\n return s(t, e, !0);\n },\n isHexString: u,\n stripHexPrefix: c,\n toBuffer: a,\n bufferToHex: function bufferToHex(t) {\n return \"0x\" + (t = a(t)).toString(\"hex\");\n },\n keccak: function keccak(t, e) {\n return t = a(t), e || (e = 256), r(\"keccak\" + e).update(t).digest();\n }\n };\n }).call(this, n(19).Buffer);\n}, function (t, e, n) {\n (e = t.exports = n(111)).Stream = e, e.Readable = e, e.Writable = n(115), e.Duplex = n(47), e.Transform = n(117), e.PassThrough = n(162), e.finished = n(95), e.pipeline = n(163);\n}, function (t, e, n) {\n \"use strict\";\n\n (function (e, r) {\n var i;\n t.exports = x, x.ReadableState = M;\n n(65).EventEmitter;\n\n var o = function o(t, e) {\n return t.listeners(e).length;\n },\n s = n(112),\n a = n(19).Buffer,\n u = (void 0 !== e ? e : \"undefined\" != typeof window ? window : \"undefined\" != typeof self ? self : {}).Uint8Array || function () {};\n\n var c,\n l = n(156);\n c = l && l.debuglog ? l.debuglog(\"stream\") : function () {};\n var h,\n d,\n f,\n p = n(157),\n b = n(113),\n y = n(114).getHighWaterMark,\n g = n(46).codes,\n m = g.ERR_INVALID_ARG_TYPE,\n v = g.ERR_STREAM_PUSH_AFTER_EOF,\n w = g.ERR_METHOD_NOT_IMPLEMENTED,\n _ = g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n n(24)(x, s);\n var S = b.errorOrDestroy,\n E = [\"error\", \"close\", \"destroy\", \"pause\", \"resume\"];\n\n function M(t, e, r) {\n i = i || n(47), t = t || {}, \"boolean\" != typeof r && (r = e instanceof i), this.objectMode = !!t.objectMode, r && (this.objectMode = this.objectMode || !!t.readableObjectMode), this.highWaterMark = y(this, t, \"readableHighWaterMark\", r), this.buffer = new p(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.paused = !0, this.emitClose = !1 !== t.emitClose, this.autoDestroy = !!t.autoDestroy, this.destroyed = !1, this.defaultEncoding = t.defaultEncoding || \"utf8\", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, t.encoding && (h || (h = n(116).StringDecoder), this.decoder = new h(t.encoding), this.encoding = t.encoding);\n }\n\n function x(t) {\n if (i = i || n(47), !(this instanceof x)) return new x(t);\n var e = this instanceof i;\n this._readableState = new M(t, this, e), this.readable = !0, t && (\"function\" == typeof t.read && (this._read = t.read), \"function\" == typeof t.destroy && (this._destroy = t.destroy)), s.call(this);\n }\n\n function k(t, e, n, r, i) {\n c(\"readableAddChunk\", e);\n var o,\n s = t._readableState;\n if (null === e) s.reading = !1, function (t, e) {\n if (c(\"onEofChunk\"), e.ended) return;\n\n if (e.decoder) {\n var n = e.decoder.end();\n n && n.length && (e.buffer.push(n), e.length += e.objectMode ? 1 : n.length);\n }\n\n e.ended = !0, e.sync ? I(t) : (e.needReadable = !1, e.emittedReadable || (e.emittedReadable = !0, O(t)));\n }(t, s);else if (i || (o = function (t, e) {\n var n;\n r = e, a.isBuffer(r) || r instanceof u || \"string\" == typeof e || void 0 === e || t.objectMode || (n = new m(\"chunk\", [\"string\", \"Buffer\", \"Uint8Array\"], e));\n var r;\n return n;\n }(s, e)), o) S(t, o);else if (s.objectMode || e && e.length > 0) {\n if (\"string\" == typeof e || s.objectMode || Object.getPrototypeOf(e) === a.prototype || (e = function (t) {\n return a.from(t);\n }(e)), r) s.endEmitted ? S(t, new _()) : C(t, s, e, !0);else if (s.ended) S(t, new v());else {\n if (s.destroyed) return !1;\n s.reading = !1, s.decoder && !n ? (e = s.decoder.write(e), s.objectMode || 0 !== e.length ? C(t, s, e, !1) : j(t, s)) : C(t, s, e, !1);\n }\n } else r || (s.reading = !1, j(t, s));\n return !s.ended && (s.length < s.highWaterMark || 0 === s.length);\n }\n\n function C(t, e, n, r) {\n e.flowing && 0 === e.length && !e.sync ? (e.awaitDrain = 0, t.emit(\"data\", n)) : (e.length += e.objectMode ? 1 : n.length, r ? e.buffer.unshift(n) : e.buffer.push(n), e.needReadable && I(t)), j(t, e);\n }\n\n Object.defineProperty(x.prototype, \"destroyed\", {\n enumerable: !1,\n get: function get() {\n return void 0 !== this._readableState && this._readableState.destroyed;\n },\n set: function set(t) {\n this._readableState && (this._readableState.destroyed = t);\n }\n }), x.prototype.destroy = b.destroy, x.prototype._undestroy = b.undestroy, x.prototype._destroy = function (t, e) {\n e(t);\n }, x.prototype.push = function (t, e) {\n var n,\n r = this._readableState;\n return r.objectMode ? n = !0 : \"string\" == typeof t && ((e = e || r.defaultEncoding) !== r.encoding && (t = a.from(t, e), e = \"\"), n = !0), k(this, t, e, !1, n);\n }, x.prototype.unshift = function (t) {\n return k(this, t, null, !0, !1);\n }, x.prototype.isPaused = function () {\n return !1 === this._readableState.flowing;\n }, x.prototype.setEncoding = function (t) {\n h || (h = n(116).StringDecoder);\n var e = new h(t);\n this._readableState.decoder = e, this._readableState.encoding = this._readableState.decoder.encoding;\n\n for (var r = this._readableState.buffer.head, i = \"\"; null !== r;) {\n i += e.write(r.data), r = r.next;\n }\n\n return this._readableState.buffer.clear(), \"\" !== i && this._readableState.buffer.push(i), this._readableState.length = i.length, this;\n };\n\n function A(t, e) {\n return t <= 0 || 0 === e.length && e.ended ? 0 : e.objectMode ? 1 : t != t ? e.flowing && e.length ? e.buffer.head.data.length : e.length : (t > e.highWaterMark && (e.highWaterMark = function (t) {\n return t >= 1073741824 ? t = 1073741824 : (t--, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, t |= t >>> 16, t++), t;\n }(t)), t <= e.length ? t : e.ended ? e.length : (e.needReadable = !0, 0));\n }\n\n function I(t) {\n var e = t._readableState;\n c(\"emitReadable\", e.needReadable, e.emittedReadable), e.needReadable = !1, e.emittedReadable || (c(\"emitReadable\", e.flowing), e.emittedReadable = !0, r.nextTick(O, t));\n }\n\n function O(t) {\n var e = t._readableState;\n c(\"emitReadable_\", e.destroyed, e.length, e.ended), e.destroyed || !e.length && !e.ended || (t.emit(\"readable\"), e.emittedReadable = !1), e.needReadable = !e.flowing && !e.ended && e.length <= e.highWaterMark, L(t);\n }\n\n function j(t, e) {\n e.readingMore || (e.readingMore = !0, r.nextTick(R, t, e));\n }\n\n function R(t, e) {\n for (; !e.reading && !e.ended && (e.length < e.highWaterMark || e.flowing && 0 === e.length);) {\n var n = e.length;\n if (c(\"maybeReadMore read 0\"), t.read(0), n === e.length) break;\n }\n\n e.readingMore = !1;\n }\n\n function N(t) {\n var e = t._readableState;\n e.readableListening = t.listenerCount(\"readable\") > 0, e.resumeScheduled && !e.paused ? e.flowing = !0 : t.listenerCount(\"data\") > 0 && t.resume();\n }\n\n function T(t) {\n c(\"readable nexttick read 0\"), t.read(0);\n }\n\n function P(t, e) {\n c(\"resume\", e.reading), e.reading || t.read(0), e.resumeScheduled = !1, t.emit(\"resume\"), L(t), e.flowing && !e.reading && t.read(0);\n }\n\n function L(t) {\n var e = t._readableState;\n\n for (c(\"flow\", e.flowing); e.flowing && null !== t.read();) {\n ;\n }\n }\n\n function D(t, e) {\n return 0 === e.length ? null : (e.objectMode ? n = e.buffer.shift() : !t || t >= e.length ? (n = e.decoder ? e.buffer.join(\"\") : 1 === e.buffer.length ? e.buffer.first() : e.buffer.concat(e.length), e.buffer.clear()) : n = e.buffer.consume(t, e.decoder), n);\n var n;\n }\n\n function B(t) {\n var e = t._readableState;\n c(\"endReadable\", e.endEmitted), e.endEmitted || (e.ended = !0, r.nextTick(F, e, t));\n }\n\n function F(t, e) {\n if (c(\"endReadableNT\", t.endEmitted, t.length), !t.endEmitted && 0 === t.length && (t.endEmitted = !0, e.readable = !1, e.emit(\"end\"), t.autoDestroy)) {\n var n = e._writableState;\n (!n || n.autoDestroy && n.finished) && e.destroy();\n }\n }\n\n function U(t, e) {\n for (var n = 0, r = t.length; n < r; n++) {\n if (t[n] === e) return n;\n }\n\n return -1;\n }\n\n x.prototype.read = function (t) {\n c(\"read\", t), t = parseInt(t, 10);\n var e = this._readableState,\n n = t;\n if (0 !== t && (e.emittedReadable = !1), 0 === t && e.needReadable && ((0 !== e.highWaterMark ? e.length >= e.highWaterMark : e.length > 0) || e.ended)) return c(\"read: emitReadable\", e.length, e.ended), 0 === e.length && e.ended ? B(this) : I(this), null;\n if (0 === (t = A(t, e)) && e.ended) return 0 === e.length && B(this), null;\n var r,\n i = e.needReadable;\n return c(\"need readable\", i), (0 === e.length || e.length - t < e.highWaterMark) && c(\"length less than watermark\", i = !0), e.ended || e.reading ? c(\"reading or ended\", i = !1) : i && (c(\"do read\"), e.reading = !0, e.sync = !0, 0 === e.length && (e.needReadable = !0), this._read(e.highWaterMark), e.sync = !1, e.reading || (t = A(n, e))), null === (r = t > 0 ? D(t, e) : null) ? (e.needReadable = e.length <= e.highWaterMark, t = 0) : (e.length -= t, e.awaitDrain = 0), 0 === e.length && (e.ended || (e.needReadable = !0), n !== t && e.ended && B(this)), null !== r && this.emit(\"data\", r), r;\n }, x.prototype._read = function (t) {\n S(this, new w(\"_read()\"));\n }, x.prototype.pipe = function (t, e) {\n var n = this,\n i = this._readableState;\n\n switch (i.pipesCount) {\n case 0:\n i.pipes = t;\n break;\n\n case 1:\n i.pipes = [i.pipes, t];\n break;\n\n default:\n i.pipes.push(t);\n }\n\n i.pipesCount += 1, c(\"pipe count=%d opts=%j\", i.pipesCount, e);\n var s = (!e || !1 !== e.end) && t !== r.stdout && t !== r.stderr ? u : y;\n\n function a(e, r) {\n c(\"onunpipe\"), e === n && r && !1 === r.hasUnpiped && (r.hasUnpiped = !0, c(\"cleanup\"), t.removeListener(\"close\", p), t.removeListener(\"finish\", b), t.removeListener(\"drain\", l), t.removeListener(\"error\", f), t.removeListener(\"unpipe\", a), n.removeListener(\"end\", u), n.removeListener(\"end\", y), n.removeListener(\"data\", d), h = !0, !i.awaitDrain || t._writableState && !t._writableState.needDrain || l());\n }\n\n function u() {\n c(\"onend\"), t.end();\n }\n\n i.endEmitted ? r.nextTick(s) : n.once(\"end\", s), t.on(\"unpipe\", a);\n\n var l = function (t) {\n return function () {\n var e = t._readableState;\n c(\"pipeOnDrain\", e.awaitDrain), e.awaitDrain && e.awaitDrain--, 0 === e.awaitDrain && o(t, \"data\") && (e.flowing = !0, L(t));\n };\n }(n);\n\n t.on(\"drain\", l);\n var h = !1;\n\n function d(e) {\n c(\"ondata\");\n var r = t.write(e);\n c(\"dest.write\", r), !1 === r && ((1 === i.pipesCount && i.pipes === t || i.pipesCount > 1 && -1 !== U(i.pipes, t)) && !h && (c(\"false write response, pause\", i.awaitDrain), i.awaitDrain++), n.pause());\n }\n\n function f(e) {\n c(\"onerror\", e), y(), t.removeListener(\"error\", f), 0 === o(t, \"error\") && S(t, e);\n }\n\n function p() {\n t.removeListener(\"finish\", b), y();\n }\n\n function b() {\n c(\"onfinish\"), t.removeListener(\"close\", p), y();\n }\n\n function y() {\n c(\"unpipe\"), n.unpipe(t);\n }\n\n return n.on(\"data\", d), function (t, e, n) {\n if (\"function\" == typeof t.prependListener) return t.prependListener(e, n);\n t._events && t._events[e] ? Array.isArray(t._events[e]) ? t._events[e].unshift(n) : t._events[e] = [n, t._events[e]] : t.on(e, n);\n }(t, \"error\", f), t.once(\"close\", p), t.once(\"finish\", b), t.emit(\"pipe\", n), i.flowing || (c(\"pipe resume\"), n.resume()), t;\n }, x.prototype.unpipe = function (t) {\n var e = this._readableState,\n n = {\n hasUnpiped: !1\n };\n if (0 === e.pipesCount) return this;\n if (1 === e.pipesCount) return t && t !== e.pipes || (t || (t = e.pipes), e.pipes = null, e.pipesCount = 0, e.flowing = !1, t && t.emit(\"unpipe\", this, n)), this;\n\n if (!t) {\n var r = e.pipes,\n i = e.pipesCount;\n e.pipes = null, e.pipesCount = 0, e.flowing = !1;\n\n for (var o = 0; o < i; o++) {\n r[o].emit(\"unpipe\", this, {\n hasUnpiped: !1\n });\n }\n\n return this;\n }\n\n var s = U(e.pipes, t);\n return -1 === s || (e.pipes.splice(s, 1), e.pipesCount -= 1, 1 === e.pipesCount && (e.pipes = e.pipes[0]), t.emit(\"unpipe\", this, n)), this;\n }, x.prototype.on = function (t, e) {\n var n = s.prototype.on.call(this, t, e),\n i = this._readableState;\n return \"data\" === t ? (i.readableListening = this.listenerCount(\"readable\") > 0, !1 !== i.flowing && this.resume()) : \"readable\" === t && (i.endEmitted || i.readableListening || (i.readableListening = i.needReadable = !0, i.flowing = !1, i.emittedReadable = !1, c(\"on readable\", i.length, i.reading), i.length ? I(this) : i.reading || r.nextTick(T, this))), n;\n }, x.prototype.addListener = x.prototype.on, x.prototype.removeListener = function (t, e) {\n var n = s.prototype.removeListener.call(this, t, e);\n return \"readable\" === t && r.nextTick(N, this), n;\n }, x.prototype.removeAllListeners = function (t) {\n var e = s.prototype.removeAllListeners.apply(this, arguments);\n return \"readable\" !== t && void 0 !== t || r.nextTick(N, this), e;\n }, x.prototype.resume = function () {\n var t = this._readableState;\n return t.flowing || (c(\"resume\"), t.flowing = !t.readableListening, function (t, e) {\n e.resumeScheduled || (e.resumeScheduled = !0, r.nextTick(P, t, e));\n }(this, t)), t.paused = !1, this;\n }, x.prototype.pause = function () {\n return c(\"call pause flowing=%j\", this._readableState.flowing), !1 !== this._readableState.flowing && (c(\"pause\"), this._readableState.flowing = !1, this.emit(\"pause\")), this._readableState.paused = !0, this;\n }, x.prototype.wrap = function (t) {\n var e = this,\n n = this._readableState,\n r = !1;\n\n for (var i in t.on(\"end\", function () {\n if (c(\"wrapped end\"), n.decoder && !n.ended) {\n var t = n.decoder.end();\n t && t.length && e.push(t);\n }\n\n e.push(null);\n }), t.on(\"data\", function (i) {\n (c(\"wrapped data\"), n.decoder && (i = n.decoder.write(i)), n.objectMode && null == i) || (n.objectMode || i && i.length) && (e.push(i) || (r = !0, t.pause()));\n }), t) {\n void 0 === this[i] && \"function\" == typeof t[i] && (this[i] = function (e) {\n return function () {\n return t[e].apply(t, arguments);\n };\n }(i));\n }\n\n for (var o = 0; o < E.length; o++) {\n t.on(E[o], this.emit.bind(this, E[o]));\n }\n\n return this._read = function (e) {\n c(\"wrapped _read\", e), r && (r = !1, t.resume());\n }, this;\n }, \"function\" == typeof Symbol && (x.prototype[Symbol.asyncIterator] = function () {\n return void 0 === d && (d = n(160)), d(this);\n }), Object.defineProperty(x.prototype, \"readableHighWaterMark\", {\n enumerable: !1,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n }), Object.defineProperty(x.prototype, \"readableBuffer\", {\n enumerable: !1,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n }), Object.defineProperty(x.prototype, \"readableFlowing\", {\n enumerable: !1,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(t) {\n this._readableState && (this._readableState.flowing = t);\n }\n }), x._fromList = D, Object.defineProperty(x.prototype, \"readableLength\", {\n enumerable: !1,\n get: function get() {\n return this._readableState.length;\n }\n }), \"function\" == typeof Symbol && (x.from = function (t, e) {\n return void 0 === f && (f = n(161)), f(x, t, e);\n });\n }).call(this, n(63), n(40));\n}, function (t, e, n) {\n t.exports = n(65).EventEmitter;\n}, function (t, e, n) {\n \"use strict\";\n\n (function (e) {\n function n(t, e) {\n i(t, e), r(t);\n }\n\n function r(t) {\n t._writableState && !t._writableState.emitClose || t._readableState && !t._readableState.emitClose || t.emit(\"close\");\n }\n\n function i(t, e) {\n t.emit(\"error\", e);\n }\n\n t.exports = {\n destroy: function destroy(t, o) {\n var s = this,\n a = this._readableState && this._readableState.destroyed,\n u = this._writableState && this._writableState.destroyed;\n return a || u ? (o ? o(t) : t && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, e.nextTick(i, this, t)) : e.nextTick(i, this, t)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(t || null, function (t) {\n !o && t ? s._writableState ? s._writableState.errorEmitted ? e.nextTick(r, s) : (s._writableState.errorEmitted = !0, e.nextTick(n, s, t)) : e.nextTick(n, s, t) : o ? (e.nextTick(r, s), o(t)) : e.nextTick(r, s);\n }), this);\n },\n undestroy: function undestroy() {\n this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finalCalled = !1, this._writableState.prefinished = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1);\n },\n errorOrDestroy: function errorOrDestroy(t, e) {\n var n = t._readableState,\n r = t._writableState;\n n && n.autoDestroy || r && r.autoDestroy ? t.destroy(e) : t.emit(\"error\", e);\n }\n };\n }).call(this, n(40));\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(46).codes.ERR_INVALID_OPT_VALUE;\n t.exports = {\n getHighWaterMark: function getHighWaterMark(t, e, n, i) {\n var o = function (t, e, n) {\n return null != t.highWaterMark ? t.highWaterMark : e ? t[n] : null;\n }(e, i, n);\n\n if (null != o) {\n if (!isFinite(o) || Math.floor(o) !== o || o < 0) throw new r(i ? n : \"highWaterMark\", o);\n return Math.floor(o);\n }\n\n return t.objectMode ? 16 : 16384;\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n (function (e, r) {\n function i(t) {\n var e = this;\n this.next = null, this.entry = null, this.finish = function () {\n !function (t, e, n) {\n var r = t.entry;\n t.entry = null;\n\n for (; r;) {\n var i = r.callback;\n e.pendingcb--, i(n), r = r.next;\n }\n\n e.corkedRequestsFree.next = t;\n }(e, t);\n };\n }\n\n var o;\n t.exports = x, x.WritableState = M;\n\n var s = {\n deprecate: n(159)\n },\n a = n(112),\n u = n(19).Buffer,\n c = (void 0 !== e ? e : \"undefined\" != typeof window ? window : \"undefined\" != typeof self ? self : {}).Uint8Array || function () {};\n\n var l,\n h = n(113),\n d = n(114).getHighWaterMark,\n f = n(46).codes,\n p = f.ERR_INVALID_ARG_TYPE,\n b = f.ERR_METHOD_NOT_IMPLEMENTED,\n y = f.ERR_MULTIPLE_CALLBACK,\n g = f.ERR_STREAM_CANNOT_PIPE,\n m = f.ERR_STREAM_DESTROYED,\n v = f.ERR_STREAM_NULL_VALUES,\n w = f.ERR_STREAM_WRITE_AFTER_END,\n _ = f.ERR_UNKNOWN_ENCODING,\n S = h.errorOrDestroy;\n\n function E() {}\n\n function M(t, e, s) {\n o = o || n(47), t = t || {}, \"boolean\" != typeof s && (s = e instanceof o), this.objectMode = !!t.objectMode, s && (this.objectMode = this.objectMode || !!t.writableObjectMode), this.highWaterMark = d(this, t, \"writableHighWaterMark\", s), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, this.destroyed = !1;\n var a = !1 === t.decodeStrings;\n this.decodeStrings = !a, this.defaultEncoding = t.defaultEncoding || \"utf8\", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function (t) {\n !function (t, e) {\n var n = t._writableState,\n i = n.sync,\n o = n.writecb;\n if (\"function\" != typeof o) throw new y();\n if (function (t) {\n t.writing = !1, t.writecb = null, t.length -= t.writelen, t.writelen = 0;\n }(n), e) !function (t, e, n, i, o) {\n --e.pendingcb, n ? (r.nextTick(o, i), r.nextTick(j, t, e), t._writableState.errorEmitted = !0, S(t, i)) : (o(i), t._writableState.errorEmitted = !0, S(t, i), j(t, e));\n }(t, n, i, e, o);else {\n var s = I(n) || t.destroyed;\n s || n.corked || n.bufferProcessing || !n.bufferedRequest || A(t, n), i ? r.nextTick(C, t, n, s, o) : C(t, n, s, o);\n }\n }(e, t);\n }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.emitClose = !1 !== t.emitClose, this.autoDestroy = !!t.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new i(this);\n }\n\n function x(t) {\n var e = this instanceof (o = o || n(47));\n if (!e && !l.call(x, this)) return new x(t);\n this._writableState = new M(t, this, e), this.writable = !0, t && (\"function\" == typeof t.write && (this._write = t.write), \"function\" == typeof t.writev && (this._writev = t.writev), \"function\" == typeof t.destroy && (this._destroy = t.destroy), \"function\" == typeof t.final && (this._final = t.final)), a.call(this);\n }\n\n function k(t, e, n, r, i, o, s) {\n e.writelen = r, e.writecb = s, e.writing = !0, e.sync = !0, e.destroyed ? e.onwrite(new m(\"write\")) : n ? t._writev(i, e.onwrite) : t._write(i, o, e.onwrite), e.sync = !1;\n }\n\n function C(t, e, n, r) {\n n || function (t, e) {\n 0 === e.length && e.needDrain && (e.needDrain = !1, t.emit(\"drain\"));\n }(t, e), e.pendingcb--, r(), j(t, e);\n }\n\n function A(t, e) {\n e.bufferProcessing = !0;\n var n = e.bufferedRequest;\n\n if (t._writev && n && n.next) {\n var r = e.bufferedRequestCount,\n o = new Array(r),\n s = e.corkedRequestsFree;\n s.entry = n;\n\n for (var a = 0, u = !0; n;) {\n o[a] = n, n.isBuf || (u = !1), n = n.next, a += 1;\n }\n\n o.allBuffers = u, k(t, e, !0, e.length, o, \"\", s.finish), e.pendingcb++, e.lastBufferedRequest = null, s.next ? (e.corkedRequestsFree = s.next, s.next = null) : e.corkedRequestsFree = new i(e), e.bufferedRequestCount = 0;\n } else {\n for (; n;) {\n var c = n.chunk,\n l = n.encoding,\n h = n.callback;\n if (k(t, e, !1, e.objectMode ? 1 : c.length, c, l, h), n = n.next, e.bufferedRequestCount--, e.writing) break;\n }\n\n null === n && (e.lastBufferedRequest = null);\n }\n\n e.bufferedRequest = n, e.bufferProcessing = !1;\n }\n\n function I(t) {\n return t.ending && 0 === t.length && null === t.bufferedRequest && !t.finished && !t.writing;\n }\n\n function O(t, e) {\n t._final(function (n) {\n e.pendingcb--, n && S(t, n), e.prefinished = !0, t.emit(\"prefinish\"), j(t, e);\n });\n }\n\n function j(t, e) {\n var n = I(e);\n\n if (n && (function (t, e) {\n e.prefinished || e.finalCalled || (\"function\" != typeof t._final || e.destroyed ? (e.prefinished = !0, t.emit(\"prefinish\")) : (e.pendingcb++, e.finalCalled = !0, r.nextTick(O, t, e)));\n }(t, e), 0 === e.pendingcb && (e.finished = !0, t.emit(\"finish\"), e.autoDestroy))) {\n var i = t._readableState;\n (!i || i.autoDestroy && i.endEmitted) && t.destroy();\n }\n\n return n;\n }\n\n n(24)(x, a), M.prototype.getBuffer = function () {\n for (var t = this.bufferedRequest, e = []; t;) {\n e.push(t), t = t.next;\n }\n\n return e;\n }, function () {\n try {\n Object.defineProperty(M.prototype, \"buffer\", {\n get: s.deprecate(function () {\n return this.getBuffer();\n }, \"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\", \"DEP0003\")\n });\n } catch (t) {}\n }(), \"function\" == typeof Symbol && Symbol.hasInstance && \"function\" == typeof Function.prototype[Symbol.hasInstance] ? (l = Function.prototype[Symbol.hasInstance], Object.defineProperty(x, Symbol.hasInstance, {\n value: function value(t) {\n return !!l.call(this, t) || this === x && t && t._writableState instanceof M;\n }\n })) : l = function l(t) {\n return t instanceof this;\n }, x.prototype.pipe = function () {\n S(this, new g());\n }, x.prototype.write = function (t, e, n) {\n var i,\n o = this._writableState,\n s = !1,\n a = !o.objectMode && (i = t, u.isBuffer(i) || i instanceof c);\n return a && !u.isBuffer(t) && (t = function (t) {\n return u.from(t);\n }(t)), \"function\" == typeof e && (n = e, e = null), a ? e = \"buffer\" : e || (e = o.defaultEncoding), \"function\" != typeof n && (n = E), o.ending ? function (t, e) {\n var n = new w();\n S(t, n), r.nextTick(e, n);\n }(this, n) : (a || function (t, e, n, i) {\n var o;\n return null === n ? o = new v() : \"string\" == typeof n || e.objectMode || (o = new p(\"chunk\", [\"string\", \"Buffer\"], n)), !o || (S(t, o), r.nextTick(i, o), !1);\n }(this, o, t, n)) && (o.pendingcb++, s = function (t, e, n, r, i, o) {\n if (!n) {\n var s = function (t, e, n) {\n t.objectMode || !1 === t.decodeStrings || \"string\" != typeof e || (e = u.from(e, n));\n return e;\n }(e, r, i);\n\n r !== s && (n = !0, i = \"buffer\", r = s);\n }\n\n var a = e.objectMode ? 1 : r.length;\n e.length += a;\n var c = e.length < e.highWaterMark;\n c || (e.needDrain = !0);\n\n if (e.writing || e.corked) {\n var l = e.lastBufferedRequest;\n e.lastBufferedRequest = {\n chunk: r,\n encoding: i,\n isBuf: n,\n callback: o,\n next: null\n }, l ? l.next = e.lastBufferedRequest : e.bufferedRequest = e.lastBufferedRequest, e.bufferedRequestCount += 1;\n } else k(t, e, !1, a, r, i, o);\n\n return c;\n }(this, o, a, t, e, n)), s;\n }, x.prototype.cork = function () {\n this._writableState.corked++;\n }, x.prototype.uncork = function () {\n var t = this._writableState;\n t.corked && (t.corked--, t.writing || t.corked || t.bufferProcessing || !t.bufferedRequest || A(this, t));\n }, x.prototype.setDefaultEncoding = function (t) {\n if (\"string\" == typeof t && (t = t.toLowerCase()), !([\"hex\", \"utf8\", \"utf-8\", \"ascii\", \"binary\", \"base64\", \"ucs2\", \"ucs-2\", \"utf16le\", \"utf-16le\", \"raw\"].indexOf((t + \"\").toLowerCase()) > -1)) throw new _(t);\n return this._writableState.defaultEncoding = t, this;\n }, Object.defineProperty(x.prototype, \"writableBuffer\", {\n enumerable: !1,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n }), Object.defineProperty(x.prototype, \"writableHighWaterMark\", {\n enumerable: !1,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n }), x.prototype._write = function (t, e, n) {\n n(new b(\"_write()\"));\n }, x.prototype._writev = null, x.prototype.end = function (t, e, n) {\n var i = this._writableState;\n return \"function\" == typeof t ? (n = t, t = null, e = null) : \"function\" == typeof e && (n = e, e = null), null != t && this.write(t, e), i.corked && (i.corked = 1, this.uncork()), i.ending || function (t, e, n) {\n e.ending = !0, j(t, e), n && (e.finished ? r.nextTick(n) : t.once(\"finish\", n));\n e.ended = !0, t.writable = !1;\n }(this, i, n), this;\n }, Object.defineProperty(x.prototype, \"writableLength\", {\n enumerable: !1,\n get: function get() {\n return this._writableState.length;\n }\n }), Object.defineProperty(x.prototype, \"destroyed\", {\n enumerable: !1,\n get: function get() {\n return void 0 !== this._writableState && this._writableState.destroyed;\n },\n set: function set(t) {\n this._writableState && (this._writableState.destroyed = t);\n }\n }), x.prototype.destroy = h.destroy, x.prototype._undestroy = h.undestroy, x.prototype._destroy = function (t, e) {\n e(t);\n };\n }).call(this, n(63), n(40));\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(37).Buffer,\n i = r.isEncoding || function (t) {\n switch ((t = \"\" + t) && t.toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n case \"raw\":\n return !0;\n\n default:\n return !1;\n }\n };\n\n function o(t) {\n var e;\n\n switch (this.encoding = function (t) {\n var e = function (t) {\n if (!t) return \"utf8\";\n\n for (var e;;) {\n switch (t) {\n case \"utf8\":\n case \"utf-8\":\n return \"utf8\";\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return \"utf16le\";\n\n case \"latin1\":\n case \"binary\":\n return \"latin1\";\n\n case \"base64\":\n case \"ascii\":\n case \"hex\":\n return t;\n\n default:\n if (e) return;\n t = (\"\" + t).toLowerCase(), e = !0;\n }\n }\n }(t);\n\n if (\"string\" != typeof e && (r.isEncoding === i || !i(t))) throw new Error(\"Unknown encoding: \" + t);\n return e || t;\n }(t), this.encoding) {\n case \"utf16le\":\n this.text = u, this.end = c, e = 4;\n break;\n\n case \"utf8\":\n this.fillLast = a, e = 4;\n break;\n\n case \"base64\":\n this.text = l, this.end = h, e = 3;\n break;\n\n default:\n return this.write = d, void (this.end = f);\n }\n\n this.lastNeed = 0, this.lastTotal = 0, this.lastChar = r.allocUnsafe(e);\n }\n\n function s(t) {\n return t <= 127 ? 0 : t >> 5 == 6 ? 2 : t >> 4 == 14 ? 3 : t >> 3 == 30 ? 4 : t >> 6 == 2 ? -1 : -2;\n }\n\n function a(t) {\n var e = this.lastTotal - this.lastNeed,\n n = function (t, e, n) {\n if (128 != (192 & e[0])) return t.lastNeed = 0, \"�\";\n\n if (t.lastNeed > 1 && e.length > 1) {\n if (128 != (192 & e[1])) return t.lastNeed = 1, \"�\";\n if (t.lastNeed > 2 && e.length > 2 && 128 != (192 & e[2])) return t.lastNeed = 2, \"�\";\n }\n }(this, t);\n\n return void 0 !== n ? n : this.lastNeed <= t.length ? (t.copy(this.lastChar, e, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (t.copy(this.lastChar, e, 0, t.length), void (this.lastNeed -= t.length));\n }\n\n function u(t, e) {\n if ((t.length - e) % 2 == 0) {\n var n = t.toString(\"utf16le\", e);\n\n if (n) {\n var r = n.charCodeAt(n.length - 1);\n if (r >= 55296 && r <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = t[t.length - 2], this.lastChar[1] = t[t.length - 1], n.slice(0, -1);\n }\n\n return n;\n }\n\n return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = t[t.length - 1], t.toString(\"utf16le\", e, t.length - 1);\n }\n\n function c(t) {\n var e = t && t.length ? this.write(t) : \"\";\n\n if (this.lastNeed) {\n var n = this.lastTotal - this.lastNeed;\n return e + this.lastChar.toString(\"utf16le\", 0, n);\n }\n\n return e;\n }\n\n function l(t, e) {\n var n = (t.length - e) % 3;\n return 0 === n ? t.toString(\"base64\", e) : (this.lastNeed = 3 - n, this.lastTotal = 3, 1 === n ? this.lastChar[0] = t[t.length - 1] : (this.lastChar[0] = t[t.length - 2], this.lastChar[1] = t[t.length - 1]), t.toString(\"base64\", e, t.length - n));\n }\n\n function h(t) {\n var e = t && t.length ? this.write(t) : \"\";\n return this.lastNeed ? e + this.lastChar.toString(\"base64\", 0, 3 - this.lastNeed) : e;\n }\n\n function d(t) {\n return t.toString(this.encoding);\n }\n\n function f(t) {\n return t && t.length ? this.write(t) : \"\";\n }\n\n e.StringDecoder = o, o.prototype.write = function (t) {\n if (0 === t.length) return \"\";\n var e, n;\n\n if (this.lastNeed) {\n if (void 0 === (e = this.fillLast(t))) return \"\";\n n = this.lastNeed, this.lastNeed = 0;\n } else n = 0;\n\n return n < t.length ? e ? e + this.text(t, n) : this.text(t, n) : e || \"\";\n }, o.prototype.end = function (t) {\n var e = t && t.length ? this.write(t) : \"\";\n return this.lastNeed ? e + \"�\" : e;\n }, o.prototype.text = function (t, e) {\n var n = function (t, e, n) {\n var r = e.length - 1;\n if (r < n) return 0;\n var i = s(e[r]);\n if (i >= 0) return i > 0 && (t.lastNeed = i - 1), i;\n if (--r < n || -2 === i) return 0;\n if ((i = s(e[r])) >= 0) return i > 0 && (t.lastNeed = i - 2), i;\n if (--r < n || -2 === i) return 0;\n if ((i = s(e[r])) >= 0) return i > 0 && (2 === i ? i = 0 : t.lastNeed = i - 3), i;\n return 0;\n }(this, t, e);\n\n if (!this.lastNeed) return t.toString(\"utf8\", e);\n this.lastTotal = n;\n var r = t.length - (n - this.lastNeed);\n return t.copy(this.lastChar, 0, r), t.toString(\"utf8\", e, r);\n }, o.prototype.fillLast = function (t) {\n if (this.lastNeed <= t.length) return t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);\n t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t.length), this.lastNeed -= t.length;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n t.exports = l;\n var r = n(46).codes,\n i = r.ERR_METHOD_NOT_IMPLEMENTED,\n o = r.ERR_MULTIPLE_CALLBACK,\n s = r.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n a = r.ERR_TRANSFORM_WITH_LENGTH_0,\n u = n(47);\n\n function c(t, e) {\n var n = this._transformState;\n n.transforming = !1;\n var r = n.writecb;\n if (null === r) return this.emit(\"error\", new o());\n n.writechunk = null, n.writecb = null, null != e && this.push(e), r(t);\n var i = this._readableState;\n i.reading = !1, (i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark);\n }\n\n function l(t) {\n if (!(this instanceof l)) return new l(t);\n u.call(this, t), this._transformState = {\n afterTransform: c.bind(this),\n needTransform: !1,\n transforming: !1,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }, this._readableState.needReadable = !0, this._readableState.sync = !1, t && (\"function\" == typeof t.transform && (this._transform = t.transform), \"function\" == typeof t.flush && (this._flush = t.flush)), this.on(\"prefinish\", h);\n }\n\n function h() {\n var t = this;\n \"function\" != typeof this._flush || this._readableState.destroyed ? d(this, null, null) : this._flush(function (e, n) {\n d(t, e, n);\n });\n }\n\n function d(t, e, n) {\n if (e) return t.emit(\"error\", e);\n if (null != n && t.push(n), t._writableState.length) throw new a();\n if (t._transformState.transforming) throw new s();\n return t.push(null);\n }\n\n n(24)(l, u), l.prototype.push = function (t, e) {\n return this._transformState.needTransform = !1, u.prototype.push.call(this, t, e);\n }, l.prototype._transform = function (t, e, n) {\n n(new i(\"_transform()\"));\n }, l.prototype._write = function (t, e, n) {\n var r = this._transformState;\n\n if (r.writecb = n, r.writechunk = t, r.writeencoding = e, !r.transforming) {\n var i = this._readableState;\n (r.needTransform || i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark);\n }\n }, l.prototype._read = function (t) {\n var e = this._transformState;\n null === e.writechunk || e.transforming ? e.needTransform = !0 : (e.transforming = !0, this._transform(e.writechunk, e.writeencoding, e.afterTransform));\n }, l.prototype._destroy = function (t, e) {\n u.prototype._destroy.call(this, t, function (t) {\n e(t);\n });\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = function r(t, e) {\n return function () {\n var _this10 = this;\n\n var n = e.promiseModule,\n r = new Array(arguments.length);\n\n for (var _t8 = 0; _t8 < arguments.length; _t8++) {\n r[_t8] = arguments[_t8];\n }\n\n return new n(function (n, i) {\n e.errorFirst ? r.push(function (t, r) {\n if (e.multiArgs) {\n var _e7 = new Array(arguments.length - 1);\n\n for (var _t9 = 1; _t9 < arguments.length; _t9++) {\n _e7[_t9 - 1] = arguments[_t9];\n }\n\n t ? (_e7.unshift(t), i(_e7)) : n(_e7);\n } else t ? i(t) : n(r);\n }) : r.push(function (t) {\n if (e.multiArgs) {\n var _t10 = new Array(arguments.length - 1);\n\n for (var _e8 = 0; _e8 < arguments.length; _e8++) {\n _t10[_e8] = arguments[_e8];\n }\n\n n(_t10);\n } else n(t);\n }), t.apply(_this10, r);\n });\n };\n };\n\n t.exports = function (t, e) {\n e = Object.assign({\n exclude: [/.+(Sync|Stream)$/],\n errorFirst: !0,\n promiseModule: Promise\n }, e);\n\n var n = function n(t) {\n var n = function n(e) {\n return \"string\" == typeof e ? t === e : e.test(t);\n };\n\n return e.include ? e.include.some(n) : !e.exclude.some(n);\n };\n\n var i;\n i = \"function\" == typeof t ? function () {\n return e.excludeMain ? t.apply(this, arguments) : r(t, e).apply(this, arguments);\n } : Object.create(Object.getPrototypeOf(t));\n\n for (var o in t) {\n var _s2 = t[o];\n i[o] = \"function\" == typeof _s2 && n(o) ? r(_s2, e) : _s2;\n }\n\n return i;\n };\n}, function (t, e, n) {\n var r = n(173),\n i = n(174)();\n\n function o(t) {\n this.currentProvider = t;\n }\n\n function s(t) {\n return function () {\n var e = this;\n var n = [].slice.call(arguments),\n r = n.pop();\n e.sendAsync({\n method: t,\n params: n\n }, r);\n };\n }\n\n function a(t, e) {\n return function () {\n var n = this;\n var r = [].slice.call(arguments),\n i = r.pop();\n r.length < t && r.push(\"latest\"), n.sendAsync({\n method: e,\n params: r\n }, i);\n };\n }\n\n t.exports = o, o.prototype.getBalance = a(2, \"eth_getBalance\"), o.prototype.getCode = a(2, \"eth_getCode\"), o.prototype.getTransactionCount = a(2, \"eth_getTransactionCount\"), o.prototype.getStorageAt = a(3, \"eth_getStorageAt\"), o.prototype.call = a(2, \"eth_call\"), o.prototype.protocolVersion = s(\"eth_protocolVersion\"), o.prototype.syncing = s(\"eth_syncing\"), o.prototype.coinbase = s(\"eth_coinbase\"), o.prototype.mining = s(\"eth_mining\"), o.prototype.hashrate = s(\"eth_hashrate\"), o.prototype.gasPrice = s(\"eth_gasPrice\"), o.prototype.accounts = s(\"eth_accounts\"), o.prototype.blockNumber = s(\"eth_blockNumber\"), o.prototype.getBlockTransactionCountByHash = s(\"eth_getBlockTransactionCountByHash\"), o.prototype.getBlockTransactionCountByNumber = s(\"eth_getBlockTransactionCountByNumber\"), o.prototype.getUncleCountByBlockHash = s(\"eth_getUncleCountByBlockHash\"), o.prototype.getUncleCountByBlockNumber = s(\"eth_getUncleCountByBlockNumber\"), o.prototype.sign = s(\"eth_sign\"), o.prototype.sendTransaction = s(\"eth_sendTransaction\"), o.prototype.sendRawTransaction = s(\"eth_sendRawTransaction\"), o.prototype.estimateGas = s(\"eth_estimateGas\"), o.prototype.getBlockByHash = s(\"eth_getBlockByHash\"), o.prototype.getBlockByNumber = s(\"eth_getBlockByNumber\"), o.prototype.getTransactionByHash = s(\"eth_getTransactionByHash\"), o.prototype.getTransactionByBlockHashAndIndex = s(\"eth_getTransactionByBlockHashAndIndex\"), o.prototype.getTransactionByBlockNumberAndIndex = s(\"eth_getTransactionByBlockNumberAndIndex\"), o.prototype.getTransactionReceipt = s(\"eth_getTransactionReceipt\"), o.prototype.getUncleByBlockHashAndIndex = s(\"eth_getUncleByBlockHashAndIndex\"), o.prototype.getUncleByBlockNumberAndIndex = s(\"eth_getUncleByBlockNumberAndIndex\"), o.prototype.getCompilers = s(\"eth_getCompilers\"), o.prototype.compileLLL = s(\"eth_compileLLL\"), o.prototype.compileSolidity = s(\"eth_compileSolidity\"), o.prototype.compileSerpent = s(\"eth_compileSerpent\"), o.prototype.newFilter = s(\"eth_newFilter\"), o.prototype.newBlockFilter = s(\"eth_newBlockFilter\"), o.prototype.newPendingTransactionFilter = s(\"eth_newPendingTransactionFilter\"), o.prototype.uninstallFilter = s(\"eth_uninstallFilter\"), o.prototype.getFilterChanges = s(\"eth_getFilterChanges\"), o.prototype.getFilterLogs = s(\"eth_getFilterLogs\"), o.prototype.getLogs = s(\"eth_getLogs\"), o.prototype.getWork = s(\"eth_getWork\"), o.prototype.submitWork = s(\"eth_submitWork\"), o.prototype.submitHashrate = s(\"eth_submitHashrate\"), o.prototype.sendAsync = function (t, e) {\n var n;\n this.currentProvider.sendAsync((n = t, r({\n id: i(),\n jsonrpc: \"2.0\",\n params: []\n }, n)), function (t, n) {\n if (!t && n.error && (t = new Error(\"EthQuery - RPC Error - \" + n.error.message)), t) return e(t);\n e(null, n.result);\n });\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__createBinding || (Object.create ? function (t, e, n, r) {\n void 0 === r && (r = n), Object.defineProperty(t, r, {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n } : function (t, e, n, r) {\n void 0 === r && (r = n), t[r] = e[n];\n }),\n i = this && this.__exportStar || function (t, e) {\n for (var n in t) {\n \"default\" === n || Object.prototype.hasOwnProperty.call(e, n) || r(e, t, n);\n }\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), i(n(180), e), i(n(181), e), i(n(182), e), i(n(121), e), i(n(122), e), i(n(185), e);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.getUniqueId = void 0;\n var r = Math.floor(4294967295 * Math.random());\n\n e.getUniqueId = function () {\n return r = (r + 1) % 4294967295, r;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.JsonRpcEngine = void 0;\n var i = r(n(64)),\n o = n(183);\n\n var s = /*#__PURE__*/function (_i$default2) {\n _inherits(s, _i$default2);\n\n var _super8 = _createSuper(s);\n\n function s() {\n var _this11;\n\n _classCallCheck(this, s);\n\n _this11 = _super8.call(this), _this11._middleware = [];\n return _this11;\n }\n\n _createClass(s, [{\n key: \"push\",\n value: function push(t) {\n this._middleware.push(t);\n }\n }, {\n key: \"handle\",\n value: function handle(t, e) {\n if (e && \"function\" != typeof e) throw new Error('\"callback\" must be a function if provided.');\n return Array.isArray(t) ? e ? this._handleBatch(t, e) : this._handleBatch(t) : e ? this._handle(t, e) : this._promiseHandle(t);\n }\n }, {\n key: \"asMiddleware\",\n value: function asMiddleware() {\n var _this12 = this;\n\n return /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee34(t, e, n, r) {\n var _yield$s$_runAllMiddl, _yield$s$_runAllMiddl2, _i6, _o4, _a2;\n\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n _context34.prev = 0;\n _context34.next = 3;\n return s._runAllMiddleware(t, e, _this12._middleware);\n\n case 3:\n _yield$s$_runAllMiddl = _context34.sent;\n _yield$s$_runAllMiddl2 = _slicedToArray(_yield$s$_runAllMiddl, 3);\n _i6 = _yield$s$_runAllMiddl2[0];\n _o4 = _yield$s$_runAllMiddl2[1];\n _a2 = _yield$s$_runAllMiddl2[2];\n\n if (!_o4) {\n _context34.next = 14;\n break;\n }\n\n _context34.next = 11;\n return s._runReturnHandlers(_a2);\n\n case 11:\n _context34.t0 = r(_i6);\n _context34.next = 15;\n break;\n\n case 14:\n _context34.t0 = n( /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee33(t) {\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n _context33.prev = 0;\n _context33.next = 3;\n return s._runReturnHandlers(_a2);\n\n case 3:\n _context33.next = 8;\n break;\n\n case 5:\n _context33.prev = 5;\n _context33.t0 = _context33[\"catch\"](0);\n return _context33.abrupt(\"return\", t(_context33.t0));\n\n case 8:\n return _context33.abrupt(\"return\", t());\n\n case 9:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33, null, [[0, 5]]);\n }));\n\n return function (_x50) {\n return _ref7.apply(this, arguments);\n };\n }());\n\n case 15:\n return _context34.abrupt(\"return\", _context34.t0);\n\n case 18:\n _context34.prev = 18;\n _context34.t1 = _context34[\"catch\"](0);\n return _context34.abrupt(\"return\", r(_context34.t1));\n\n case 21:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34, null, [[0, 18]]);\n }));\n\n return function (_x46, _x47, _x48, _x49) {\n return _ref6.apply(this, arguments);\n };\n }();\n }\n }, {\n key: \"_handleBatch\",\n value: function () {\n var _handleBatch2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee35(t, e) {\n var _n14;\n\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n _context35.prev = 0;\n _context35.next = 3;\n return Promise.all(t.map(this._promiseHandle.bind(this)));\n\n case 3:\n _n14 = _context35.sent;\n return _context35.abrupt(\"return\", e ? e(null, _n14) : _n14);\n\n case 7:\n _context35.prev = 7;\n _context35.t0 = _context35[\"catch\"](0);\n\n if (!e) {\n _context35.next = 11;\n break;\n }\n\n return _context35.abrupt(\"return\", e(_context35.t0));\n\n case 11:\n throw _context35.t0;\n\n case 12:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35, this, [[0, 7]]);\n }));\n\n function _handleBatch(_x51, _x52) {\n return _handleBatch2.apply(this, arguments);\n }\n\n return _handleBatch;\n }()\n }, {\n key: \"_promiseHandle\",\n value: function _promiseHandle(t) {\n var _this13 = this;\n\n return new Promise(function (e) {\n _this13._handle(t, function (t, n) {\n e(n);\n });\n });\n }\n }, {\n key: \"_handle\",\n value: function () {\n var _handle2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee36(t, e) {\n var _n15, _n16, n, r, i;\n\n return _regeneratorRuntime.wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n if (!(!t || Array.isArray(t) || \"object\" != _typeof(t))) {\n _context36.next = 3;\n break;\n }\n\n _n15 = new o.EthereumRpcError(o.errorCodes.rpc.invalidRequest, \"Requests must be plain objects. Received: \" + _typeof(t), {\n request: t\n });\n return _context36.abrupt(\"return\", e(_n15, {\n id: void 0,\n jsonrpc: \"2.0\",\n error: _n15\n }));\n\n case 3:\n if (!(\"string\" != typeof t.method)) {\n _context36.next = 6;\n break;\n }\n\n _n16 = new o.EthereumRpcError(o.errorCodes.rpc.invalidRequest, \"Must specify a string method. Received: \" + _typeof(t.method), {\n request: t\n });\n return _context36.abrupt(\"return\", e(_n16, {\n id: t.id,\n jsonrpc: \"2.0\",\n error: _n16\n }));\n\n case 6:\n n = Object.assign({}, t), r = {\n id: n.id,\n jsonrpc: n.jsonrpc\n };\n i = null;\n _context36.prev = 8;\n _context36.next = 11;\n return this._processRequest(n, r);\n\n case 11:\n _context36.next = 16;\n break;\n\n case 13:\n _context36.prev = 13;\n _context36.t0 = _context36[\"catch\"](8);\n i = _context36.t0;\n\n case 16:\n return _context36.abrupt(\"return\", (i && (delete r.result, r.error || (r.error = o.serializeError(i))), e(i, r)));\n\n case 17:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36, this, [[8, 13]]);\n }));\n\n function _handle(_x53, _x54) {\n return _handle2.apply(this, arguments);\n }\n\n return _handle;\n }()\n }, {\n key: \"_processRequest\",\n value: function () {\n var _processRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee37(t, e) {\n var _yield$s$_runAllMiddl3, _yield$s$_runAllMiddl4, n, r, i;\n\n return _regeneratorRuntime.wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n _context37.next = 2;\n return s._runAllMiddleware(t, e, this._middleware);\n\n case 2:\n _yield$s$_runAllMiddl3 = _context37.sent;\n _yield$s$_runAllMiddl4 = _slicedToArray(_yield$s$_runAllMiddl3, 3);\n n = _yield$s$_runAllMiddl4[0];\n r = _yield$s$_runAllMiddl4[1];\n i = _yield$s$_runAllMiddl4[2];\n\n s._checkForCompletion(t, e, r);\n\n _context37.next = 10;\n return s._runReturnHandlers(i);\n\n case 10:\n if (!n) {\n _context37.next = 12;\n break;\n }\n\n throw n;\n\n case 12:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37, this);\n }));\n\n function _processRequest(_x55, _x56) {\n return _processRequest2.apply(this, arguments);\n }\n\n return _processRequest;\n }()\n }], [{\n key: \"_runAllMiddleware\",\n value: function () {\n var _runAllMiddleware2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee38(t, e, n) {\n var r, i, o, _iterator, _step, _yield$s$_runMiddlewa, _yield$s$_runMiddlewa2, _a3;\n\n return _regeneratorRuntime.wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n r = [];\n i = null, o = !1;\n _iterator = _createForOfIteratorHelper(n);\n _context38.prev = 3;\n\n _iterator.s();\n\n case 5:\n if ((_step = _iterator.n()).done) {\n _context38.next = 18;\n break;\n }\n\n _a3 = _step.value;\n _context38.next = 9;\n return s._runMiddleware(t, e, _a3, r);\n\n case 9:\n _yield$s$_runMiddlewa = _context38.sent;\n _yield$s$_runMiddlewa2 = _slicedToArray(_yield$s$_runMiddlewa, 2);\n i = _yield$s$_runMiddlewa2[0];\n o = _yield$s$_runMiddlewa2[1];\n _yield$s$_runMiddlewa;\n\n if (!o) {\n _context38.next = 16;\n break;\n }\n\n return _context38.abrupt(\"break\", 18);\n\n case 16:\n _context38.next = 5;\n break;\n\n case 18:\n _context38.next = 23;\n break;\n\n case 20:\n _context38.prev = 20;\n _context38.t0 = _context38[\"catch\"](3);\n\n _iterator.e(_context38.t0);\n\n case 23:\n _context38.prev = 23;\n\n _iterator.f();\n\n return _context38.finish(23);\n\n case 26:\n return _context38.abrupt(\"return\", [i, o, r.reverse()]);\n\n case 27:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38, null, [[3, 20, 23, 26]]);\n }));\n\n function _runAllMiddleware(_x57, _x58, _x59) {\n return _runAllMiddleware2.apply(this, arguments);\n }\n\n return _runAllMiddleware;\n }()\n }, {\n key: \"_runMiddleware\",\n value: function _runMiddleware(t, e, n, r) {\n return new Promise(function (i) {\n var _s3 = function _s3(t) {\n var n = t || e.error;\n n && (e.error = o.serializeError(n)), i([n, !0]);\n },\n u = function u(n) {\n e.error ? _s3(e.error) : (n && (\"function\" != typeof n && _s3(new o.EthereumRpcError(o.errorCodes.rpc.internal, \"JsonRpcEngine: \\\"next\\\" return handlers must be functions. Received \\\"\".concat(_typeof(n), \"\\\" for request:\\n\").concat(a(t)), {\n request: t\n })), r.push(n)), i([null, !1]));\n };\n\n try {\n n(t, e, u, _s3);\n } catch (t) {\n _s3(t);\n }\n });\n }\n }, {\n key: \"_runReturnHandlers\",\n value: function () {\n var _runReturnHandlers2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee40(t) {\n var _iterator2, _step2, _loop;\n\n return _regeneratorRuntime.wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n _iterator2 = _createForOfIteratorHelper(t);\n _context40.prev = 1;\n _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _callee39() {\n var e;\n return _regeneratorRuntime.wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n e = _step2.value;\n _context39.next = 3;\n return new Promise(function (t, n) {\n e(function (e) {\n return e ? n(e) : t();\n });\n });\n\n case 3:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39);\n });\n\n _iterator2.s();\n\n case 4:\n if ((_step2 = _iterator2.n()).done) {\n _context40.next = 8;\n break;\n }\n\n return _context40.delegateYield(_loop(), \"t0\", 6);\n\n case 6:\n _context40.next = 4;\n break;\n\n case 8:\n _context40.next = 13;\n break;\n\n case 10:\n _context40.prev = 10;\n _context40.t1 = _context40[\"catch\"](1);\n\n _iterator2.e(_context40.t1);\n\n case 13:\n _context40.prev = 13;\n\n _iterator2.f();\n\n return _context40.finish(13);\n\n case 16:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40, null, [[1, 10, 13, 16]]);\n }));\n\n function _runReturnHandlers(_x60) {\n return _runReturnHandlers2.apply(this, arguments);\n }\n\n return _runReturnHandlers;\n }()\n }, {\n key: \"_checkForCompletion\",\n value: function _checkForCompletion(t, e, n) {\n if (!(\"result\" in e) && !(\"error\" in e)) throw new o.EthereumRpcError(o.errorCodes.rpc.internal, \"JsonRpcEngine: Response has no error or result for request:\\n\" + a(t), {\n request: t\n });\n if (!n) throw new o.EthereumRpcError(o.errorCodes.rpc.internal, \"JsonRpcEngine: Nothing ended request:\\n\" + a(t), {\n request: t\n });\n }\n }]);\n\n return s;\n }(i.default);\n\n function a(t) {\n return JSON.stringify(t, null, 2);\n }\n\n e.JsonRpcEngine = s;\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.serializeError = e.isValidCode = e.getMessageFromCode = e.JSON_RPC_SERVER_ERROR_MESSAGE = void 0;\n var r = n(97),\n i = n(96),\n o = r.errorCodes.rpc.internal,\n s = {\n code: o,\n message: a(o)\n };\n\n function a(t) {\n var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Unspecified error message. This is a bug, please report it.\";\n\n if (Number.isInteger(t)) {\n var _n17 = t.toString();\n\n if (h(r.errorValues, _n17)) return r.errorValues[_n17].message;\n if (c(t)) return e.JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n\n return n;\n }\n\n function u(t) {\n if (!Number.isInteger(t)) return !1;\n var e = t.toString();\n return !!r.errorValues[e] || !!c(t);\n }\n\n function c(t) {\n return t >= -32099 && t <= -32e3;\n }\n\n function l(t) {\n return t && \"object\" == _typeof(t) && !Array.isArray(t) ? Object.assign({}, t) : t;\n }\n\n function h(t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }\n\n e.JSON_RPC_SERVER_ERROR_MESSAGE = \"Unspecified server error.\", e.getMessageFromCode = a, e.isValidCode = u, e.serializeError = function (t) {\n var _ref8 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref8$fallbackError = _ref8.fallbackError,\n e = _ref8$fallbackError === void 0 ? s : _ref8$fallbackError,\n _ref8$shouldIncludeSt = _ref8.shouldIncludeStack,\n n = _ref8$shouldIncludeSt === void 0 ? !1 : _ref8$shouldIncludeSt;\n\n var r, o;\n if (!e || !Number.isInteger(e.code) || \"string\" != typeof e.message) throw new Error(\"Must provide fallback error with integer number code and string message.\");\n if (t instanceof i.EthereumRpcError) return t.serialize();\n var c = {};\n\n if (t && \"object\" == _typeof(t) && !Array.isArray(t) && h(t, \"code\") && u(t.code)) {\n var _e9 = t;\n c.code = _e9.code, _e9.message && \"string\" == typeof _e9.message ? (c.message = _e9.message, h(_e9, \"data\") && (c.data = _e9.data)) : (c.message = a(c.code), c.data = {\n originalError: l(t)\n });\n } else {\n c.code = e.code;\n\n var _n18 = null === (r = t) || void 0 === r ? void 0 : r.message;\n\n c.message = _n18 && \"string\" == typeof _n18 ? _n18 : e.message, c.data = {\n originalError: l(t)\n };\n }\n\n var d = null === (o = t) || void 0 === o ? void 0 : o.stack;\n return n && t && d && \"string\" == typeof d && (c.stack = d), c;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Web3Method = void 0, function (t) {\n t.requestEthereumAccounts = \"requestEthereumAccounts\", t.signEthereumMessage = \"signEthereumMessage\", t.signEthereumTransaction = \"signEthereumTransaction\", t.submitEthereumTransaction = \"submitEthereumTransaction\", t.ethereumAddressFromSignedMessage = \"ethereumAddressFromSignedMessage\", t.scanQRCode = \"scanQRCode\", t.generic = \"generic\", t.childRequestEthereumAccounts = \"childRequestEthereumAccounts\", t.addEthereumChain = \"addEthereumChain\", t.switchEthereumChain = \"switchEthereumChain\", t.makeEthereumJSONRPCRequest = \"makeEthereumJSONRPCRequest\", t.watchAsset = \"watchAsset\", t.selectProvider = \"selectProvider\";\n }(e.Web3Method || (e.Web3Method = {}));\n}, function (t, e, n) {\n \"use strict\";\n\n n.r(e);\n var r = n(85);\n n.d(e, \"CoinbaseWalletProvider\", function () {\n return r.CoinbaseWalletProvider;\n }), n.d(e, \"CoinbaseWalletSDK\", function () {\n return r.CoinbaseWalletSDK;\n });\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.walletLogo = void 0;\n\n e.walletLogo = function (t, e) {\n var n;\n\n switch (t) {\n case \"standard\":\n return n = e, \"data:image/svg+xml,%3Csvg width='\".concat(e, \"' height='\").concat(n, \"' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E \");\n\n case \"circle\":\n return n = e, \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\".concat(e, \"' height='\").concat(n, \"' viewBox='0 0 999.81 999.81'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-2' d='M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-3' d='M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z' transform='translate(-183.1 115.9)'/%3E%3C/svg%3E\");\n\n case \"text\":\n return n = (.1 * e).toFixed(2), \"data:image/svg+xml,%3Csvg width='\".concat(e, \"' height='\").concat(n, \"' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E\");\n\n case \"textWithLogo\":\n return n = (.25 * e).toFixed(2), \"data:image/svg+xml,%3Csvg width='\".concat(e, \"' height='\").concat(n, \"' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E\");\n\n case \"textLight\":\n return n = (.1 * e).toFixed(2), \"data:image/svg+xml,%3Csvg width='\".concat(e, \"' height='\").concat(n, \"' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E\");\n\n case \"textWithLogoLight\":\n return n = (.25 * e).toFixed(2), \"data:image/svg+xml,%3Csvg width='\".concat(e, \"' height='\").concat(n, \"' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E\");\n\n default:\n return n = e, \"data:image/svg+xml,%3Csvg width='\".concat(e, \"' height='\").concat(n, \"' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E \");\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ScopedLocalStorage = void 0;\n\n e.ScopedLocalStorage = /*#__PURE__*/function () {\n function _class5(t) {\n _classCallCheck(this, _class5);\n\n this.scope = t;\n }\n\n _createClass(_class5, [{\n key: \"setItem\",\n value: function setItem(t, e) {\n localStorage.setItem(this.scopedKey(t), e);\n }\n }, {\n key: \"getItem\",\n value: function getItem(t) {\n return localStorage.getItem(this.scopedKey(t));\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(t) {\n localStorage.removeItem(this.scopedKey(t));\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var t = this.scopedKey(\"\"),\n e = [];\n\n for (var _n19 = 0; _n19 < localStorage.length; _n19++) {\n var r = localStorage.key(_n19);\n \"string\" == typeof r && r.startsWith(t) && e.push(r);\n }\n\n e.forEach(function (t) {\n return localStorage.removeItem(t);\n });\n }\n }, {\n key: \"scopedKey\",\n value: function scopedKey(t) {\n return \"\".concat(this.scope, \":\").concat(t);\n }\n }]);\n\n return _class5;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n e.byteLength = function (t) {\n var e = c(t),\n n = e[0],\n r = e[1];\n return 3 * (n + r) / 4 - r;\n }, e.toByteArray = function (t) {\n var e,\n n,\n r = c(t),\n s = r[0],\n a = r[1],\n u = new o(function (t, e, n) {\n return 3 * (e + n) / 4 - n;\n }(0, s, a)),\n l = 0,\n h = a > 0 ? s - 4 : s;\n\n for (n = 0; n < h; n += 4) {\n e = i[t.charCodeAt(n)] << 18 | i[t.charCodeAt(n + 1)] << 12 | i[t.charCodeAt(n + 2)] << 6 | i[t.charCodeAt(n + 3)], u[l++] = e >> 16 & 255, u[l++] = e >> 8 & 255, u[l++] = 255 & e;\n }\n\n 2 === a && (e = i[t.charCodeAt(n)] << 2 | i[t.charCodeAt(n + 1)] >> 4, u[l++] = 255 & e);\n 1 === a && (e = i[t.charCodeAt(n)] << 10 | i[t.charCodeAt(n + 1)] << 4 | i[t.charCodeAt(n + 2)] >> 2, u[l++] = e >> 8 & 255, u[l++] = 255 & e);\n return u;\n }, e.fromByteArray = function (t) {\n for (var e, n = t.length, i = n % 3, o = [], s = 0, a = n - i; s < a; s += 16383) {\n o.push(l(t, s, s + 16383 > a ? a : s + 16383));\n }\n\n 1 === i ? (e = t[n - 1], o.push(r[e >> 2] + r[e << 4 & 63] + \"==\")) : 2 === i && (e = (t[n - 2] << 8) + t[n - 1], o.push(r[e >> 10] + r[e >> 4 & 63] + r[e << 2 & 63] + \"=\"));\n return o.join(\"\");\n };\n\n for (var r = [], i = [], o = \"undefined\" != typeof Uint8Array ? Uint8Array : Array, s = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", a = 0, u = s.length; a < u; ++a) {\n r[a] = s[a], i[s.charCodeAt(a)] = a;\n }\n\n function c(t) {\n var e = t.length;\n if (e % 4 > 0) throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var n = t.indexOf(\"=\");\n return -1 === n && (n = e), [n, n === e ? 0 : 4 - n % 4];\n }\n\n function l(t, e, n) {\n for (var i, o, s = [], a = e; a < n; a += 3) {\n i = (t[a] << 16 & 16711680) + (t[a + 1] << 8 & 65280) + (255 & t[a + 2]), s.push(r[(o = i) >> 18 & 63] + r[o >> 12 & 63] + r[o >> 6 & 63] + r[63 & o]);\n }\n\n return s.join(\"\");\n }\n\n i[\"-\".charCodeAt(0)] = 62, i[\"_\".charCodeAt(0)] = 63;\n}, function (t, e) {\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n e.read = function (t, e, n, r, i) {\n var o,\n s,\n a = 8 * i - r - 1,\n u = (1 << a) - 1,\n c = u >> 1,\n l = -7,\n h = n ? i - 1 : 0,\n d = n ? -1 : 1,\n f = t[e + h];\n\n for (h += d, o = f & (1 << -l) - 1, f >>= -l, l += a; l > 0; o = 256 * o + t[e + h], h += d, l -= 8) {\n ;\n }\n\n for (s = o & (1 << -l) - 1, o >>= -l, l += r; l > 0; s = 256 * s + t[e + h], h += d, l -= 8) {\n ;\n }\n\n if (0 === o) o = 1 - c;else {\n if (o === u) return s ? NaN : 1 / 0 * (f ? -1 : 1);\n s += Math.pow(2, r), o -= c;\n }\n return (f ? -1 : 1) * s * Math.pow(2, o - r);\n }, e.write = function (t, e, n, r, i, o) {\n var s,\n a,\n u,\n c = 8 * o - i - 1,\n l = (1 << c) - 1,\n h = l >> 1,\n d = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0,\n f = r ? 0 : o - 1,\n p = r ? 1 : -1,\n b = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;\n\n for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (a = isNaN(e) ? 1 : 0, s = l) : (s = Math.floor(Math.log(e) / Math.LN2), e * (u = Math.pow(2, -s)) < 1 && (s--, u *= 2), (e += s + h >= 1 ? d / u : d * Math.pow(2, 1 - h)) * u >= 2 && (s++, u /= 2), s + h >= l ? (a = 0, s = l) : s + h >= 1 ? (a = (e * u - 1) * Math.pow(2, i), s += h) : (a = e * Math.pow(2, h - 1) * Math.pow(2, i), s = 0)); i >= 8; t[n + f] = 255 & a, f += p, a /= 256, i -= 8) {\n ;\n }\n\n for (s = s << i | a, c += i; c > 0; t[n + f] = 255 & s, f += p, s /= 256, c -= 8) {\n ;\n }\n\n t[n + f - p] |= 128 * b;\n };\n}, function (t, e) {\n var n = {}.toString;\n\n t.exports = Array.isArray || function (t) {\n return \"[object Array]\" == n.call(t);\n };\n}, function (t, e) {\n t.exports = function (t) {\n return t.webpackPolyfill || (t.deprecate = function () {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, \"loaded\", {\n enumerable: !0,\n get: function get() {\n return t.l;\n }\n }), Object.defineProperty(t, \"id\", {\n enumerable: !0,\n get: function get() {\n return t.i;\n }\n }), t.webpackPolyfill = 1), t;\n };\n}, function (t, e) {}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ethErrors = void 0;\n var r = n(88),\n i = n(104),\n o = n(89);\n\n function s(t, e) {\n var _u = u(e),\n _u2 = _slicedToArray(_u, 2),\n n = _u2[0],\n o = _u2[1];\n\n return new r.EthereumRpcError(t, n || i.getMessageFromCode(t), o);\n }\n\n function a(t, e) {\n var _u3 = u(e),\n _u4 = _slicedToArray(_u3, 2),\n n = _u4[0],\n o = _u4[1];\n\n return new r.EthereumProviderError(t, n || i.getMessageFromCode(t), o);\n }\n\n function u(t) {\n if (t) {\n if (\"string\" == typeof t) return [t];\n\n if (\"object\" == _typeof(t) && !Array.isArray(t)) {\n var _e10 = t.message,\n _n20 = t.data;\n if (_e10 && \"string\" != typeof _e10) throw new Error(\"Must specify string message.\");\n return [_e10 || void 0, _n20];\n }\n }\n\n return [];\n }\n\n e.ethErrors = {\n rpc: {\n parse: function parse(t) {\n return s(o.errorCodes.rpc.parse, t);\n },\n invalidRequest: function invalidRequest(t) {\n return s(o.errorCodes.rpc.invalidRequest, t);\n },\n invalidParams: function invalidParams(t) {\n return s(o.errorCodes.rpc.invalidParams, t);\n },\n methodNotFound: function methodNotFound(t) {\n return s(o.errorCodes.rpc.methodNotFound, t);\n },\n internal: function internal(t) {\n return s(o.errorCodes.rpc.internal, t);\n },\n server: function server(t) {\n if (!t || \"object\" != _typeof(t) || Array.isArray(t)) throw new Error(\"Ethereum RPC Server errors must provide single object argument.\");\n var e = t.code;\n if (!Number.isInteger(e) || e > -32005 || e < -32099) throw new Error('\"code\" must be an integer such that: -32099 <= code <= -32005');\n return s(e, t);\n },\n invalidInput: function invalidInput(t) {\n return s(o.errorCodes.rpc.invalidInput, t);\n },\n resourceNotFound: function resourceNotFound(t) {\n return s(o.errorCodes.rpc.resourceNotFound, t);\n },\n resourceUnavailable: function resourceUnavailable(t) {\n return s(o.errorCodes.rpc.resourceUnavailable, t);\n },\n transactionRejected: function transactionRejected(t) {\n return s(o.errorCodes.rpc.transactionRejected, t);\n },\n methodNotSupported: function methodNotSupported(t) {\n return s(o.errorCodes.rpc.methodNotSupported, t);\n },\n limitExceeded: function limitExceeded(t) {\n return s(o.errorCodes.rpc.limitExceeded, t);\n }\n },\n provider: {\n userRejectedRequest: function userRejectedRequest(t) {\n return a(o.errorCodes.provider.userRejectedRequest, t);\n },\n unauthorized: function unauthorized(t) {\n return a(o.errorCodes.provider.unauthorized, t);\n },\n unsupportedMethod: function unsupportedMethod(t) {\n return a(o.errorCodes.provider.unsupportedMethod, t);\n },\n disconnected: function disconnected(t) {\n return a(o.errorCodes.provider.disconnected, t);\n },\n chainDisconnected: function chainDisconnected(t) {\n return a(o.errorCodes.provider.chainDisconnected, t);\n },\n custom: function custom(t) {\n if (!t || \"object\" != _typeof(t) || Array.isArray(t)) throw new Error(\"Ethereum Provider custom errors must provide single object argument.\");\n var e = t.code,\n n = t.message,\n i = t.data;\n if (!n || \"string\" != typeof n) throw new Error('\"message\" must be a nonempty string');\n return new r.EthereumProviderError(e, n, i);\n }\n }\n };\n}, function (t, e, n) {\n (e = t.exports = function (t) {\n t = t.toLowerCase();\n var n = e[t];\n if (!n) throw new Error(t + \" is not supported (we accept pull requests)\");\n return new n();\n }).sha = n(135), e.sha1 = n(136), e.sha224 = n(137), e.sha256 = n(105), e.sha384 = n(138), e.sha512 = n(106);\n}, function (t, e, n) {\n var r = n(24),\n i = n(45),\n o = n(37).Buffer,\n s = [1518500249, 1859775393, -1894007588, -899497514],\n a = new Array(80);\n\n function u() {\n this.init(), this._w = a, i.call(this, 64, 56);\n }\n\n function c(t) {\n return t << 30 | t >>> 2;\n }\n\n function l(t, e, n, r) {\n return 0 === t ? e & n | ~e & r : 2 === t ? e & n | e & r | n & r : e ^ n ^ r;\n }\n\n r(u, i), u.prototype.init = function () {\n return this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878, this._e = 3285377520, this;\n }, u.prototype._update = function (t) {\n for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, o = 0 | this._c, a = 0 | this._d, u = 0 | this._e, h = 0; h < 16; ++h) {\n n[h] = t.readInt32BE(4 * h);\n }\n\n for (; h < 80; ++h) {\n n[h] = n[h - 3] ^ n[h - 8] ^ n[h - 14] ^ n[h - 16];\n }\n\n for (var d = 0; d < 80; ++d) {\n var f = ~~(d / 20),\n p = 0 | ((e = r) << 5 | e >>> 27) + l(f, i, o, a) + u + n[d] + s[f];\n u = a, a = o, o = c(i), i = r, r = p;\n }\n\n this._a = r + this._a | 0, this._b = i + this._b | 0, this._c = o + this._c | 0, this._d = a + this._d | 0, this._e = u + this._e | 0;\n }, u.prototype._hash = function () {\n var t = o.allocUnsafe(20);\n return t.writeInt32BE(0 | this._a, 0), t.writeInt32BE(0 | this._b, 4), t.writeInt32BE(0 | this._c, 8), t.writeInt32BE(0 | this._d, 12), t.writeInt32BE(0 | this._e, 16), t;\n }, t.exports = u;\n}, function (t, e, n) {\n var r = n(24),\n i = n(45),\n o = n(37).Buffer,\n s = [1518500249, 1859775393, -1894007588, -899497514],\n a = new Array(80);\n\n function u() {\n this.init(), this._w = a, i.call(this, 64, 56);\n }\n\n function c(t) {\n return t << 5 | t >>> 27;\n }\n\n function l(t) {\n return t << 30 | t >>> 2;\n }\n\n function h(t, e, n, r) {\n return 0 === t ? e & n | ~e & r : 2 === t ? e & n | e & r | n & r : e ^ n ^ r;\n }\n\n r(u, i), u.prototype.init = function () {\n return this._a = 1732584193, this._b = 4023233417, this._c = 2562383102, this._d = 271733878, this._e = 3285377520, this;\n }, u.prototype._update = function (t) {\n for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, o = 0 | this._c, a = 0 | this._d, u = 0 | this._e, d = 0; d < 16; ++d) {\n n[d] = t.readInt32BE(4 * d);\n }\n\n for (; d < 80; ++d) {\n n[d] = (e = n[d - 3] ^ n[d - 8] ^ n[d - 14] ^ n[d - 16]) << 1 | e >>> 31;\n }\n\n for (var f = 0; f < 80; ++f) {\n var p = ~~(f / 20),\n b = c(r) + h(p, i, o, a) + u + n[f] + s[p] | 0;\n u = a, a = o, o = l(i), i = r, r = b;\n }\n\n this._a = r + this._a | 0, this._b = i + this._b | 0, this._c = o + this._c | 0, this._d = a + this._d | 0, this._e = u + this._e | 0;\n }, u.prototype._hash = function () {\n var t = o.allocUnsafe(20);\n return t.writeInt32BE(0 | this._a, 0), t.writeInt32BE(0 | this._b, 4), t.writeInt32BE(0 | this._c, 8), t.writeInt32BE(0 | this._d, 12), t.writeInt32BE(0 | this._e, 16), t;\n }, t.exports = u;\n}, function (t, e, n) {\n var r = n(24),\n i = n(105),\n o = n(45),\n s = n(37).Buffer,\n a = new Array(64);\n\n function u() {\n this.init(), this._w = a, o.call(this, 64, 56);\n }\n\n r(u, i), u.prototype.init = function () {\n return this._a = 3238371032, this._b = 914150663, this._c = 812702999, this._d = 4144912697, this._e = 4290775857, this._f = 1750603025, this._g = 1694076839, this._h = 3204075428, this;\n }, u.prototype._hash = function () {\n var t = s.allocUnsafe(28);\n return t.writeInt32BE(this._a, 0), t.writeInt32BE(this._b, 4), t.writeInt32BE(this._c, 8), t.writeInt32BE(this._d, 12), t.writeInt32BE(this._e, 16), t.writeInt32BE(this._f, 20), t.writeInt32BE(this._g, 24), t;\n }, t.exports = u;\n}, function (t, e, n) {\n var r = n(24),\n i = n(106),\n o = n(45),\n s = n(37).Buffer,\n a = new Array(160);\n\n function u() {\n this.init(), this._w = a, o.call(this, 128, 112);\n }\n\n r(u, i), u.prototype.init = function () {\n return this._ah = 3418070365, this._bh = 1654270250, this._ch = 2438529370, this._dh = 355462360, this._eh = 1731405415, this._fh = 2394180231, this._gh = 3675008525, this._hh = 1203062813, this._al = 3238371032, this._bl = 914150663, this._cl = 812702999, this._dl = 4144912697, this._el = 4290775857, this._fl = 1750603025, this._gl = 1694076839, this._hl = 3204075428, this;\n }, u.prototype._hash = function () {\n var t = s.allocUnsafe(48);\n\n function e(e, n, r) {\n t.writeInt32BE(e, r), t.writeInt32BE(n, r + 4);\n }\n\n return e(this._ah, this._al, 0), e(this._bh, this._bl, 8), e(this._ch, this._cl, 16), e(this._dh, this._dl, 24), e(this._eh, this._el, 32), e(this._fh, this._fl, 40), t;\n }, t.exports = u;\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(140),\n i = n(151),\n o = n(94);\n t.exports = {\n formats: o,\n parse: i,\n stringify: r\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(141),\n i = n(107),\n o = n(94),\n s = Object.prototype.hasOwnProperty,\n a = {\n brackets: function brackets(t) {\n return t + \"[]\";\n },\n comma: \"comma\",\n indices: function indices(t, e) {\n return t + \"[\" + e + \"]\";\n },\n repeat: function repeat(t) {\n return t;\n }\n },\n u = Array.isArray,\n c = Array.prototype.push,\n l = function l(t, e) {\n c.apply(t, u(e) ? e : [e]);\n },\n h = Date.prototype.toISOString,\n d = o.default,\n f = {\n addQueryPrefix: !1,\n allowDots: !1,\n charset: \"utf-8\",\n charsetSentinel: !1,\n delimiter: \"&\",\n encode: !0,\n encoder: i.encode,\n encodeValuesOnly: !1,\n format: d,\n formatter: o.formatters[d],\n indices: !1,\n serializeDate: function serializeDate(t) {\n return h.call(t);\n },\n skipNulls: !1,\n strictNullHandling: !1\n },\n p = {},\n b = function t(e, n, o, s, a, c, h, d, b, y, g, m, v, w, _, S) {\n for (var E, M = e, x = S, k = 0, C = !1; void 0 !== (x = x.get(p)) && !C;) {\n var A = x.get(e);\n\n if (k += 1, void 0 !== A) {\n if (A === k) throw new RangeError(\"Cyclic object value\");\n C = !0;\n }\n\n void 0 === x.get(p) && (k = 0);\n }\n\n if (\"function\" == typeof d ? M = d(n, M) : M instanceof Date ? M = g(M) : \"comma\" === o && u(M) && (M = i.maybeMap(M, function (t) {\n return t instanceof Date ? g(t) : t;\n })), null === M) {\n if (a) return h && !w ? h(n, f.encoder, _, \"key\", m) : n;\n M = \"\";\n }\n\n if (\"string\" == typeof (E = M) || \"number\" == typeof E || \"boolean\" == typeof E || \"symbol\" == _typeof(E) || \"bigint\" == typeof E || i.isBuffer(M)) return h ? [v(w ? n : h(n, f.encoder, _, \"key\", m)) + \"=\" + v(h(M, f.encoder, _, \"value\", m))] : [v(n) + \"=\" + v(String(M))];\n var I,\n O = [];\n if (void 0 === M) return O;\n if (\"comma\" === o && u(M)) w && h && (M = i.maybeMap(M, h)), I = [{\n value: M.length > 0 ? M.join(\",\") || null : void 0\n }];else if (u(d)) I = d;else {\n var j = Object.keys(M);\n I = b ? j.sort(b) : j;\n }\n\n for (var R = s && u(M) && 1 === M.length ? n + \"[]\" : n, N = 0; N < I.length; ++N) {\n var T = I[N],\n P = \"object\" == _typeof(T) && void 0 !== T.value ? T.value : M[T];\n\n if (!c || null !== P) {\n var L = u(M) ? \"function\" == typeof o ? o(R, T) : R : R + (y ? \".\" + T : \"[\" + T + \"]\");\n S.set(e, k);\n var D = r();\n D.set(p, S), l(O, t(P, L, o, s, a, c, \"comma\" === o && w && u(M) ? null : h, d, b, y, g, m, v, w, _, D));\n }\n }\n\n return O;\n };\n\n t.exports = function (t, e) {\n var n,\n i = t,\n c = function (t) {\n if (!t) return f;\n if (null !== t.encoder && void 0 !== t.encoder && \"function\" != typeof t.encoder) throw new TypeError(\"Encoder has to be a function.\");\n var e = t.charset || f.charset;\n if (void 0 !== t.charset && \"utf-8\" !== t.charset && \"iso-8859-1\" !== t.charset) throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var n = o.default;\n\n if (void 0 !== t.format) {\n if (!s.call(o.formatters, t.format)) throw new TypeError(\"Unknown format option provided.\");\n n = t.format;\n }\n\n var r = o.formatters[n],\n i = f.filter;\n return (\"function\" == typeof t.filter || u(t.filter)) && (i = t.filter), {\n addQueryPrefix: \"boolean\" == typeof t.addQueryPrefix ? t.addQueryPrefix : f.addQueryPrefix,\n allowDots: void 0 === t.allowDots ? f.allowDots : !!t.allowDots,\n charset: e,\n charsetSentinel: \"boolean\" == typeof t.charsetSentinel ? t.charsetSentinel : f.charsetSentinel,\n delimiter: void 0 === t.delimiter ? f.delimiter : t.delimiter,\n encode: \"boolean\" == typeof t.encode ? t.encode : f.encode,\n encoder: \"function\" == typeof t.encoder ? t.encoder : f.encoder,\n encodeValuesOnly: \"boolean\" == typeof t.encodeValuesOnly ? t.encodeValuesOnly : f.encodeValuesOnly,\n filter: i,\n format: n,\n formatter: r,\n serializeDate: \"function\" == typeof t.serializeDate ? t.serializeDate : f.serializeDate,\n skipNulls: \"boolean\" == typeof t.skipNulls ? t.skipNulls : f.skipNulls,\n sort: \"function\" == typeof t.sort ? t.sort : null,\n strictNullHandling: \"boolean\" == typeof t.strictNullHandling ? t.strictNullHandling : f.strictNullHandling\n };\n }(e);\n\n \"function\" == typeof c.filter ? i = (0, c.filter)(\"\", i) : u(c.filter) && (n = c.filter);\n var h,\n d = [];\n if (\"object\" != _typeof(i) || null === i) return \"\";\n h = e && e.arrayFormat in a ? e.arrayFormat : e && \"indices\" in e ? e.indices ? \"indices\" : \"repeat\" : \"indices\";\n var p = a[h];\n if (e && \"commaRoundTrip\" in e && \"boolean\" != typeof e.commaRoundTrip) throw new TypeError(\"`commaRoundTrip` must be a boolean, or absent\");\n var y = \"comma\" === p && e && e.commaRoundTrip;\n n || (n = Object.keys(i)), c.sort && n.sort(c.sort);\n\n for (var g = r(), m = 0; m < n.length; ++m) {\n var v = n[m];\n c.skipNulls && null === i[v] || l(d, b(i[v], v, p, y, c.strictNullHandling, c.skipNulls, c.encode ? c.encoder : null, c.filter, c.sort, c.allowDots, c.serializeDate, c.format, c.formatter, c.encodeValuesOnly, c.charset, g));\n }\n\n var w = d.join(c.delimiter),\n _ = !0 === c.addQueryPrefix ? \"?\" : \"\";\n\n return c.charsetSentinel && (\"iso-8859-1\" === c.charset ? _ += \"utf8=%26%2310003%3B&\" : _ += \"utf8=%E2%9C%93&\"), w.length > 0 ? _ + w : \"\";\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(92),\n i = n(147),\n o = n(149),\n s = r(\"%TypeError%\"),\n a = r(\"%WeakMap%\", !0),\n u = r(\"%Map%\", !0),\n c = i(\"WeakMap.prototype.get\", !0),\n l = i(\"WeakMap.prototype.set\", !0),\n h = i(\"WeakMap.prototype.has\", !0),\n d = i(\"Map.prototype.get\", !0),\n f = i(\"Map.prototype.set\", !0),\n p = i(\"Map.prototype.has\", !0),\n b = function b(t, e) {\n for (var n, r = t; null !== (n = r.next); r = n) {\n if (n.key === e) return r.next = n.next, n.next = t.next, t.next = n, n;\n }\n };\n\n t.exports = function () {\n var t,\n e,\n n,\n r = {\n assert: function assert(t) {\n if (!r.has(t)) throw new s(\"Side channel does not contain \" + o(t));\n },\n get: function get(r) {\n if (a && r && (\"object\" == _typeof(r) || \"function\" == typeof r)) {\n if (t) return c(t, r);\n } else if (u) {\n if (e) return d(e, r);\n } else if (n) return function (t, e) {\n var n = b(t, e);\n return n && n.value;\n }(n, r);\n },\n has: function has(r) {\n if (a && r && (\"object\" == _typeof(r) || \"function\" == typeof r)) {\n if (t) return h(t, r);\n } else if (u) {\n if (e) return p(e, r);\n } else if (n) return function (t, e) {\n return !!b(t, e);\n }(n, r);\n\n return !1;\n },\n set: function set(r, i) {\n a && r && (\"object\" == _typeof(r) || \"function\" == typeof r) ? (t || (t = new a()), l(t, r, i)) : u ? (e || (e = new u()), f(e, r, i)) : (n || (n = {\n key: {},\n next: null\n }), function (t, e, n) {\n var r = b(t, e);\n r ? r.value = n : t.next = {\n key: e,\n next: t.next,\n value: n\n };\n }(n, r, i));\n }\n };\n return r;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = \"undefined\" != typeof Symbol && Symbol,\n i = n(143);\n\n t.exports = function () {\n return \"function\" == typeof r && \"function\" == typeof Symbol && \"symbol\" == _typeof(r(\"foo\")) && \"symbol\" == _typeof(Symbol(\"bar\")) && i();\n };\n}, function (t, e, n) {\n \"use strict\";\n\n t.exports = function () {\n if (\"function\" != typeof Symbol || \"function\" != typeof Object.getOwnPropertySymbols) return !1;\n if (\"symbol\" == _typeof(Symbol.iterator)) return !0;\n var t = {},\n e = Symbol(\"test\"),\n n = Object(e);\n if (\"string\" == typeof e) return !1;\n if (\"[object Symbol]\" !== Object.prototype.toString.call(e)) return !1;\n if (\"[object Symbol]\" !== Object.prototype.toString.call(n)) return !1;\n\n for (e in t[e] = 42, t) {\n return !1;\n }\n\n if (\"function\" == typeof Object.keys && 0 !== Object.keys(t).length) return !1;\n if (\"function\" == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(t).length) return !1;\n var r = Object.getOwnPropertySymbols(t);\n if (1 !== r.length || r[0] !== e) return !1;\n if (!Object.prototype.propertyIsEnumerable.call(t, e)) return !1;\n\n if (\"function\" == typeof Object.getOwnPropertyDescriptor) {\n var i = Object.getOwnPropertyDescriptor(t, e);\n if (42 !== i.value || !0 !== i.enumerable) return !1;\n }\n\n return !0;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = {\n foo: {}\n },\n i = Object;\n\n t.exports = function () {\n return {\n __proto__: r\n }.foo === r.foo && !({\n __proto__: null\n } instanceof i);\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = \"Function.prototype.bind called on incompatible \",\n i = Array.prototype.slice,\n o = Object.prototype.toString;\n\n t.exports = function (t) {\n var e = this;\n if (\"function\" != typeof e || \"[object Function]\" !== o.call(e)) throw new TypeError(r + e);\n\n for (var n, s = i.call(arguments, 1), a = function a() {\n if (this instanceof n) {\n var r = e.apply(this, s.concat(i.call(arguments)));\n return Object(r) === r ? r : this;\n }\n\n return e.apply(t, s.concat(i.call(arguments)));\n }, u = Math.max(0, e.length - s.length), c = [], l = 0; l < u; l++) {\n c.push(\"$\" + l);\n }\n\n if (n = Function(\"binder\", \"return function (\" + c.join(\",\") + \"){ return binder.apply(this,arguments); }\")(a), e.prototype) {\n var h = function h() {};\n\n h.prototype = e.prototype, n.prototype = new h(), h.prototype = null;\n }\n\n return n;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(93);\n t.exports = r.call(Function.call, Object.prototype.hasOwnProperty);\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(92),\n i = n(148),\n o = i(r(\"String.prototype.indexOf\"));\n\n t.exports = function (t, e) {\n var n = r(t, !!e);\n return \"function\" == typeof n && o(t, \".prototype.\") > -1 ? i(n) : n;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = n(93),\n i = n(92),\n o = i(\"%Function.prototype.apply%\"),\n s = i(\"%Function.prototype.call%\"),\n a = i(\"%Reflect.apply%\", !0) || r.call(s, o),\n u = i(\"%Object.getOwnPropertyDescriptor%\", !0),\n c = i(\"%Object.defineProperty%\", !0),\n l = i(\"%Math.max%\");\n if (c) try {\n c({}, \"a\", {\n value: 1\n });\n } catch (t) {\n c = null;\n }\n\n t.exports = function (t) {\n var e = a(r, s, arguments);\n\n if (u && c) {\n var n = u(e, \"length\");\n n.configurable && c(e, \"length\", {\n value: 1 + l(0, t.length - (arguments.length - 1))\n });\n }\n\n return e;\n };\n\n var h = function h() {\n return a(r, o, arguments);\n };\n\n c ? c(t.exports, \"apply\", {\n value: h\n }) : t.exports.apply = h;\n}, function (t, e, n) {\n var r = \"function\" == typeof Map && Map.prototype,\n i = Object.getOwnPropertyDescriptor && r ? Object.getOwnPropertyDescriptor(Map.prototype, \"size\") : null,\n o = r && i && \"function\" == typeof i.get ? i.get : null,\n s = r && Map.prototype.forEach,\n a = \"function\" == typeof Set && Set.prototype,\n u = Object.getOwnPropertyDescriptor && a ? Object.getOwnPropertyDescriptor(Set.prototype, \"size\") : null,\n c = a && u && \"function\" == typeof u.get ? u.get : null,\n l = a && Set.prototype.forEach,\n h = \"function\" == typeof WeakMap && WeakMap.prototype ? WeakMap.prototype.has : null,\n d = \"function\" == typeof WeakSet && WeakSet.prototype ? WeakSet.prototype.has : null,\n f = \"function\" == typeof WeakRef && WeakRef.prototype ? WeakRef.prototype.deref : null,\n p = Boolean.prototype.valueOf,\n b = Object.prototype.toString,\n y = Function.prototype.toString,\n g = String.prototype.match,\n m = String.prototype.slice,\n v = String.prototype.replace,\n w = String.prototype.toUpperCase,\n _ = String.prototype.toLowerCase,\n S = RegExp.prototype.test,\n E = Array.prototype.concat,\n M = Array.prototype.join,\n x = Array.prototype.slice,\n k = Math.floor,\n C = \"function\" == typeof BigInt ? BigInt.prototype.valueOf : null,\n A = Object.getOwnPropertySymbols,\n I = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? Symbol.prototype.toString : null,\n O = \"function\" == typeof Symbol && \"object\" == _typeof(Symbol.iterator),\n j = \"function\" == typeof Symbol && Symbol.toStringTag && (_typeof(Symbol.toStringTag) === O || \"symbol\") ? Symbol.toStringTag : null,\n R = Object.prototype.propertyIsEnumerable,\n N = (\"function\" == typeof Reflect ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function (t) {\n return t.__proto__;\n } : null);\n\n function T(t, e) {\n if (t === 1 / 0 || t === -1 / 0 || t != t || t && t > -1e3 && t < 1e3 || S.call(/e/, e)) return e;\n var n = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n\n if (\"number\" == typeof t) {\n var r = t < 0 ? -k(-t) : k(t);\n\n if (r !== t) {\n var i = String(r),\n o = m.call(e, i.length + 1);\n return v.call(i, n, \"$&_\") + \".\" + v.call(v.call(o, /([0-9]{3})/g, \"$&_\"), /_$/, \"\");\n }\n }\n\n return v.call(e, n, \"$&_\");\n }\n\n var P = n(150),\n L = P.custom,\n D = H(L) ? L : null;\n\n function B(t, e, n) {\n var r = \"double\" === (n.quoteStyle || e) ? '\"' : \"'\";\n return r + t + r;\n }\n\n function F(t) {\n return v.call(String(t), /\"/g, \""\");\n }\n\n function U(t) {\n return !(\"[object Array]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }\n\n function W(t) {\n return !(\"[object RegExp]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }\n\n function H(t) {\n if (O) return t && \"object\" == _typeof(t) && t instanceof Symbol;\n if (\"symbol\" == _typeof(t)) return !0;\n if (!t || \"object\" != _typeof(t) || !I) return !1;\n\n try {\n return I.call(t), !0;\n } catch (t) {}\n\n return !1;\n }\n\n t.exports = function t(e, n, r, i) {\n var a = n || {};\n if (V(a, \"quoteStyle\") && \"single\" !== a.quoteStyle && \"double\" !== a.quoteStyle) throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n if (V(a, \"maxStringLength\") && (\"number\" == typeof a.maxStringLength ? a.maxStringLength < 0 && a.maxStringLength !== 1 / 0 : null !== a.maxStringLength)) throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n var u = !V(a, \"customInspect\") || a.customInspect;\n if (\"boolean\" != typeof u && \"symbol\" !== u) throw new TypeError(\"option \\\"customInspect\\\", if provided, must be `true`, `false`, or `'symbol'`\");\n if (V(a, \"indent\") && null !== a.indent && \"\\t\" !== a.indent && !(parseInt(a.indent, 10) === a.indent && a.indent > 0)) throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n if (V(a, \"numericSeparator\") && \"boolean\" != typeof a.numericSeparator) throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n var b = a.numericSeparator;\n if (void 0 === e) return \"undefined\";\n if (null === e) return \"null\";\n if (\"boolean\" == typeof e) return e ? \"true\" : \"false\";\n if (\"string\" == typeof e) return function t(e, n) {\n if (e.length > n.maxStringLength) {\n var r = e.length - n.maxStringLength,\n i = \"... \" + r + \" more character\" + (r > 1 ? \"s\" : \"\");\n return t(m.call(e, 0, n.maxStringLength), n) + i;\n }\n\n return B(v.call(v.call(e, /(['\\\\])/g, \"\\\\$1\"), /[\\x00-\\x1f]/g, G), \"single\", n);\n }(e, a);\n\n if (\"number\" == typeof e) {\n if (0 === e) return 1 / 0 / e > 0 ? \"0\" : \"-0\";\n var w = String(e);\n return b ? T(e, w) : w;\n }\n\n if (\"bigint\" == typeof e) {\n var S = String(e) + \"n\";\n return b ? T(e, S) : S;\n }\n\n var k = void 0 === a.depth ? 5 : a.depth;\n if (void 0 === r && (r = 0), r >= k && k > 0 && \"object\" == _typeof(e)) return U(e) ? \"[Array]\" : \"[Object]\";\n\n var A = function (t, e) {\n var n;\n if (\"\\t\" === t.indent) n = \"\\t\";else {\n if (!(\"number\" == typeof t.indent && t.indent > 0)) return null;\n n = M.call(Array(t.indent + 1), \" \");\n }\n return {\n base: n,\n prev: M.call(Array(e + 1), n)\n };\n }(a, r);\n\n if (void 0 === i) i = [];else if (Z(i, e) >= 0) return \"[Circular]\";\n\n function L(e, n, o) {\n if (n && (i = x.call(i)).push(n), o) {\n var s = {\n depth: a.depth\n };\n return V(a, \"quoteStyle\") && (s.quoteStyle = a.quoteStyle), t(e, s, r + 1, i);\n }\n\n return t(e, a, r + 1, i);\n }\n\n if (\"function\" == typeof e && !W(e)) {\n var z = function (t) {\n if (t.name) return t.name;\n var e = g.call(y.call(t), /^function\\s*([\\w$]+)/);\n if (e) return e[1];\n return null;\n }(e),\n X = K(e, L);\n\n return \"[Function\" + (z ? \": \" + z : \" (anonymous)\") + \"]\" + (X.length > 0 ? \" { \" + M.call(X, \", \") + \" }\" : \"\");\n }\n\n if (H(e)) {\n var tt = O ? v.call(String(e), /^(Symbol\\(.*\\))_[^)]*$/, \"$1\") : I.call(e);\n return \"object\" != _typeof(e) || O ? tt : Y(tt);\n }\n\n if (function (t) {\n if (!t || \"object\" != _typeof(t)) return !1;\n if (\"undefined\" != typeof HTMLElement && t instanceof HTMLElement) return !0;\n return \"string\" == typeof t.nodeName && \"function\" == typeof t.getAttribute;\n }(e)) {\n for (var et = \"<\" + _.call(String(e.nodeName)), nt = e.attributes || [], rt = 0; rt < nt.length; rt++) {\n et += \" \" + nt[rt].name + \"=\" + B(F(nt[rt].value), \"double\", a);\n }\n\n return et += \">\", e.childNodes && e.childNodes.length && (et += \"...\"), et += \"\";\n }\n\n if (U(e)) {\n if (0 === e.length) return \"[]\";\n var it = K(e, L);\n return A && !function (t) {\n for (var e = 0; e < t.length; e++) {\n if (Z(t[e], \"\\n\") >= 0) return !1;\n }\n\n return !0;\n }(it) ? \"[\" + Q(it, A) + \"]\" : \"[ \" + M.call(it, \", \") + \" ]\";\n }\n\n if (function (t) {\n return !(\"[object Error]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }(e)) {\n var ot = K(e, L);\n return \"cause\" in Error.prototype || !(\"cause\" in e) || R.call(e, \"cause\") ? 0 === ot.length ? \"[\" + String(e) + \"]\" : \"{ [\" + String(e) + \"] \" + M.call(ot, \", \") + \" }\" : \"{ [\" + String(e) + \"] \" + M.call(E.call(\"[cause]: \" + L(e.cause), ot), \", \") + \" }\";\n }\n\n if (\"object\" == _typeof(e) && u) {\n if (D && \"function\" == typeof e[D] && P) return P(e, {\n depth: k - r\n });\n if (\"symbol\" !== u && \"function\" == typeof e.inspect) return e.inspect();\n }\n\n if (function (t) {\n if (!o || !t || \"object\" != _typeof(t)) return !1;\n\n try {\n o.call(t);\n\n try {\n c.call(t);\n } catch (t) {\n return !0;\n }\n\n return t instanceof Map;\n } catch (t) {}\n\n return !1;\n }(e)) {\n var st = [];\n return s && s.call(e, function (t, n) {\n st.push(L(n, e, !0) + \" => \" + L(t, e));\n }), J(\"Map\", o.call(e), st, A);\n }\n\n if (function (t) {\n if (!c || !t || \"object\" != _typeof(t)) return !1;\n\n try {\n c.call(t);\n\n try {\n o.call(t);\n } catch (t) {\n return !0;\n }\n\n return t instanceof Set;\n } catch (t) {}\n\n return !1;\n }(e)) {\n var at = [];\n return l && l.call(e, function (t) {\n at.push(L(t, e));\n }), J(\"Set\", c.call(e), at, A);\n }\n\n if (function (t) {\n if (!h || !t || \"object\" != _typeof(t)) return !1;\n\n try {\n h.call(t, h);\n\n try {\n d.call(t, d);\n } catch (t) {\n return !0;\n }\n\n return t instanceof WeakMap;\n } catch (t) {}\n\n return !1;\n }(e)) return $(\"WeakMap\");\n if (function (t) {\n if (!d || !t || \"object\" != _typeof(t)) return !1;\n\n try {\n d.call(t, d);\n\n try {\n h.call(t, h);\n } catch (t) {\n return !0;\n }\n\n return t instanceof WeakSet;\n } catch (t) {}\n\n return !1;\n }(e)) return $(\"WeakSet\");\n if (function (t) {\n if (!f || !t || \"object\" != _typeof(t)) return !1;\n\n try {\n return f.call(t), !0;\n } catch (t) {}\n\n return !1;\n }(e)) return $(\"WeakRef\");\n if (function (t) {\n return !(\"[object Number]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }(e)) return Y(L(Number(e)));\n if (function (t) {\n if (!t || \"object\" != _typeof(t) || !C) return !1;\n\n try {\n return C.call(t), !0;\n } catch (t) {}\n\n return !1;\n }(e)) return Y(L(C.call(e)));\n if (function (t) {\n return !(\"[object Boolean]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }(e)) return Y(p.call(e));\n if (function (t) {\n return !(\"[object String]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }(e)) return Y(L(String(e)));\n\n if (!function (t) {\n return !(\"[object Date]\" !== q(t) || j && \"object\" == _typeof(t) && j in t);\n }(e) && !W(e)) {\n var ut = K(e, L),\n ct = N ? N(e) === Object.prototype : e instanceof Object || e.constructor === Object,\n lt = e instanceof Object ? \"\" : \"null prototype\",\n ht = !ct && j && Object(e) === e && j in e ? m.call(q(e), 8, -1) : lt ? \"Object\" : \"\",\n dt = (ct || \"function\" != typeof e.constructor ? \"\" : e.constructor.name ? e.constructor.name + \" \" : \"\") + (ht || lt ? \"[\" + M.call(E.call([], ht || [], lt || []), \": \") + \"] \" : \"\");\n return 0 === ut.length ? dt + \"{}\" : A ? dt + \"{\" + Q(ut, A) + \"}\" : dt + \"{ \" + M.call(ut, \", \") + \" }\";\n }\n\n return String(e);\n };\n\n var z = Object.prototype.hasOwnProperty || function (t) {\n return t in this;\n };\n\n function V(t, e) {\n return z.call(t, e);\n }\n\n function q(t) {\n return b.call(t);\n }\n\n function Z(t, e) {\n if (t.indexOf) return t.indexOf(e);\n\n for (var n = 0, r = t.length; n < r; n++) {\n if (t[n] === e) return n;\n }\n\n return -1;\n }\n\n function G(t) {\n var e = t.charCodeAt(0),\n n = {\n 8: \"b\",\n 9: \"t\",\n 10: \"n\",\n 12: \"f\",\n 13: \"r\"\n }[e];\n return n ? \"\\\\\" + n : \"\\\\x\" + (e < 16 ? \"0\" : \"\") + w.call(e.toString(16));\n }\n\n function Y(t) {\n return \"Object(\" + t + \")\";\n }\n\n function $(t) {\n return t + \" { ? }\";\n }\n\n function J(t, e, n, r) {\n return t + \" (\" + e + \") {\" + (r ? Q(n, r) : M.call(n, \", \")) + \"}\";\n }\n\n function Q(t, e) {\n if (0 === t.length) return \"\";\n var n = \"\\n\" + e.prev + e.base;\n return n + M.call(t, \",\" + n) + \"\\n\" + e.prev;\n }\n\n function K(t, e) {\n var n = U(t),\n r = [];\n\n if (n) {\n r.length = t.length;\n\n for (var i = 0; i < t.length; i++) {\n r[i] = V(t, i) ? e(t[i], t) : \"\";\n }\n }\n\n var o,\n s = \"function\" == typeof A ? A(t) : [];\n\n if (O) {\n o = {};\n\n for (var a = 0; a < s.length; a++) {\n o[\"$\" + s[a]] = s[a];\n }\n }\n\n for (var u in t) {\n V(t, u) && (n && String(Number(u)) === u && u < t.length || O && o[\"$\" + u] instanceof Symbol || (S.call(/[^\\w$]/, u) ? r.push(e(u, t) + \": \" + e(t[u], t)) : r.push(u + \": \" + e(t[u], t))));\n }\n\n if (\"function\" == typeof A) for (var c = 0; c < s.length; c++) {\n R.call(t, s[c]) && r.push(\"[\" + e(s[c]) + \"]: \" + e(t[s[c]], t));\n }\n return r;\n }\n}, function (t, e) {}, function (t, e, n) {\n \"use strict\";\n\n var r = n(107),\n i = Object.prototype.hasOwnProperty,\n o = Array.isArray,\n s = {\n allowDots: !1,\n allowPrototypes: !1,\n allowSparse: !1,\n arrayLimit: 20,\n charset: \"utf-8\",\n charsetSentinel: !1,\n comma: !1,\n decoder: r.decode,\n delimiter: \"&\",\n depth: 5,\n ignoreQueryPrefix: !1,\n interpretNumericEntities: !1,\n parameterLimit: 1e3,\n parseArrays: !0,\n plainObjects: !1,\n strictNullHandling: !1\n },\n a = function a(t) {\n return t.replace(/&#(\\d+);/g, function (t, e) {\n return String.fromCharCode(parseInt(e, 10));\n });\n },\n u = function u(t, e) {\n return t && \"string\" == typeof t && e.comma && t.indexOf(\",\") > -1 ? t.split(\",\") : t;\n },\n c = function c(t, e, n, r) {\n if (t) {\n var o = n.allowDots ? t.replace(/\\.([^.[]+)/g, \"[$1]\") : t,\n s = /(\\[[^[\\]]*])/g,\n a = n.depth > 0 && /(\\[[^[\\]]*])/.exec(o),\n c = a ? o.slice(0, a.index) : o,\n l = [];\n\n if (c) {\n if (!n.plainObjects && i.call(Object.prototype, c) && !n.allowPrototypes) return;\n l.push(c);\n }\n\n for (var h = 0; n.depth > 0 && null !== (a = s.exec(o)) && h < n.depth;) {\n if (h += 1, !n.plainObjects && i.call(Object.prototype, a[1].slice(1, -1)) && !n.allowPrototypes) return;\n l.push(a[1]);\n }\n\n return a && l.push(\"[\" + o.slice(a.index) + \"]\"), function (t, e, n, r) {\n for (var i = r ? e : u(e, n), o = t.length - 1; o >= 0; --o) {\n var s,\n a = t[o];\n if (\"[]\" === a && n.parseArrays) s = [].concat(i);else {\n s = n.plainObjects ? Object.create(null) : {};\n var c = \"[\" === a.charAt(0) && \"]\" === a.charAt(a.length - 1) ? a.slice(1, -1) : a,\n l = parseInt(c, 10);\n n.parseArrays || \"\" !== c ? !isNaN(l) && a !== c && String(l) === c && l >= 0 && n.parseArrays && l <= n.arrayLimit ? (s = [])[l] = i : \"__proto__\" !== c && (s[c] = i) : s = {\n 0: i\n };\n }\n i = s;\n }\n\n return i;\n }(l, e, n, r);\n }\n };\n\n t.exports = function (t, e) {\n var n = function (t) {\n if (!t) return s;\n if (null !== t.decoder && void 0 !== t.decoder && \"function\" != typeof t.decoder) throw new TypeError(\"Decoder has to be a function.\");\n if (void 0 !== t.charset && \"utf-8\" !== t.charset && \"iso-8859-1\" !== t.charset) throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var e = void 0 === t.charset ? s.charset : t.charset;\n return {\n allowDots: void 0 === t.allowDots ? s.allowDots : !!t.allowDots,\n allowPrototypes: \"boolean\" == typeof t.allowPrototypes ? t.allowPrototypes : s.allowPrototypes,\n allowSparse: \"boolean\" == typeof t.allowSparse ? t.allowSparse : s.allowSparse,\n arrayLimit: \"number\" == typeof t.arrayLimit ? t.arrayLimit : s.arrayLimit,\n charset: e,\n charsetSentinel: \"boolean\" == typeof t.charsetSentinel ? t.charsetSentinel : s.charsetSentinel,\n comma: \"boolean\" == typeof t.comma ? t.comma : s.comma,\n decoder: \"function\" == typeof t.decoder ? t.decoder : s.decoder,\n delimiter: \"string\" == typeof t.delimiter || r.isRegExp(t.delimiter) ? t.delimiter : s.delimiter,\n depth: \"number\" == typeof t.depth || !1 === t.depth ? +t.depth : s.depth,\n ignoreQueryPrefix: !0 === t.ignoreQueryPrefix,\n interpretNumericEntities: \"boolean\" == typeof t.interpretNumericEntities ? t.interpretNumericEntities : s.interpretNumericEntities,\n parameterLimit: \"number\" == typeof t.parameterLimit ? t.parameterLimit : s.parameterLimit,\n parseArrays: !1 !== t.parseArrays,\n plainObjects: \"boolean\" == typeof t.plainObjects ? t.plainObjects : s.plainObjects,\n strictNullHandling: \"boolean\" == typeof t.strictNullHandling ? t.strictNullHandling : s.strictNullHandling\n };\n }(e);\n\n if (\"\" === t || null == t) return n.plainObjects ? Object.create(null) : {};\n\n for (var l = \"string\" == typeof t ? function (t, e) {\n var n,\n c = {\n __proto__: null\n },\n l = e.ignoreQueryPrefix ? t.replace(/^\\?/, \"\") : t,\n h = e.parameterLimit === 1 / 0 ? void 0 : e.parameterLimit,\n d = l.split(e.delimiter, h),\n f = -1,\n p = e.charset;\n if (e.charsetSentinel) for (n = 0; n < d.length; ++n) {\n 0 === d[n].indexOf(\"utf8=\") && (\"utf8=%E2%9C%93\" === d[n] ? p = \"utf-8\" : \"utf8=%26%2310003%3B\" === d[n] && (p = \"iso-8859-1\"), f = n, n = d.length);\n }\n\n for (n = 0; n < d.length; ++n) {\n if (n !== f) {\n var b,\n y,\n g = d[n],\n m = g.indexOf(\"]=\"),\n v = -1 === m ? g.indexOf(\"=\") : m + 1;\n -1 === v ? (b = e.decoder(g, s.decoder, p, \"key\"), y = e.strictNullHandling ? null : \"\") : (b = e.decoder(g.slice(0, v), s.decoder, p, \"key\"), y = r.maybeMap(u(g.slice(v + 1), e), function (t) {\n return e.decoder(t, s.decoder, p, \"value\");\n })), y && e.interpretNumericEntities && \"iso-8859-1\" === p && (y = a(y)), g.indexOf(\"[]=\") > -1 && (y = o(y) ? [y] : y), i.call(c, b) ? c[b] = r.combine(c[b], y) : c[b] = y;\n }\n }\n\n return c;\n }(t, n) : t, h = n.plainObjects ? Object.create(null) : {}, d = Object.keys(l), f = 0; f < d.length; ++f) {\n var p = d[f],\n b = c(p, l[p], n, \"string\" == typeof t);\n h = r.merge(h, b, n);\n }\n\n return !0 === n.allowSparse ? h : r.compact(h);\n };\n}, function (t, e, n) {\n (function (e) {\n var r = n(109),\n i = n(167),\n o = {\n type: \"object\",\n properties: {\n types: {\n type: \"object\",\n additionalProperties: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\"\n },\n type: {\n type: \"string\"\n }\n },\n required: [\"name\", \"type\"]\n }\n }\n },\n primaryType: {\n type: \"string\"\n },\n domain: {\n type: \"object\"\n },\n message: {\n type: \"object\"\n }\n },\n required: [\"types\", \"primaryType\", \"domain\", \"message\"]\n },\n s = {\n encodeData: function encodeData(t, n, o) {\n var _this14 = this;\n\n var s = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : !0;\n var a = [\"bytes32\"],\n u = [this.hashType(t, o)];\n\n if (s) {\n var c = function c(t, n, a) {\n if (void 0 !== o[n]) return [\"bytes32\", null == a ? \"0x0000000000000000000000000000000000000000000000000000000000000000\" : r.keccak(_this14.encodeData(n, a, o, s))];\n if (void 0 === a) throw new Error(\"missing value for field \".concat(t, \" of type \").concat(n));\n if (\"bytes\" === n) return [\"bytes32\", r.keccak(a)];\n if (\"string\" === n) return \"string\" == typeof a && (a = e.from(a, \"utf8\")), [\"bytes32\", r.keccak(a)];\n\n if (n.lastIndexOf(\"]\") === n.length - 1) {\n var _e11 = n.slice(0, n.lastIndexOf(\"[\")),\n _o5 = a.map(function (n) {\n return c(t, _e11, n);\n });\n\n return [\"bytes32\", r.keccak(i.rawEncode(_o5.map(function (_ref9) {\n var _ref10 = _slicedToArray(_ref9, 1),\n t = _ref10[0];\n\n return t;\n }), _o5.map(function (_ref11) {\n var _ref12 = _slicedToArray(_ref11, 2),\n t = _ref12[1];\n\n return t;\n })))];\n }\n\n return [n, a];\n };\n\n var _iterator3 = _createForOfIteratorHelper(o[t]),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _e12 = _step3.value;\n\n var _c = c(_e12.name, _e12.type, n[_e12.name]),\n _c2 = _slicedToArray(_c, 2),\n _t11 = _c2[0],\n _r10 = _c2[1];\n\n a.push(_t11), u.push(_r10);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } else {\n var _iterator4 = _createForOfIteratorHelper(o[t]),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _i7 = _step4.value;\n var _t12 = n[_i7.name];\n if (void 0 !== _t12) if (\"bytes\" === _i7.type) a.push(\"bytes32\"), _t12 = r.keccak(_t12), u.push(_t12);else if (\"string\" === _i7.type) a.push(\"bytes32\"), \"string\" == typeof _t12 && (_t12 = e.from(_t12, \"utf8\")), _t12 = r.keccak(_t12), u.push(_t12);else if (void 0 !== o[_i7.type]) a.push(\"bytes32\"), _t12 = r.keccak(this.encodeData(_i7.type, _t12, o, s)), u.push(_t12);else {\n if (_i7.type.lastIndexOf(\"]\") === _i7.type.length - 1) throw new Error(\"Arrays currently unimplemented in encodeData\");\n a.push(_i7.type), u.push(_t12);\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n\n return i.rawEncode(a, u);\n },\n encodeType: function encodeType(t, e) {\n var n = \"\",\n r = this.findTypeDependencies(t, e).filter(function (e) {\n return e !== t;\n });\n r = [t].concat(r.sort());\n\n var _iterator5 = _createForOfIteratorHelper(r),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _t13 = _step5.value;\n if (!e[_t13]) throw new Error(\"No type definition specified: \" + _t13);\n n += _t13 + \"(\" + e[_t13].map(function (_ref13) {\n var t = _ref13.name,\n e = _ref13.type;\n return e + \" \" + t;\n }).join(\",\") + \")\";\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return n;\n },\n findTypeDependencies: function findTypeDependencies(t, e) {\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (t = t.match(/^\\w*/)[0], n.includes(t) || void 0 === e[t]) return n;\n n.push(t);\n\n var _iterator6 = _createForOfIteratorHelper(e[t]),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _r11 = _step6.value;\n\n var _iterator7 = _createForOfIteratorHelper(this.findTypeDependencies(_r11.type, e, n)),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _t14 = _step7.value;\n !n.includes(_t14) && n.push(_t14);\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return n;\n },\n hashStruct: function hashStruct(t, e, n) {\n var i = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : !0;\n return r.keccak(this.encodeData(t, e, n, i));\n },\n hashType: function hashType(t, e) {\n return r.keccak(this.encodeType(t, e));\n },\n sanitizeData: function sanitizeData(t) {\n var e = {};\n\n for (var _n21 in o.properties) {\n t[_n21] && (e[_n21] = t[_n21]);\n }\n\n return e.types && (e.types = Object.assign({\n EIP712Domain: []\n }, e.types)), e;\n },\n hash: function hash(t) {\n var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0;\n var i = this.sanitizeData(t),\n o = [e.from(\"1901\", \"hex\")];\n return o.push(this.hashStruct(\"EIP712Domain\", i.domain, i.types, n)), \"EIP712Domain\" !== i.primaryType && o.push(this.hashStruct(i.primaryType, i.message, i.types, n)), r.keccak(e.concat(o));\n }\n };\n t.exports = {\n TYPED_MESSAGE_SCHEMA: o,\n TypedDataUtils: s,\n hashForSignTypedDataLegacy: function hashForSignTypedDataLegacy(t) {\n return function (t) {\n var e = new Error(\"Expect argument to be non-empty array\");\n if (\"object\" != _typeof(t) || !t.length) throw e;\n var n = t.map(function (t) {\n return \"bytes\" === t.type ? r.toBuffer(t.value) : t.value;\n }),\n o = t.map(function (t) {\n return t.type;\n }),\n s = t.map(function (t) {\n if (!t.name) throw e;\n return t.type + \" \" + t.name;\n });\n return i.soliditySHA3([\"bytes32\", \"bytes32\"], [i.soliditySHA3(new Array(t.length).fill(\"string\"), s), i.soliditySHA3(o, n)]);\n }(t.data);\n },\n hashForSignTypedData_v3: function hashForSignTypedData_v3(t) {\n return s.hash(t.data, !1);\n },\n hashForSignTypedData_v4: function hashForSignTypedData_v4(t) {\n return s.hash(t.data);\n }\n };\n }).call(this, n(19).Buffer);\n}, function (t, e, n) {\n t.exports = n(154)(n(165));\n}, function (t, e, n) {\n var r = n(155),\n i = n(164);\n\n t.exports = function (t) {\n var e = r(t),\n n = i(t);\n return function (t, r) {\n switch (\"string\" == typeof t ? t.toLowerCase() : t) {\n case \"keccak224\":\n return new e(1152, 448, null, 224, r);\n\n case \"keccak256\":\n return new e(1088, 512, null, 256, r);\n\n case \"keccak384\":\n return new e(832, 768, null, 384, r);\n\n case \"keccak512\":\n return new e(576, 1024, null, 512, r);\n\n case \"sha3-224\":\n return new e(1152, 448, 6, 224, r);\n\n case \"sha3-256\":\n return new e(1088, 512, 6, 256, r);\n\n case \"sha3-384\":\n return new e(832, 768, 6, 384, r);\n\n case \"sha3-512\":\n return new e(576, 1024, 6, 512, r);\n\n case \"shake128\":\n return new n(1344, 256, 31, r);\n\n case \"shake256\":\n return new n(1088, 512, 31, r);\n\n default:\n throw new Error(\"Invald algorithm: \" + t);\n }\n };\n };\n}, function (t, e, n) {\n (function (e) {\n var _n22 = n(110),\n r = _n22.Transform;\n\n t.exports = function (t) {\n return /*#__PURE__*/function (_r12) {\n _inherits(n, _r12);\n\n var _super9 = _createSuper(n);\n\n function n(e, _n23, r, i, o) {\n var _this15;\n\n _classCallCheck(this, n);\n\n _this15 = _super9.call(this, o), _this15._rate = e, _this15._capacity = _n23, _this15._delimitedSuffix = r, _this15._hashBitLength = i, _this15._options = o, _this15._state = new t(), _this15._state.initialize(e, _n23), _this15._finalized = !1;\n return _this15;\n }\n\n _createClass(n, [{\n key: \"_transform\",\n value: function _transform(t, e, _n24) {\n var r = null;\n\n try {\n this.update(t, e);\n } catch (t) {\n r = t;\n }\n\n _n24(r);\n }\n }, {\n key: \"_flush\",\n value: function _flush(t) {\n var e = null;\n\n try {\n this.push(this.digest());\n } catch (t) {\n e = t;\n }\n\n t(e);\n }\n }, {\n key: \"update\",\n value: function update(t, _n25) {\n if (!e.isBuffer(t) && \"string\" != typeof t) throw new TypeError(\"Data must be a string or a buffer\");\n if (this._finalized) throw new Error(\"Digest already called\");\n return e.isBuffer(t) || (t = e.from(t, _n25)), this._state.absorb(t), this;\n }\n }, {\n key: \"digest\",\n value: function digest(t) {\n if (this._finalized) throw new Error(\"Digest already called\");\n this._finalized = !0, this._delimitedSuffix && this._state.absorbLastFewBits(this._delimitedSuffix);\n\n var e = this._state.squeeze(this._hashBitLength / 8);\n\n return void 0 !== t && (e = e.toString(t)), this._resetState(), e;\n }\n }, {\n key: \"_resetState\",\n value: function _resetState() {\n return this._state.initialize(this._rate, this._capacity), this;\n }\n }, {\n key: \"_clone\",\n value: function _clone() {\n var t = new n(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options);\n return this._state.copy(t._state), t._finalized = this._finalized, t;\n }\n }]);\n\n return n;\n }(r);\n };\n }).call(this, n(19).Buffer);\n}, function (t, e) {}, function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n var n = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(t);\n e && (r = r.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function i(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = null != arguments[e] ? arguments[e] : {};\n e % 2 ? r(Object(n), !0).forEach(function (e) {\n o(t, e, n[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : r(Object(n)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e));\n });\n }\n\n return t;\n }\n\n function o(t, e, n) {\n return (e = a(e)) in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n function s(t, e) {\n for (var n = 0; n < e.length; n++) {\n var r = e[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(t, a(r.key), r);\n }\n }\n\n function a(t) {\n var e = function (t, e) {\n if (\"object\" != _typeof(t) || null === t) return t;\n var n = t[Symbol.toPrimitive];\n\n if (void 0 !== n) {\n var r = n.call(t, e || \"default\");\n if (\"object\" != _typeof(r)) return r;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (\"string\" === e ? String : Number)(t);\n }(t, \"string\");\n\n return \"symbol\" == _typeof(e) ? e : String(e);\n }\n\n var u = n(19).Buffer,\n c = n(158).inspect,\n l = c && c.custom || \"inspect\";\n\n t.exports = function () {\n function t() {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this.head = null, this.tail = null, this.length = 0;\n }\n\n var e, n, r;\n return e = t, (n = [{\n key: \"push\",\n value: function value(t) {\n var e = {\n data: t,\n next: null\n };\n this.length > 0 ? this.tail.next = e : this.head = e, this.tail = e, ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function value(t) {\n var e = {\n data: t,\n next: this.head\n };\n 0 === this.length && (this.tail = e), this.head = e, ++this.length;\n }\n }, {\n key: \"shift\",\n value: function value() {\n if (0 !== this.length) {\n var t = this.head.data;\n return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, t;\n }\n }\n }, {\n key: \"clear\",\n value: function value() {\n this.head = this.tail = null, this.length = 0;\n }\n }, {\n key: \"join\",\n value: function value(t) {\n if (0 === this.length) return \"\";\n\n for (var e = this.head, n = \"\" + e.data; e = e.next;) {\n n += t + e.data;\n }\n\n return n;\n }\n }, {\n key: \"concat\",\n value: function value(t) {\n if (0 === this.length) return u.alloc(0);\n\n for (var e, n, r, i = u.allocUnsafe(t >>> 0), o = this.head, s = 0; o;) {\n e = o.data, n = i, r = s, u.prototype.copy.call(e, n, r), s += o.data.length, o = o.next;\n }\n\n return i;\n }\n }, {\n key: \"consume\",\n value: function value(t, e) {\n var n;\n return t < this.head.data.length ? (n = this.head.data.slice(0, t), this.head.data = this.head.data.slice(t)) : n = t === this.head.data.length ? this.shift() : e ? this._getString(t) : this._getBuffer(t), n;\n }\n }, {\n key: \"first\",\n value: function value() {\n return this.head.data;\n }\n }, {\n key: \"_getString\",\n value: function value(t) {\n var e = this.head,\n n = 1,\n r = e.data;\n\n for (t -= r.length; e = e.next;) {\n var i = e.data,\n o = t > i.length ? i.length : t;\n\n if (o === i.length ? r += i : r += i.slice(0, t), 0 == (t -= o)) {\n o === i.length ? (++n, e.next ? this.head = e.next : this.head = this.tail = null) : (this.head = e, e.data = i.slice(o));\n break;\n }\n\n ++n;\n }\n\n return this.length -= n, r;\n }\n }, {\n key: \"_getBuffer\",\n value: function value(t) {\n var e = u.allocUnsafe(t),\n n = this.head,\n r = 1;\n\n for (n.data.copy(e), t -= n.data.length; n = n.next;) {\n var i = n.data,\n o = t > i.length ? i.length : t;\n\n if (i.copy(e, e.length - t, 0, o), 0 == (t -= o)) {\n o === i.length ? (++r, n.next ? this.head = n.next : this.head = this.tail = null) : (this.head = n, n.data = i.slice(o));\n break;\n }\n\n ++r;\n }\n\n return this.length -= r, e;\n }\n }, {\n key: l,\n value: function value(t, e) {\n return c(this, i(i({}, e), {}, {\n depth: 0,\n customInspect: !1\n }));\n }\n }]) && s(e.prototype, n), r && s(e, r), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), t;\n }();\n}, function (t, e) {}, function (t, e, n) {\n (function (e) {\n function n(t) {\n try {\n if (!e.localStorage) return !1;\n } catch (t) {\n return !1;\n }\n\n var n = e.localStorage[t];\n return null != n && \"true\" === String(n).toLowerCase();\n }\n\n t.exports = function (t, e) {\n if (n(\"noDeprecation\")) return t;\n var r = !1;\n return function () {\n if (!r) {\n if (n(\"throwDeprecation\")) throw new Error(e);\n n(\"traceDeprecation\") ? console.trace(e) : console.warn(e), r = !0;\n }\n\n return t.apply(this, arguments);\n };\n };\n }).call(this, n(63));\n}, function (t, e, n) {\n \"use strict\";\n\n (function (e) {\n var r;\n\n function i(t, e, n) {\n return (e = function (t) {\n var e = function (t, e) {\n if (\"object\" != _typeof(t) || null === t) return t;\n var n = t[Symbol.toPrimitive];\n\n if (void 0 !== n) {\n var r = n.call(t, e || \"default\");\n if (\"object\" != _typeof(r)) return r;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (\"string\" === e ? String : Number)(t);\n }(t, \"string\");\n\n return \"symbol\" == _typeof(e) ? e : String(e);\n }(e)) in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n var o = n(95),\n s = Symbol(\"lastResolve\"),\n a = Symbol(\"lastReject\"),\n u = Symbol(\"error\"),\n c = Symbol(\"ended\"),\n l = Symbol(\"lastPromise\"),\n h = Symbol(\"handlePromise\"),\n d = Symbol(\"stream\");\n\n function f(t, e) {\n return {\n value: t,\n done: e\n };\n }\n\n function p(t) {\n var e = t[s];\n\n if (null !== e) {\n var n = t[d].read();\n null !== n && (t[l] = null, t[s] = null, t[a] = null, e(f(n, !1)));\n }\n }\n\n function b(t) {\n e.nextTick(p, t);\n }\n\n var y = Object.getPrototypeOf(function () {}),\n g = Object.setPrototypeOf((i(r = {\n get stream() {\n return this[d];\n },\n\n next: function next() {\n var t = this,\n n = this[u];\n if (null !== n) return Promise.reject(n);\n if (this[c]) return Promise.resolve(f(void 0, !0));\n if (this[d].destroyed) return new Promise(function (n, r) {\n e.nextTick(function () {\n t[u] ? r(t[u]) : n(f(void 0, !0));\n });\n });\n var r,\n i = this[l];\n if (i) r = new Promise(function (t, e) {\n return function (n, r) {\n t.then(function () {\n e[c] ? n(f(void 0, !0)) : e[h](n, r);\n }, r);\n };\n }(i, this));else {\n var o = this[d].read();\n if (null !== o) return Promise.resolve(f(o, !1));\n r = new Promise(this[h]);\n }\n return this[l] = r, r;\n }\n }, Symbol.asyncIterator, function () {\n return this;\n }), i(r, \"return\", function () {\n var t = this;\n return new Promise(function (e, n) {\n t[d].destroy(null, function (t) {\n t ? n(t) : e(f(void 0, !0));\n });\n });\n }), r), y);\n\n t.exports = function (t) {\n var e,\n n = Object.create(g, (i(e = {}, d, {\n value: t,\n writable: !0\n }), i(e, s, {\n value: null,\n writable: !0\n }), i(e, a, {\n value: null,\n writable: !0\n }), i(e, u, {\n value: null,\n writable: !0\n }), i(e, c, {\n value: t._readableState.endEmitted,\n writable: !0\n }), i(e, h, {\n value: function value(t, e) {\n var r = n[d].read();\n r ? (n[l] = null, n[s] = null, n[a] = null, t(f(r, !1))) : (n[s] = t, n[a] = e);\n },\n writable: !0\n }), e));\n return n[l] = null, o(t, function (t) {\n if (t && \"ERR_STREAM_PREMATURE_CLOSE\" !== t.code) {\n var e = n[a];\n return null !== e && (n[l] = null, n[s] = null, n[a] = null, e(t)), void (n[u] = t);\n }\n\n var r = n[s];\n null !== r && (n[l] = null, n[s] = null, n[a] = null, r(f(void 0, !0))), n[c] = !0;\n }), t.on(\"readable\", b.bind(null, n)), n;\n };\n }).call(this, n(40));\n}, function (t, e) {\n t.exports = function () {\n throw new Error(\"Readable.from is not available in the browser\");\n };\n}, function (t, e, n) {\n \"use strict\";\n\n t.exports = i;\n var r = n(117);\n\n function i(t) {\n if (!(this instanceof i)) return new i(t);\n r.call(this, t);\n }\n\n n(24)(i, r), i.prototype._transform = function (t, e, n) {\n n(null, t);\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r;\n var i = n(46).codes,\n o = i.ERR_MISSING_ARGS,\n s = i.ERR_STREAM_DESTROYED;\n\n function a(t) {\n if (t) throw t;\n }\n\n function u(t, e, i, o) {\n o = function (t) {\n var e = !1;\n return function () {\n e || (e = !0, t.apply(void 0, arguments));\n };\n }(o);\n\n var a = !1;\n t.on(\"close\", function () {\n a = !0;\n }), void 0 === r && (r = n(95)), r(t, {\n readable: e,\n writable: i\n }, function (t) {\n if (t) return o(t);\n a = !0, o();\n });\n var u = !1;\n return function (e) {\n if (!a && !u) return u = !0, function (t) {\n return t.setHeader && \"function\" == typeof t.abort;\n }(t) ? t.abort() : \"function\" == typeof t.destroy ? t.destroy() : void o(e || new s(\"pipe\"));\n };\n }\n\n function c(t) {\n t();\n }\n\n function l(t, e) {\n return t.pipe(e);\n }\n\n function h(t) {\n return t.length ? \"function\" != typeof t[t.length - 1] ? a : t.pop() : a;\n }\n\n t.exports = function () {\n for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) {\n e[n] = arguments[n];\n }\n\n var r,\n i = h(e);\n if (Array.isArray(e[0]) && (e = e[0]), e.length < 2) throw new o(\"streams\");\n var s = e.map(function (t, n) {\n var o = n < e.length - 1;\n return u(t, o, n > 0, function (t) {\n r || (r = t), t && s.forEach(c), o || (s.forEach(c), i(r));\n });\n });\n return e.reduce(l);\n };\n}, function (t, e, n) {\n (function (e) {\n var _n26 = n(110),\n r = _n26.Transform;\n\n t.exports = function (t) {\n return /*#__PURE__*/function (_r13) {\n _inherits(n, _r13);\n\n var _super10 = _createSuper(n);\n\n function n(e, _n27, r, i) {\n var _this16;\n\n _classCallCheck(this, n);\n\n _this16 = _super10.call(this, i), _this16._rate = e, _this16._capacity = _n27, _this16._delimitedSuffix = r, _this16._options = i, _this16._state = new t(), _this16._state.initialize(e, _n27), _this16._finalized = !1;\n return _this16;\n }\n\n _createClass(n, [{\n key: \"_transform\",\n value: function _transform(t, e, _n28) {\n var r = null;\n\n try {\n this.update(t, e);\n } catch (t) {\n r = t;\n }\n\n _n28(r);\n }\n }, {\n key: \"_flush\",\n value: function _flush() {}\n }, {\n key: \"_read\",\n value: function _read(t) {\n this.push(this.squeeze(t));\n }\n }, {\n key: \"update\",\n value: function update(t, _n29) {\n if (!e.isBuffer(t) && \"string\" != typeof t) throw new TypeError(\"Data must be a string or a buffer\");\n if (this._finalized) throw new Error(\"Squeeze already called\");\n return e.isBuffer(t) || (t = e.from(t, _n29)), this._state.absorb(t), this;\n }\n }, {\n key: \"squeeze\",\n value: function squeeze(t, e) {\n this._finalized || (this._finalized = !0, this._state.absorbLastFewBits(this._delimitedSuffix));\n\n var _n30 = this._state.squeeze(t);\n\n return void 0 !== e && (_n30 = _n30.toString(e)), _n30;\n }\n }, {\n key: \"_resetState\",\n value: function _resetState() {\n return this._state.initialize(this._rate, this._capacity), this;\n }\n }, {\n key: \"_clone\",\n value: function _clone() {\n var t = new n(this._rate, this._capacity, this._delimitedSuffix, this._options);\n return this._state.copy(t._state), t._finalized = this._finalized, t;\n }\n }]);\n\n return n;\n }(r);\n };\n }).call(this, n(19).Buffer);\n}, function (t, e, n) {\n (function (e) {\n var r = n(166);\n\n function i() {\n this.state = [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], this.blockSize = null, this.count = 0, this.squeezing = !1;\n }\n\n i.prototype.initialize = function (t, e) {\n for (var _t15 = 0; _t15 < 50; ++_t15) {\n this.state[_t15] = 0;\n }\n\n this.blockSize = t / 8, this.count = 0, this.squeezing = !1;\n }, i.prototype.absorb = function (t) {\n for (var _e13 = 0; _e13 < t.length; ++_e13) {\n this.state[~~(this.count / 4)] ^= t[_e13] << this.count % 4 * 8, this.count += 1, this.count === this.blockSize && (r.p1600(this.state), this.count = 0);\n }\n }, i.prototype.absorbLastFewBits = function (t) {\n this.state[~~(this.count / 4)] ^= t << this.count % 4 * 8, 0 != (128 & t) && this.count === this.blockSize - 1 && r.p1600(this.state), this.state[~~((this.blockSize - 1) / 4)] ^= 128 << (this.blockSize - 1) % 4 * 8, r.p1600(this.state), this.count = 0, this.squeezing = !0;\n }, i.prototype.squeeze = function (t) {\n this.squeezing || this.absorbLastFewBits(1);\n var n = e.alloc(t);\n\n for (var _e14 = 0; _e14 < t; ++_e14) {\n n[_e14] = this.state[~~(this.count / 4)] >>> this.count % 4 * 8 & 255, this.count += 1, this.count === this.blockSize && (r.p1600(this.state), this.count = 0);\n }\n\n return n;\n }, i.prototype.copy = function (t) {\n for (var _e15 = 0; _e15 < 50; ++_e15) {\n t.state[_e15] = this.state[_e15];\n }\n\n t.blockSize = this.blockSize, t.count = this.count, t.squeezing = this.squeezing;\n }, t.exports = i;\n }).call(this, n(19).Buffer);\n}, function (t, e) {\n var n = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n\n e.p1600 = function (t) {\n for (var _e16 = 0; _e16 < 24; ++_e16) {\n var r = t[0] ^ t[10] ^ t[20] ^ t[30] ^ t[40],\n i = t[1] ^ t[11] ^ t[21] ^ t[31] ^ t[41],\n o = t[2] ^ t[12] ^ t[22] ^ t[32] ^ t[42],\n _s4 = t[3] ^ t[13] ^ t[23] ^ t[33] ^ t[43],\n _a4 = t[4] ^ t[14] ^ t[24] ^ t[34] ^ t[44],\n u = t[5] ^ t[15] ^ t[25] ^ t[35] ^ t[45],\n c = t[6] ^ t[16] ^ t[26] ^ t[36] ^ t[46],\n l = t[7] ^ t[17] ^ t[27] ^ t[37] ^ t[47],\n h = t[8] ^ t[18] ^ t[28] ^ t[38] ^ t[48],\n d = t[9] ^ t[19] ^ t[29] ^ t[39] ^ t[49];\n\n var f = h ^ (o << 1 | _s4 >>> 31),\n p = d ^ (_s4 << 1 | o >>> 31);\n\n var b = t[0] ^ f,\n y = t[1] ^ p,\n g = t[10] ^ f,\n m = t[11] ^ p,\n v = t[20] ^ f,\n w = t[21] ^ p,\n _ = t[30] ^ f,\n S = t[31] ^ p,\n E = t[40] ^ f,\n M = t[41] ^ p;\n\n f = r ^ (_a4 << 1 | u >>> 31), p = i ^ (u << 1 | _a4 >>> 31);\n var x = t[2] ^ f,\n k = t[3] ^ p,\n C = t[12] ^ f,\n A = t[13] ^ p,\n I = t[22] ^ f,\n O = t[23] ^ p,\n j = t[32] ^ f,\n R = t[33] ^ p,\n N = t[42] ^ f,\n T = t[43] ^ p;\n f = o ^ (c << 1 | l >>> 31), p = _s4 ^ (l << 1 | c >>> 31);\n var P = t[4] ^ f,\n L = t[5] ^ p,\n D = t[14] ^ f,\n B = t[15] ^ p,\n F = t[24] ^ f,\n U = t[25] ^ p,\n W = t[34] ^ f,\n H = t[35] ^ p,\n z = t[44] ^ f,\n V = t[45] ^ p;\n f = _a4 ^ (h << 1 | d >>> 31), p = u ^ (d << 1 | h >>> 31);\n var q = t[6] ^ f,\n Z = t[7] ^ p,\n G = t[16] ^ f,\n Y = t[17] ^ p,\n $ = t[26] ^ f,\n J = t[27] ^ p,\n Q = t[36] ^ f,\n K = t[37] ^ p,\n X = t[46] ^ f,\n tt = t[47] ^ p;\n f = c ^ (r << 1 | i >>> 31), p = l ^ (i << 1 | r >>> 31);\n\n var et = t[8] ^ f,\n nt = t[9] ^ p,\n rt = t[18] ^ f,\n it = t[19] ^ p,\n ot = t[28] ^ f,\n st = t[29] ^ p,\n at = t[38] ^ f,\n ut = t[39] ^ p,\n ct = t[48] ^ f,\n lt = t[49] ^ p,\n ht = b,\n dt = y,\n ft = m << 4 | g >>> 28,\n pt = g << 4 | m >>> 28,\n bt = v << 3 | w >>> 29,\n yt = w << 3 | v >>> 29,\n gt = S << 9 | _ >>> 23,\n mt = _ << 9 | S >>> 23,\n vt = E << 18 | M >>> 14,\n wt = M << 18 | E >>> 14,\n _t = x << 1 | k >>> 31,\n St = k << 1 | x >>> 31,\n Et = A << 12 | C >>> 20,\n Mt = C << 12 | A >>> 20,\n xt = I << 10 | O >>> 22,\n kt = O << 10 | I >>> 22,\n Ct = R << 13 | j >>> 19,\n At = j << 13 | R >>> 19,\n It = N << 2 | T >>> 30,\n Ot = T << 2 | N >>> 30,\n jt = L << 30 | P >>> 2,\n Rt = P << 30 | L >>> 2,\n Nt = D << 6 | B >>> 26,\n Tt = B << 6 | D >>> 26,\n Pt = U << 11 | F >>> 21,\n Lt = F << 11 | U >>> 21,\n Dt = W << 15 | H >>> 17,\n Bt = H << 15 | W >>> 17,\n Ft = V << 29 | z >>> 3,\n Ut = z << 29 | V >>> 3,\n Wt = q << 28 | Z >>> 4,\n Ht = Z << 28 | q >>> 4,\n zt = Y << 23 | G >>> 9,\n Vt = G << 23 | Y >>> 9,\n qt = $ << 25 | J >>> 7,\n Zt = J << 25 | $ >>> 7,\n Gt = Q << 21 | K >>> 11,\n Yt = K << 21 | Q >>> 11,\n $t = tt << 24 | X >>> 8,\n Jt = X << 24 | tt >>> 8,\n Qt = et << 27 | nt >>> 5,\n Kt = nt << 27 | et >>> 5,\n Xt = rt << 20 | it >>> 12,\n te = it << 20 | rt >>> 12,\n ee = st << 7 | ot >>> 25,\n ne = ot << 7 | st >>> 25,\n re = at << 8 | ut >>> 24,\n ie = ut << 8 | at >>> 24,\n oe = ct << 14 | lt >>> 18,\n se = lt << 14 | ct >>> 18;\n\n t[0] = ht ^ ~Et & Pt, t[1] = dt ^ ~Mt & Lt, t[10] = Wt ^ ~Xt & bt, t[11] = Ht ^ ~te & yt, t[20] = _t ^ ~Nt & qt, t[21] = St ^ ~Tt & Zt, t[30] = Qt ^ ~ft & xt, t[31] = Kt ^ ~pt & kt, t[40] = jt ^ ~zt & ee, t[41] = Rt ^ ~Vt & ne, t[2] = Et ^ ~Pt & Gt, t[3] = Mt ^ ~Lt & Yt, t[12] = Xt ^ ~bt & Ct, t[13] = te ^ ~yt & At, t[22] = Nt ^ ~qt & re, t[23] = Tt ^ ~Zt & ie, t[32] = ft ^ ~xt & Dt, t[33] = pt ^ ~kt & Bt, t[42] = zt ^ ~ee & gt, t[43] = Vt ^ ~ne & mt, t[4] = Pt ^ ~Gt & oe, t[5] = Lt ^ ~Yt & se, t[14] = bt ^ ~Ct & Ft, t[15] = yt ^ ~At & Ut, t[24] = qt ^ ~re & vt, t[25] = Zt ^ ~ie & wt, t[34] = xt ^ ~Dt & $t, t[35] = kt ^ ~Bt & Jt, t[44] = ee ^ ~gt & It, t[45] = ne ^ ~mt & Ot, t[6] = Gt ^ ~oe & ht, t[7] = Yt ^ ~se & dt, t[16] = Ct ^ ~Ft & Wt, t[17] = At ^ ~Ut & Ht, t[26] = re ^ ~vt & _t, t[27] = ie ^ ~wt & St, t[36] = Dt ^ ~$t & Qt, t[37] = Bt ^ ~Jt & Kt, t[46] = gt ^ ~It & jt, t[47] = mt ^ ~Ot & Rt, t[8] = oe ^ ~ht & Et, t[9] = se ^ ~dt & Mt, t[18] = Ft ^ ~Wt & Xt, t[19] = Ut ^ ~Ht & te, t[28] = vt ^ ~_t & Nt, t[29] = wt ^ ~St & Tt, t[38] = $t ^ ~Qt & ft, t[39] = Jt ^ ~Kt & pt, t[48] = It ^ ~jt & zt, t[49] = Ot ^ ~Rt & Vt, t[0] ^= n[2 * _e16], t[1] ^= n[2 * _e16 + 1];\n }\n };\n}, function (t, e, n) {\n (function (e) {\n var r = n(109),\n i = n(66);\n\n function o(t) {\n return t.startsWith(\"int[\") ? \"int256\" + t.slice(3) : \"int\" === t ? \"int256\" : t.startsWith(\"uint[\") ? \"uint256\" + t.slice(4) : \"uint\" === t ? \"uint256\" : t.startsWith(\"fixed[\") ? \"fixed128x128\" + t.slice(5) : \"fixed\" === t ? \"fixed128x128\" : t.startsWith(\"ufixed[\") ? \"ufixed128x128\" + t.slice(6) : \"ufixed\" === t ? \"ufixed128x128\" : t;\n }\n\n function s(t) {\n return parseInt(/^\\D+(\\d+)$/.exec(t)[1], 10);\n }\n\n function a(t) {\n var e = /^\\D+(\\d+)x(\\d+)$/.exec(t);\n return [parseInt(e[1], 10), parseInt(e[2], 10)];\n }\n\n function u(t) {\n var e = t.match(/(.*)\\[(.*?)\\]$/);\n return e ? \"\" === e[2] ? \"dynamic\" : parseInt(e[2], 10) : null;\n }\n\n function c(t) {\n var e = _typeof(t);\n\n if (\"string\" === e) return r.isHexString(t) ? new i(r.stripHexPrefix(t), 16) : new i(t, 10);\n if (\"number\" === e) return new i(t);\n if (t.toArray) return t;\n throw new Error(\"Argument is not a number\");\n }\n\n function l(t, n) {\n var o, h, d, f;\n if (\"address\" === t) return l(\"uint160\", c(n));\n if (\"bool\" === t) return l(\"uint8\", n ? 1 : 0);\n if (\"string\" === t) return l(\"bytes\", new e(n, \"utf8\"));\n\n if (function (t) {\n return t.lastIndexOf(\"]\") === t.length - 1;\n }(t)) {\n if (void 0 === n.length) throw new Error(\"Not an array?\");\n if (\"dynamic\" !== (o = u(t)) && 0 !== o && n.length > o) throw new Error(\"Elements exceed array size: \" + o);\n\n for (f in d = [], t = t.slice(0, t.lastIndexOf(\"[\")), \"string\" == typeof n && (n = JSON.parse(n)), n) {\n d.push(l(t, n[f]));\n }\n\n if (\"dynamic\" === o) {\n var p = l(\"uint256\", n.length);\n d.unshift(p);\n }\n\n return e.concat(d);\n }\n\n if (\"bytes\" === t) return n = new e(n), d = e.concat([l(\"uint256\", n.length), n]), n.length % 32 != 0 && (d = e.concat([d, r.zeros(32 - n.length % 32)])), d;\n\n if (t.startsWith(\"bytes\")) {\n if ((o = s(t)) < 1 || o > 32) throw new Error(\"Invalid bytes width: \" + o);\n return r.setLengthRight(n, 32);\n }\n\n if (t.startsWith(\"uint\")) {\n if ((o = s(t)) % 8 || o < 8 || o > 256) throw new Error(\"Invalid uint width: \" + o);\n if ((h = c(n)).bitLength() > o) throw new Error(\"Supplied uint exceeds width: \" + o + \" vs \" + h.bitLength());\n if (h < 0) throw new Error(\"Supplied uint is negative\");\n return h.toArrayLike(e, \"be\", 32);\n }\n\n if (t.startsWith(\"int\")) {\n if ((o = s(t)) % 8 || o < 8 || o > 256) throw new Error(\"Invalid int width: \" + o);\n if ((h = c(n)).bitLength() > o) throw new Error(\"Supplied int exceeds width: \" + o + \" vs \" + h.bitLength());\n return h.toTwos(256).toArrayLike(e, \"be\", 32);\n }\n\n if (t.startsWith(\"ufixed\")) {\n if (o = a(t), (h = c(n)) < 0) throw new Error(\"Supplied ufixed is negative\");\n return l(\"uint256\", h.mul(new i(2).pow(new i(o[1]))));\n }\n\n if (t.startsWith(\"fixed\")) return o = a(t), l(\"int256\", c(n).mul(new i(2).pow(new i(o[1]))));\n throw new Error(\"Unsupported or invalid type: \" + t);\n }\n\n function h(t) {\n return \"string\" === t || \"bytes\" === t || \"dynamic\" === u(t);\n }\n\n function d(t, n) {\n if (t.length !== n.length) throw new Error(\"Number of types are not matching the values\");\n\n for (var i, a, u = [], l = 0; l < t.length; l++) {\n var h = o(t[l]),\n d = n[l];\n if (\"bytes\" === h) u.push(d);else if (\"string\" === h) u.push(new e(d, \"utf8\"));else if (\"bool\" === h) u.push(new e(d ? \"01\" : \"00\", \"hex\"));else if (\"address\" === h) u.push(r.setLength(d, 20));else if (h.startsWith(\"bytes\")) {\n if ((i = s(h)) < 1 || i > 32) throw new Error(\"Invalid bytes width: \" + i);\n u.push(r.setLengthRight(d, i));\n } else if (h.startsWith(\"uint\")) {\n if ((i = s(h)) % 8 || i < 8 || i > 256) throw new Error(\"Invalid uint width: \" + i);\n if ((a = c(d)).bitLength() > i) throw new Error(\"Supplied uint exceeds width: \" + i + \" vs \" + a.bitLength());\n u.push(a.toArrayLike(e, \"be\", i / 8));\n } else {\n if (!h.startsWith(\"int\")) throw new Error(\"Unsupported or invalid type: \" + h);\n if ((i = s(h)) % 8 || i < 8 || i > 256) throw new Error(\"Invalid int width: \" + i);\n if ((a = c(d)).bitLength() > i) throw new Error(\"Supplied int exceeds width: \" + i + \" vs \" + a.bitLength());\n u.push(a.toTwos(i).toArrayLike(e, \"be\", i / 8));\n }\n }\n\n return e.concat(u);\n }\n\n t.exports = {\n rawEncode: function rawEncode(t, n) {\n var r = [],\n i = [],\n s = 32 * t.length;\n\n for (var a in t) {\n var u = o(t[a]),\n c = l(u, n[a]);\n h(u) ? (r.push(l(\"uint256\", s)), i.push(c), s += c.length) : r.push(c);\n }\n\n return e.concat(r.concat(i));\n },\n solidityPack: d,\n soliditySHA3: function soliditySHA3(t, e) {\n return r.keccak(d(t, e));\n }\n };\n }).call(this, n(19).Buffer);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.filterFromParam = e.FilterPolyfill = void 0;\n var r = n(67),\n i = n(38),\n o = {\n jsonrpc: \"2.0\",\n id: 0\n };\n\n function s(t) {\n return {\n fromBlock: u(t.fromBlock),\n toBlock: u(t.toBlock),\n addresses: void 0 === t.address ? null : Array.isArray(t.address) ? t.address : [t.address],\n topics: t.topics || []\n };\n }\n\n function a(t) {\n var e = {\n fromBlock: c(t.fromBlock),\n toBlock: c(t.toBlock),\n topics: t.topics\n };\n return null !== t.addresses && (e.address = t.addresses), e;\n }\n\n function u(t) {\n if (void 0 === t || \"latest\" === t || \"pending\" === t) return \"latest\";\n if (\"earliest\" === t) return (0, r.IntNumber)(0);\n if ((0, i.isHexString)(t)) return (0, i.intNumberFromHexString)(t);\n throw new Error(\"Invalid block option: \" + String(t));\n }\n\n function c(t) {\n return \"latest\" === t ? t : (0, i.hexStringFromIntNumber)(t);\n }\n\n function l() {\n return Object.assign(Object.assign({}, o), {\n error: {\n code: -32e3,\n message: \"filter not found\"\n }\n });\n }\n\n function h() {\n return Object.assign(Object.assign({}, o), {\n result: []\n });\n }\n\n e.FilterPolyfill = /*#__PURE__*/function () {\n function _class6(t) {\n _classCallCheck(this, _class6);\n\n this.logFilters = new Map(), this.blockFilters = new Set(), this.pendingTransactionFilters = new Set(), this.cursors = new Map(), this.timeouts = new Map(), this.nextFilterId = (0, r.IntNumber)(1), this.provider = t;\n }\n\n _createClass(_class6, [{\n key: \"newFilter\",\n value: function () {\n var _newFilter = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee41(t) {\n var e, n, r;\n return _regeneratorRuntime.wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n e = s(t);\n n = this.makeFilterId();\n _context41.next = 4;\n return this.setInitialCursorPosition(n, e.fromBlock);\n\n case 4:\n r = _context41.sent;\n return _context41.abrupt(\"return\", (console.log(\"Installing new log filter(\".concat(n, \"):\"), e, \"initial cursor position:\", r), this.logFilters.set(n, e), this.setFilterTimeout(n), (0, i.hexStringFromIntNumber)(n)));\n\n case 6:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41, this);\n }));\n\n function newFilter(_x61) {\n return _newFilter.apply(this, arguments);\n }\n\n return newFilter;\n }()\n }, {\n key: \"newBlockFilter\",\n value: function () {\n var _newBlockFilter = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee42() {\n var t, e;\n return _regeneratorRuntime.wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n t = this.makeFilterId();\n _context42.next = 3;\n return this.setInitialCursorPosition(t, \"latest\");\n\n case 3:\n e = _context42.sent;\n return _context42.abrupt(\"return\", (console.log(\"Installing new block filter (\".concat(t, \") with initial cursor position:\"), e), this.blockFilters.add(t), this.setFilterTimeout(t), (0, i.hexStringFromIntNumber)(t)));\n\n case 5:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42, this);\n }));\n\n function newBlockFilter() {\n return _newBlockFilter.apply(this, arguments);\n }\n\n return newBlockFilter;\n }()\n }, {\n key: \"newPendingTransactionFilter\",\n value: function () {\n var _newPendingTransactionFilter = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee43() {\n var t, e;\n return _regeneratorRuntime.wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n t = this.makeFilterId();\n _context43.next = 3;\n return this.setInitialCursorPosition(t, \"latest\");\n\n case 3:\n e = _context43.sent;\n return _context43.abrupt(\"return\", (console.log(\"Installing new block filter (\".concat(t, \") with initial cursor position:\"), e), this.pendingTransactionFilters.add(t), this.setFilterTimeout(t), (0, i.hexStringFromIntNumber)(t)));\n\n case 5:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43, this);\n }));\n\n function newPendingTransactionFilter() {\n return _newPendingTransactionFilter.apply(this, arguments);\n }\n\n return newPendingTransactionFilter;\n }()\n }, {\n key: \"uninstallFilter\",\n value: function uninstallFilter(t) {\n var e = (0, i.intNumberFromHexString)(t);\n return console.log(\"Uninstalling filter (\".concat(e, \")\")), this.deleteFilter(e), !0;\n }\n }, {\n key: \"getFilterChanges\",\n value: function getFilterChanges(t) {\n var e = (0, i.intNumberFromHexString)(t);\n return this.timeouts.has(e) && this.setFilterTimeout(e), this.logFilters.has(e) ? this.getLogFilterChanges(e) : this.blockFilters.has(e) ? this.getBlockFilterChanges(e) : this.pendingTransactionFilters.has(e) ? this.getPendingTransactionFilterChanges(e) : Promise.resolve(l());\n }\n }, {\n key: \"getFilterLogs\",\n value: function () {\n var _getFilterLogs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee44(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n e = (0, i.intNumberFromHexString)(t), n = this.logFilters.get(e);\n return _context44.abrupt(\"return\", n ? this.sendAsyncPromise(Object.assign(Object.assign({}, o), {\n method: \"eth_getLogs\",\n params: [a(n)]\n })) : l());\n\n case 2:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44, this);\n }));\n\n function getFilterLogs(_x62) {\n return _getFilterLogs.apply(this, arguments);\n }\n\n return getFilterLogs;\n }()\n }, {\n key: \"makeFilterId\",\n value: function makeFilterId() {\n return (0, r.IntNumber)(++this.nextFilterId);\n }\n }, {\n key: \"sendAsyncPromise\",\n value: function sendAsyncPromise(t) {\n var _this17 = this;\n\n return new Promise(function (e, n) {\n _this17.provider.sendAsync(t, function (t, r) {\n return t ? n(t) : Array.isArray(r) || null == r ? n(new Error(\"unexpected response received: \" + JSON.stringify(r))) : void e(r);\n });\n });\n }\n }, {\n key: \"deleteFilter\",\n value: function deleteFilter(t) {\n console.log(\"Deleting filter (\".concat(t, \")\")), this.logFilters.delete(t), this.blockFilters.delete(t), this.pendingTransactionFilters.delete(t), this.cursors.delete(t), this.timeouts.delete(t);\n }\n }, {\n key: \"getLogFilterChanges\",\n value: function () {\n var _getLogFilterChanges = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee45(t) {\n var e, n, s, u, c, _e17, _o6, _e18;\n\n return _regeneratorRuntime.wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n e = this.logFilters.get(t), n = this.cursors.get(t);\n\n if (!(!n || !e)) {\n _context45.next = 3;\n break;\n }\n\n return _context45.abrupt(\"return\", l());\n\n case 3:\n _context45.next = 5;\n return this.getCurrentBlockHeight();\n\n case 5:\n s = _context45.sent;\n u = \"latest\" === e.toBlock ? s : e.toBlock;\n\n if (!(n > s)) {\n _context45.next = 9;\n break;\n }\n\n return _context45.abrupt(\"return\", h());\n\n case 9:\n if (!(n > e.toBlock)) {\n _context45.next = 11;\n break;\n }\n\n return _context45.abrupt(\"return\", h());\n\n case 11:\n console.log(\"Fetching logs from \".concat(n, \" to \").concat(u, \" for filter \").concat(t));\n _context45.next = 14;\n return this.sendAsyncPromise(Object.assign(Object.assign({}, o), {\n method: \"eth_getLogs\",\n params: [a(Object.assign(Object.assign({}, e), {\n fromBlock: n,\n toBlock: u\n }))]\n }));\n\n case 14:\n c = _context45.sent;\n\n if (Array.isArray(c.result)) {\n _e17 = c.result.map(function (t) {\n return (0, i.intNumberFromHexString)(t.blockNumber || \"0x0\");\n }), _o6 = Math.max.apply(Math, _toConsumableArray(_e17));\n\n if (_o6 && _o6 > n) {\n _e18 = (0, r.IntNumber)(_o6 + 1);\n console.log(\"Moving cursor position for filter (\".concat(t, \") from \").concat(n, \" to \").concat(_e18)), this.cursors.set(t, _e18);\n }\n }\n\n return _context45.abrupt(\"return\", c);\n\n case 17:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45, this);\n }));\n\n function getLogFilterChanges(_x63) {\n return _getLogFilterChanges.apply(this, arguments);\n }\n\n return getLogFilterChanges;\n }()\n }, {\n key: \"getBlockFilterChanges\",\n value: function () {\n var _getBlockFilterChanges = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee46(t) {\n var _this18 = this;\n\n var e, n, s, a;\n return _regeneratorRuntime.wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n e = this.cursors.get(t);\n\n if (e) {\n _context46.next = 3;\n break;\n }\n\n return _context46.abrupt(\"return\", l());\n\n case 3:\n _context46.next = 5;\n return this.getCurrentBlockHeight();\n\n case 5:\n n = _context46.sent;\n\n if (!(e > n)) {\n _context46.next = 8;\n break;\n }\n\n return _context46.abrupt(\"return\", h());\n\n case 8:\n console.log(\"Fetching blocks from \".concat(e, \" to \").concat(n, \" for filter (\").concat(t, \")\"));\n _context46.next = 11;\n return Promise.all((0, i.range)(e, n + 1).map(function (t) {\n return _this18.getBlockHashByNumber((0, r.IntNumber)(t));\n }));\n\n case 11:\n s = _context46.sent.filter(function (t) {\n return !!t;\n });\n a = (0, r.IntNumber)(e + s.length);\n return _context46.abrupt(\"return\", (console.log(\"Moving cursor position for filter (\".concat(t, \") from \").concat(e, \" to \").concat(a)), this.cursors.set(t, a), Object.assign(Object.assign({}, o), {\n result: s\n })));\n\n case 14:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46, this);\n }));\n\n function getBlockFilterChanges(_x64) {\n return _getBlockFilterChanges.apply(this, arguments);\n }\n\n return getBlockFilterChanges;\n }()\n }, {\n key: \"getPendingTransactionFilterChanges\",\n value: function () {\n var _getPendingTransactionFilterChanges = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee47(t) {\n return _regeneratorRuntime.wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n return _context47.abrupt(\"return\", Promise.resolve(h()));\n\n case 1:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47);\n }));\n\n function getPendingTransactionFilterChanges(_x65) {\n return _getPendingTransactionFilterChanges.apply(this, arguments);\n }\n\n return getPendingTransactionFilterChanges;\n }()\n }, {\n key: \"setInitialCursorPosition\",\n value: function () {\n var _setInitialCursorPosition = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee48(t, e) {\n var n, r;\n return _regeneratorRuntime.wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n _context48.next = 2;\n return this.getCurrentBlockHeight();\n\n case 2:\n n = _context48.sent;\n r = \"number\" == typeof e && e > n ? e : n;\n return _context48.abrupt(\"return\", (this.cursors.set(t, r), r));\n\n case 5:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48, this);\n }));\n\n function setInitialCursorPosition(_x66, _x67) {\n return _setInitialCursorPosition.apply(this, arguments);\n }\n\n return setInitialCursorPosition;\n }()\n }, {\n key: \"setFilterTimeout\",\n value: function setFilterTimeout(t) {\n var _this19 = this;\n\n var e = this.timeouts.get(t);\n e && window.clearTimeout(e);\n var n = window.setTimeout(function () {\n console.log(\"Filter (\".concat(t, \") timed out\")), _this19.deleteFilter(t);\n }, 3e5);\n this.timeouts.set(t, n);\n }\n }, {\n key: \"getCurrentBlockHeight\",\n value: function () {\n var _getCurrentBlockHeight = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee49() {\n var _yield$this$sendAsync, t;\n\n return _regeneratorRuntime.wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n _context49.next = 2;\n return this.sendAsyncPromise(Object.assign(Object.assign({}, o), {\n method: \"eth_blockNumber\",\n params: []\n }));\n\n case 2:\n _yield$this$sendAsync = _context49.sent;\n t = _yield$this$sendAsync.result;\n return _context49.abrupt(\"return\", (0, i.intNumberFromHexString)((0, i.ensureHexString)(t)));\n\n case 5:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49, this);\n }));\n\n function getCurrentBlockHeight() {\n return _getCurrentBlockHeight.apply(this, arguments);\n }\n\n return getCurrentBlockHeight;\n }()\n }, {\n key: \"getBlockHashByNumber\",\n value: function () {\n var _getBlockHashByNumber = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee50(t) {\n var e;\n return _regeneratorRuntime.wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n _context50.next = 2;\n return this.sendAsyncPromise(Object.assign(Object.assign({}, o), {\n method: \"eth_getBlockByNumber\",\n params: [(0, i.hexStringFromIntNumber)(t), !1]\n }));\n\n case 2:\n e = _context50.sent;\n return _context50.abrupt(\"return\", e.result && \"string\" == typeof e.result.hash ? (0, i.ensureHexString)(e.result.hash) : null);\n\n case 4:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50, this);\n }));\n\n function getBlockHashByNumber(_x68) {\n return _getBlockHashByNumber.apply(this, arguments);\n }\n\n return getBlockHashByNumber;\n }()\n }]);\n\n return _class6;\n }(), e.filterFromParam = s;\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.JSONRPCMethod = void 0, function (t) {\n t.eth_accounts = \"eth_accounts\", t.eth_coinbase = \"eth_coinbase\", t.net_version = \"net_version\", t.eth_chainId = \"eth_chainId\", t.eth_uninstallFilter = \"eth_uninstallFilter\", t.eth_requestAccounts = \"eth_requestAccounts\", t.eth_sign = \"eth_sign\", t.eth_ecRecover = \"eth_ecRecover\", t.personal_sign = \"personal_sign\", t.personal_ecRecover = \"personal_ecRecover\", t.eth_signTransaction = \"eth_signTransaction\", t.eth_sendRawTransaction = \"eth_sendRawTransaction\", t.eth_sendTransaction = \"eth_sendTransaction\", t.eth_signTypedData_v1 = \"eth_signTypedData_v1\", t.eth_signTypedData_v2 = \"eth_signTypedData_v2\", t.eth_signTypedData_v3 = \"eth_signTypedData_v3\", t.eth_signTypedData_v4 = \"eth_signTypedData_v4\", t.eth_signTypedData = \"eth_signTypedData\", t.cbWallet_arbitrary = \"walletlink_arbitrary\", t.wallet_addEthereumChain = \"wallet_addEthereumChain\", t.wallet_switchEthereumChain = \"wallet_switchEthereumChain\", t.wallet_watchAsset = \"wallet_watchAsset\", t.eth_subscribe = \"eth_subscribe\", t.eth_unsubscribe = \"eth_unsubscribe\", t.eth_newFilter = \"eth_newFilter\", t.eth_newBlockFilter = \"eth_newBlockFilter\", t.eth_newPendingTransactionFilter = \"eth_newPendingTransactionFilter\", t.eth_getFilterChanges = \"eth_getFilterChanges\", t.eth_getFilterLogs = \"eth_getFilterLogs\";\n }(e.JSONRPCMethod || (e.JSONRPCMethod = {}));\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SubscriptionManager = void 0;\n\n var r = n(171),\n i = n(179),\n o = function o() {};\n\n e.SubscriptionManager = /*#__PURE__*/function () {\n function _class7(t) {\n _classCallCheck(this, _class7);\n\n var e = new r({\n provider: t,\n pollingInterval: 15e3,\n setSkipCacheFlag: !0\n }),\n _i8 = i({\n blockTracker: e,\n provider: t\n }),\n n = _i8.events,\n o = _i8.middleware;\n\n this.events = n, this.subscriptionMiddleware = o;\n }\n\n _createClass(_class7, [{\n key: \"handleRequest\",\n value: function () {\n var _handleRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee51(t) {\n var e;\n return _regeneratorRuntime.wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n e = {};\n _context51.next = 3;\n return this.subscriptionMiddleware(t, e, o, o);\n\n case 3:\n return _context51.abrupt(\"return\", e);\n\n case 4:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51, this);\n }));\n\n function handleRequest(_x69) {\n return _handleRequest.apply(this, arguments);\n }\n\n return handleRequest;\n }()\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.subscriptionMiddleware.destroy();\n }\n }]);\n\n return _class7;\n }();\n}, function (t, e, n) {\n var r = n(118),\n i = n(172);\n\n function o(t, e) {\n return new Promise(function (n) {\n var r = setTimeout(n, t);\n r.unref && e && r.unref();\n });\n }\n\n t.exports = /*#__PURE__*/function (_i9) {\n _inherits(_class8, _i9);\n\n var _super11 = _createSuper(_class8);\n\n function _class8() {\n var _this20;\n\n var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _class8);\n\n if (!t.provider) throw new Error(\"PollingBlockTracker - no provider specified.\");\n var e = t.pollingInterval || 2e4,\n n = t.retryTimeout || e / 10,\n r = void 0 === t.keepEventLoopActive || t.keepEventLoopActive,\n i = t.setSkipCacheFlag || !1;\n _this20 = _super11.call(this, Object.assign({\n blockResetDuration: e\n }, t)), _this20._provider = t.provider, _this20._pollingInterval = e, _this20._retryTimeout = n, _this20._keepEventLoopActive = r, _this20._setSkipCacheFlag = i;\n return _this20;\n }\n\n _createClass(_class8, [{\n key: \"checkForLatestBlock\",\n value: function () {\n var _checkForLatestBlock = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee52() {\n return _regeneratorRuntime.wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n _context52.next = 2;\n return this._updateLatestBlock();\n\n case 2:\n _context52.next = 4;\n return this.getLatestBlock();\n\n case 4:\n return _context52.abrupt(\"return\", _context52.sent);\n\n case 5:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52, this);\n }));\n\n function checkForLatestBlock() {\n return _checkForLatestBlock.apply(this, arguments);\n }\n\n return checkForLatestBlock;\n }()\n }, {\n key: \"_start\",\n value: function _start() {\n var _this21 = this;\n\n this._performSync().catch(function (t) {\n return _this21.emit(\"error\", t);\n });\n }\n }, {\n key: \"_performSync\",\n value: function () {\n var _performSync2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee53() {\n var _e19;\n\n return _regeneratorRuntime.wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n if (!this._isRunning) {\n _context53.next = 16;\n break;\n }\n\n _context53.prev = 1;\n _context53.next = 4;\n return this._updateLatestBlock();\n\n case 4:\n _context53.next = 6;\n return o(this._pollingInterval, !this._keepEventLoopActive);\n\n case 6:\n _context53.next = 14;\n break;\n\n case 8:\n _context53.prev = 8;\n _context53.t0 = _context53[\"catch\"](1);\n _e19 = new Error(\"PollingBlockTracker - encountered an error while attempting to update latest block:\\n\" + _context53.t0.stack);\n\n try {\n this.emit(\"error\", _e19);\n } catch (t) {\n console.error(_e19);\n }\n\n _context53.next = 14;\n return o(this._retryTimeout, !this._keepEventLoopActive);\n\n case 14:\n _context53.next = 0;\n break;\n\n case 16:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53, this, [[1, 8]]);\n }));\n\n function _performSync() {\n return _performSync2.apply(this, arguments);\n }\n\n return _performSync;\n }()\n }, {\n key: \"_updateLatestBlock\",\n value: function () {\n var _updateLatestBlock2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee54() {\n var t;\n return _regeneratorRuntime.wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n _context54.next = 2;\n return this._fetchLatestBlock();\n\n case 2:\n t = _context54.sent;\n\n this._newPotentialLatest(t);\n\n case 4:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54, this);\n }));\n\n function _updateLatestBlock() {\n return _updateLatestBlock2.apply(this, arguments);\n }\n\n return _updateLatestBlock;\n }()\n }, {\n key: \"_fetchLatestBlock\",\n value: function () {\n var _fetchLatestBlock2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee55() {\n var _this22 = this;\n\n var t, e;\n return _regeneratorRuntime.wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n t = {\n jsonrpc: \"2.0\",\n id: 1,\n method: \"eth_blockNumber\",\n params: []\n };\n this._setSkipCacheFlag && (t.skipCache = !0);\n _context55.next = 4;\n return r(function (e) {\n return _this22._provider.sendAsync(t, e);\n })();\n\n case 4:\n e = _context55.sent;\n\n if (!e.error) {\n _context55.next = 7;\n break;\n }\n\n throw new Error(\"PollingBlockTracker - encountered error fetching block:\\n\" + e.error);\n\n case 7:\n return _context55.abrupt(\"return\", e.result);\n\n case 8:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55, this);\n }));\n\n function _fetchLatestBlock() {\n return _fetchLatestBlock2.apply(this, arguments);\n }\n\n return _fetchLatestBlock;\n }()\n }]);\n\n return _class8;\n }(i);\n}, function (t, e, n) {\n n(119), n(118);\n\n var r = n(175),\n i = function i(t, e) {\n return t + e;\n },\n o = [\"sync\", \"latest\"];\n\n function s(t) {\n return Number.parseInt(t, 16);\n }\n\n t.exports = /*#__PURE__*/function (_r14) {\n _inherits(_class9, _r14);\n\n var _super12 = _createSuper(_class9);\n\n function _class9() {\n var _this23;\n\n var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _class9);\n\n _this23 = _super12.call(this), _this23._blockResetDuration = t.blockResetDuration || 2e4, _this23._blockResetTimeout, _this23._currentBlock = null, _this23._isRunning = !1, _this23._onNewListener = _this23._onNewListener.bind(_assertThisInitialized(_this23)), _this23._onRemoveListener = _this23._onRemoveListener.bind(_assertThisInitialized(_this23)), _this23._resetCurrentBlock = _this23._resetCurrentBlock.bind(_assertThisInitialized(_this23)), _this23._setupInternalEvents();\n return _this23;\n }\n\n _createClass(_class9, [{\n key: \"isRunning\",\n value: function isRunning() {\n return this._isRunning;\n }\n }, {\n key: \"getCurrentBlock\",\n value: function getCurrentBlock() {\n return this._currentBlock;\n }\n }, {\n key: \"getLatestBlock\",\n value: function () {\n var _getLatestBlock = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee56() {\n var _this24 = this;\n\n return _regeneratorRuntime.wrap(function _callee56$(_context56) {\n while (1) {\n switch (_context56.prev = _context56.next) {\n case 0:\n if (!this._currentBlock) {\n _context56.next = 2;\n break;\n }\n\n return _context56.abrupt(\"return\", this._currentBlock);\n\n case 2:\n _context56.next = 4;\n return new Promise(function (t) {\n return _this24.once(\"latest\", t);\n });\n\n case 4:\n return _context56.abrupt(\"return\", _context56.sent);\n\n case 5:\n case \"end\":\n return _context56.stop();\n }\n }\n }, _callee56, this);\n }));\n\n function getLatestBlock() {\n return _getLatestBlock.apply(this, arguments);\n }\n\n return getLatestBlock;\n }()\n }, {\n key: \"removeAllListeners\",\n value: function removeAllListeners(t) {\n t ? _get(_getPrototypeOf(_class9.prototype), \"removeAllListeners\", this).call(this, t) : _get(_getPrototypeOf(_class9.prototype), \"removeAllListeners\", this).call(this), this._setupInternalEvents(), this._onRemoveListener();\n }\n }, {\n key: \"_start\",\n value: function _start() {}\n }, {\n key: \"_end\",\n value: function _end() {}\n }, {\n key: \"_setupInternalEvents\",\n value: function _setupInternalEvents() {\n this.removeListener(\"newListener\", this._onNewListener), this.removeListener(\"removeListener\", this._onRemoveListener), this.on(\"newListener\", this._onNewListener), this.on(\"removeListener\", this._onRemoveListener);\n }\n }, {\n key: \"_onNewListener\",\n value: function _onNewListener(t, e) {\n o.includes(t) && this._maybeStart();\n }\n }, {\n key: \"_onRemoveListener\",\n value: function _onRemoveListener(t, e) {\n this._getBlockTrackerEventCount() > 0 || this._maybeEnd();\n }\n }, {\n key: \"_maybeStart\",\n value: function _maybeStart() {\n this._isRunning || (this._isRunning = !0, this._cancelBlockResetTimeout(), this._start());\n }\n }, {\n key: \"_maybeEnd\",\n value: function _maybeEnd() {\n this._isRunning && (this._isRunning = !1, this._setupBlockResetTimeout(), this._end());\n }\n }, {\n key: \"_getBlockTrackerEventCount\",\n value: function _getBlockTrackerEventCount() {\n var _this25 = this;\n\n return o.map(function (t) {\n return _this25.listenerCount(t);\n }).reduce(i);\n }\n }, {\n key: \"_newPotentialLatest\",\n value: function _newPotentialLatest(t) {\n var e = this._currentBlock;\n e && s(t) <= s(e) || this._setCurrentBlock(t);\n }\n }, {\n key: \"_setCurrentBlock\",\n value: function _setCurrentBlock(t) {\n var e = this._currentBlock;\n this._currentBlock = t, this.emit(\"latest\", t), this.emit(\"sync\", {\n oldBlock: e,\n newBlock: t\n });\n }\n }, {\n key: \"_setupBlockResetTimeout\",\n value: function _setupBlockResetTimeout() {\n this._cancelBlockResetTimeout(), this._blockResetTimeout = setTimeout(this._resetCurrentBlock, this._blockResetDuration), this._blockResetTimeout.unref && this._blockResetTimeout.unref();\n }\n }, {\n key: \"_cancelBlockResetTimeout\",\n value: function _cancelBlockResetTimeout() {\n clearTimeout(this._blockResetTimeout);\n }\n }, {\n key: \"_resetCurrentBlock\",\n value: function _resetCurrentBlock() {\n this._currentBlock = null;\n }\n }]);\n\n return _class9;\n }(r);\n}, function (t, e) {\n t.exports = function () {\n for (var t = {}, e = 0; e < arguments.length; e++) {\n var r = arguments[e];\n\n for (var i in r) {\n n.call(r, i) && (t[i] = r[i]);\n }\n }\n\n return t;\n };\n\n var n = Object.prototype.hasOwnProperty;\n}, function (t, e) {\n t.exports = function (t) {\n var e = (t = t || {}).max || Number.MAX_SAFE_INTEGER,\n n = void 0 !== t.start ? t.start : Math.floor(Math.random() * e);\n return function () {\n return n %= e, n++;\n };\n };\n}, function (t, e, n) {\n var r = n(176),\n i = n(65);\n var o = \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect : null,\n s = o && \"function\" == typeof o.apply ? o.apply : function (t, e, n) {\n return Function.prototype.apply.call(t, e, n);\n };\n\n function a() {\n i.call(this);\n }\n\n function u(t, e, n) {\n try {\n s(t, e, n);\n } catch (t) {\n setTimeout(function () {\n throw t;\n });\n }\n }\n\n function c(t, e) {\n for (var n = new Array(e), r = 0; r < e; ++r) {\n n[r] = t[r];\n }\n\n return n;\n }\n\n t.exports = a, r.inherits(a, i), a.prototype.emit = function (t) {\n for (var e = [], n = 1; n < arguments.length; n++) {\n e.push(arguments[n]);\n }\n\n var r = \"error\" === t,\n i = this._events;\n if (void 0 !== i) r = r && void 0 === i.error;else if (!r) return !1;\n\n if (r) {\n var o;\n if (e.length > 0 && (o = e[0]), o instanceof Error) throw o;\n var s = new Error(\"Unhandled error.\" + (o ? \" (\" + o.message + \")\" : \"\"));\n throw s.context = o, s;\n }\n\n var a = i[t];\n if (void 0 === a) return !1;\n if (\"function\" == typeof a) u(a, this, e);else {\n var l = a.length,\n h = c(a, l);\n\n for (n = 0; n < l; ++n) {\n u(h[n], this, e);\n }\n }\n return !0;\n };\n}, function (t, e, n) {\n (function (t) {\n var r = Object.getOwnPropertyDescriptors || function (t) {\n for (var e = Object.keys(t), n = {}, r = 0; r < e.length; r++) {\n n[e[r]] = Object.getOwnPropertyDescriptor(t, e[r]);\n }\n\n return n;\n },\n i = /%[sdj%]/g;\n\n e.format = function (t) {\n if (!g(t)) {\n for (var e = [], n = 0; n < arguments.length; n++) {\n e.push(a(arguments[n]));\n }\n\n return e.join(\" \");\n }\n\n n = 1;\n\n for (var r = arguments, o = r.length, s = String(t).replace(i, function (t) {\n if (\"%%\" === t) return \"%\";\n if (n >= o) return t;\n\n switch (t) {\n case \"%s\":\n return String(r[n++]);\n\n case \"%d\":\n return Number(r[n++]);\n\n case \"%j\":\n try {\n return JSON.stringify(r[n++]);\n } catch (t) {\n return \"[Circular]\";\n }\n\n default:\n return t;\n }\n }), u = r[n]; n < o; u = r[++n]) {\n b(u) || !w(u) ? s += \" \" + u : s += \" \" + a(u);\n }\n\n return s;\n }, e.deprecate = function (n, r) {\n if (void 0 !== t && !0 === t.noDeprecation) return n;\n if (void 0 === t) return function () {\n return e.deprecate(n, r).apply(this, arguments);\n };\n var i = !1;\n return function () {\n if (!i) {\n if (t.throwDeprecation) throw new Error(r);\n t.traceDeprecation ? console.trace(r) : console.error(r), i = !0;\n }\n\n return n.apply(this, arguments);\n };\n };\n var o,\n s = {};\n\n function a(t, n) {\n var r = {\n seen: [],\n stylize: c\n };\n return arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), p(n) ? r.showHidden = n : n && e._extend(r, n), m(r.showHidden) && (r.showHidden = !1), m(r.depth) && (r.depth = 2), m(r.colors) && (r.colors = !1), m(r.customInspect) && (r.customInspect = !0), r.colors && (r.stylize = u), l(r, t, r.depth);\n }\n\n function u(t, e) {\n var n = a.styles[e];\n return n ? \"\u001b[\" + a.colors[n][0] + \"m\" + t + \"\u001b[\" + a.colors[n][1] + \"m\" : t;\n }\n\n function c(t, e) {\n return t;\n }\n\n function l(t, n, r) {\n if (t.customInspect && n && E(n.inspect) && n.inspect !== e.inspect && (!n.constructor || n.constructor.prototype !== n)) {\n var i = n.inspect(r, t);\n return g(i) || (i = l(t, i, r)), i;\n }\n\n var o = function (t, e) {\n if (m(e)) return t.stylize(\"undefined\", \"undefined\");\n\n if (g(e)) {\n var n = \"'\" + JSON.stringify(e).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + \"'\";\n return t.stylize(n, \"string\");\n }\n\n if (y(e)) return t.stylize(\"\" + e, \"number\");\n if (p(e)) return t.stylize(\"\" + e, \"boolean\");\n if (b(e)) return t.stylize(\"null\", \"null\");\n }(t, n);\n\n if (o) return o;\n\n var s = Object.keys(n),\n a = function (t) {\n var e = {};\n return t.forEach(function (t, n) {\n e[t] = !0;\n }), e;\n }(s);\n\n if (t.showHidden && (s = Object.getOwnPropertyNames(n)), S(n) && (s.indexOf(\"message\") >= 0 || s.indexOf(\"description\") >= 0)) return h(n);\n\n if (0 === s.length) {\n if (E(n)) {\n var u = n.name ? \": \" + n.name : \"\";\n return t.stylize(\"[Function\" + u + \"]\", \"special\");\n }\n\n if (v(n)) return t.stylize(RegExp.prototype.toString.call(n), \"regexp\");\n if (_(n)) return t.stylize(Date.prototype.toString.call(n), \"date\");\n if (S(n)) return h(n);\n }\n\n var c,\n w = \"\",\n M = !1,\n x = [\"{\", \"}\"];\n (f(n) && (M = !0, x = [\"[\", \"]\"]), E(n)) && (w = \" [Function\" + (n.name ? \": \" + n.name : \"\") + \"]\");\n return v(n) && (w = \" \" + RegExp.prototype.toString.call(n)), _(n) && (w = \" \" + Date.prototype.toUTCString.call(n)), S(n) && (w = \" \" + h(n)), 0 !== s.length || M && 0 != n.length ? r < 0 ? v(n) ? t.stylize(RegExp.prototype.toString.call(n), \"regexp\") : t.stylize(\"[Object]\", \"special\") : (t.seen.push(n), c = M ? function (t, e, n, r, i) {\n for (var o = [], s = 0, a = e.length; s < a; ++s) {\n A(e, String(s)) ? o.push(d(t, e, n, r, String(s), !0)) : o.push(\"\");\n }\n\n return i.forEach(function (i) {\n i.match(/^\\d+$/) || o.push(d(t, e, n, r, i, !0));\n }), o;\n }(t, n, r, a, s) : s.map(function (e) {\n return d(t, n, r, a, e, M);\n }), t.seen.pop(), function (t, e, n) {\n if (t.reduce(function (t, e) {\n return e.indexOf(\"\\n\") >= 0 && 0, t + e.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n }, 0) > 60) return n[0] + (\"\" === e ? \"\" : e + \"\\n \") + \" \" + t.join(\",\\n \") + \" \" + n[1];\n return n[0] + e + \" \" + t.join(\", \") + \" \" + n[1];\n }(c, w, x)) : x[0] + w + x[1];\n }\n\n function h(t) {\n return \"[\" + Error.prototype.toString.call(t) + \"]\";\n }\n\n function d(t, e, n, r, i, o) {\n var s, a, u;\n\n if ((u = Object.getOwnPropertyDescriptor(e, i) || {\n value: e[i]\n }).get ? a = u.set ? t.stylize(\"[Getter/Setter]\", \"special\") : t.stylize(\"[Getter]\", \"special\") : u.set && (a = t.stylize(\"[Setter]\", \"special\")), A(r, i) || (s = \"[\" + i + \"]\"), a || (t.seen.indexOf(u.value) < 0 ? (a = b(n) ? l(t, u.value, null) : l(t, u.value, n - 1)).indexOf(\"\\n\") > -1 && (a = o ? a.split(\"\\n\").map(function (t) {\n return \" \" + t;\n }).join(\"\\n\").substr(2) : \"\\n\" + a.split(\"\\n\").map(function (t) {\n return \" \" + t;\n }).join(\"\\n\")) : a = t.stylize(\"[Circular]\", \"special\")), m(s)) {\n if (o && i.match(/^\\d+$/)) return a;\n (s = JSON.stringify(\"\" + i)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/) ? (s = s.substr(1, s.length - 2), s = t.stylize(s, \"name\")) : (s = s.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\"), s = t.stylize(s, \"string\"));\n }\n\n return s + \": \" + a;\n }\n\n function f(t) {\n return Array.isArray(t);\n }\n\n function p(t) {\n return \"boolean\" == typeof t;\n }\n\n function b(t) {\n return null === t;\n }\n\n function y(t) {\n return \"number\" == typeof t;\n }\n\n function g(t) {\n return \"string\" == typeof t;\n }\n\n function m(t) {\n return void 0 === t;\n }\n\n function v(t) {\n return w(t) && \"[object RegExp]\" === M(t);\n }\n\n function w(t) {\n return \"object\" == _typeof(t) && null !== t;\n }\n\n function _(t) {\n return w(t) && \"[object Date]\" === M(t);\n }\n\n function S(t) {\n return w(t) && (\"[object Error]\" === M(t) || t instanceof Error);\n }\n\n function E(t) {\n return \"function\" == typeof t;\n }\n\n function M(t) {\n return Object.prototype.toString.call(t);\n }\n\n function x(t) {\n return t < 10 ? \"0\" + t.toString(10) : t.toString(10);\n }\n\n e.debuglog = function (n) {\n if (m(o) && (o = t.env.NODE_DEBUG || \"\"), n = n.toUpperCase(), !s[n]) if (new RegExp(\"\\\\b\" + n + \"\\\\b\", \"i\").test(o)) {\n var r = t.pid;\n\n s[n] = function () {\n var t = e.format.apply(e, arguments);\n console.error(\"%s %d: %s\", n, r, t);\n };\n } else s[n] = function () {};\n return s[n];\n }, e.inspect = a, a.colors = {\n bold: [1, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n white: [37, 39],\n grey: [90, 39],\n black: [30, 39],\n blue: [34, 39],\n cyan: [36, 39],\n green: [32, 39],\n magenta: [35, 39],\n red: [31, 39],\n yellow: [33, 39]\n }, a.styles = {\n special: \"cyan\",\n number: \"yellow\",\n boolean: \"yellow\",\n undefined: \"grey\",\n null: \"bold\",\n string: \"green\",\n date: \"magenta\",\n regexp: \"red\"\n }, e.isArray = f, e.isBoolean = p, e.isNull = b, e.isNullOrUndefined = function (t) {\n return null == t;\n }, e.isNumber = y, e.isString = g, e.isSymbol = function (t) {\n return \"symbol\" == _typeof(t);\n }, e.isUndefined = m, e.isRegExp = v, e.isObject = w, e.isDate = _, e.isError = S, e.isFunction = E, e.isPrimitive = function (t) {\n return null === t || \"boolean\" == typeof t || \"number\" == typeof t || \"string\" == typeof t || \"symbol\" == _typeof(t) || void 0 === t;\n }, e.isBuffer = n(177);\n var k = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n function C() {\n var t = new Date(),\n e = [x(t.getHours()), x(t.getMinutes()), x(t.getSeconds())].join(\":\");\n return [t.getDate(), k[t.getMonth()], e].join(\" \");\n }\n\n function A(t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }\n\n e.log = function () {\n console.log(\"%s - %s\", C(), e.format.apply(e, arguments));\n }, e.inherits = n(178), e._extend = function (t, e) {\n if (!e || !w(e)) return t;\n\n for (var n = Object.keys(e), r = n.length; r--;) {\n t[n[r]] = e[n[r]];\n }\n\n return t;\n };\n var I = \"undefined\" != typeof Symbol ? Symbol(\"util.promisify.custom\") : void 0;\n\n function O(t, e) {\n if (!t) {\n var n = new Error(\"Promise was rejected with a falsy value\");\n n.reason = t, t = n;\n }\n\n return e(t);\n }\n\n e.promisify = function (t) {\n if (\"function\" != typeof t) throw new TypeError('The \"original\" argument must be of type Function');\n\n if (I && t[I]) {\n var e;\n if (\"function\" != typeof (e = t[I])) throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n return Object.defineProperty(e, I, {\n value: e,\n enumerable: !1,\n writable: !1,\n configurable: !0\n }), e;\n }\n\n function e() {\n for (var e, n, r = new Promise(function (t, r) {\n e = t, n = r;\n }), i = [], o = 0; o < arguments.length; o++) {\n i.push(arguments[o]);\n }\n\n i.push(function (t, r) {\n t ? n(t) : e(r);\n });\n\n try {\n t.apply(this, i);\n } catch (t) {\n n(t);\n }\n\n return r;\n }\n\n return Object.setPrototypeOf(e, Object.getPrototypeOf(t)), I && Object.defineProperty(e, I, {\n value: e,\n enumerable: !1,\n writable: !1,\n configurable: !0\n }), Object.defineProperties(e, r(t));\n }, e.promisify.custom = I, e.callbackify = function (e) {\n if (\"function\" != typeof e) throw new TypeError('The \"original\" argument must be of type Function');\n\n function n() {\n for (var n = [], r = 0; r < arguments.length; r++) {\n n.push(arguments[r]);\n }\n\n var i = n.pop();\n if (\"function\" != typeof i) throw new TypeError(\"The last argument must be of type Function\");\n\n var o = this,\n s = function s() {\n return i.apply(o, arguments);\n };\n\n e.apply(this, n).then(function (e) {\n t.nextTick(s, null, e);\n }, function (e) {\n t.nextTick(O, e, s);\n });\n }\n\n return Object.setPrototypeOf(n, Object.getPrototypeOf(e)), Object.defineProperties(n, r(e)), n;\n };\n }).call(this, n(40));\n}, function (t, e) {\n t.exports = function (t) {\n return t && \"object\" == _typeof(t) && \"function\" == typeof t.copy && \"function\" == typeof t.fill && \"function\" == typeof t.readUInt8;\n };\n}, function (t, e) {\n \"function\" == typeof Object.create ? t.exports = function (t, e) {\n t.super_ = e, t.prototype = Object.create(e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n });\n } : t.exports = function (t, e) {\n t.super_ = e;\n\n var n = function n() {};\n\n n.prototype = e.prototype, t.prototype = new n(), t.prototype.constructor = t;\n };\n}, function (t, e, n) {\n var r = n(64).default,\n _n31 = n(120),\n i = _n31.createAsyncMiddleware,\n o = _n31.createScaffoldMiddleware,\n s = n(186),\n _n32 = n(59),\n a = _n32.unsafeRandomBytes,\n u = _n32.incrementHexInt,\n c = n(99);\n\n function l(t) {\n return null == t ? null : {\n hash: t.hash,\n parentHash: t.parentHash,\n sha3Uncles: t.sha3Uncles,\n miner: t.miner,\n stateRoot: t.stateRoot,\n transactionsRoot: t.transactionsRoot,\n receiptsRoot: t.receiptsRoot,\n logsBloom: t.logsBloom,\n difficulty: t.difficulty,\n number: t.number,\n gasLimit: t.gasLimit,\n gasUsed: t.gasUsed,\n nonce: t.nonce,\n mixHash: t.mixHash,\n timestamp: t.timestamp,\n extraData: t.extraData\n };\n }\n\n t.exports = function (_ref14) {\n var t = _ref14.blockTracker,\n e = _ref14.provider;\n var n = {},\n h = s({\n blockTracker: t,\n provider: e\n });\n var d = !1;\n var f = new r(),\n p = o({\n eth_subscribe: i( /*#__PURE__*/function () {\n var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee60(r, i) {\n var o, s, f, _n33, _i10;\n\n return _regeneratorRuntime.wrap(function _callee60$(_context60) {\n while (1) {\n switch (_context60.prev = _context60.next) {\n case 0:\n if (!d) {\n _context60.next = 2;\n break;\n }\n\n throw new Error(\"SubscriptionManager - attempting to use after destroying\");\n\n case 2:\n o = r.params[0], s = a(16);\n _context60.t0 = o;\n _context60.next = _context60.t0 === \"newHeads\" ? 6 : _context60.t0 === \"logs\" ? 8 : 14;\n break;\n\n case 6:\n f = function (_ref16) {\n var n = _ref16.subId;\n var r = {\n type: o,\n destroy: function () {\n var _destroy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee57() {\n return _regeneratorRuntime.wrap(function _callee57$(_context57) {\n while (1) {\n switch (_context57.prev = _context57.next) {\n case 0:\n t.removeListener(\"sync\", r.update);\n\n case 1:\n case \"end\":\n return _context57.stop();\n }\n }\n }, _callee57);\n }));\n\n function destroy() {\n return _destroy.apply(this, arguments);\n }\n\n return destroy;\n }(),\n update: function () {\n var _update2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee58(_ref17) {\n var t, r, i, o;\n return _regeneratorRuntime.wrap(function _callee58$(_context58) {\n while (1) {\n switch (_context58.prev = _context58.next) {\n case 0:\n t = _ref17.oldBlock, r = _ref17.newBlock;\n i = r, o = u(t);\n _context58.next = 4;\n return c({\n provider: e,\n fromBlock: o,\n toBlock: i\n });\n\n case 4:\n _context58.sent.map(l).filter(function (t) {\n return null !== t;\n }).forEach(function (t) {\n b(n, t);\n });\n\n case 5:\n case \"end\":\n return _context58.stop();\n }\n }\n }, _callee58);\n }));\n\n function update(_x72) {\n return _update2.apply(this, arguments);\n }\n\n return update;\n }()\n };\n return t.on(\"sync\", r.update), r;\n }({\n subId: s\n });\n\n return _context60.abrupt(\"break\", 15);\n\n case 8:\n _n33 = r.params[1];\n _context60.next = 11;\n return h.newLogFilter(_n33);\n\n case 11:\n _i10 = _context60.sent;\n\n f = function (_ref18) {\n var t = _ref18.subId,\n e = _ref18.filter;\n e.on(\"update\", function (e) {\n return b(t, e);\n });\n return {\n type: o,\n destroy: function () {\n var _destroy2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee59() {\n return _regeneratorRuntime.wrap(function _callee59$(_context59) {\n while (1) {\n switch (_context59.prev = _context59.next) {\n case 0:\n _context59.next = 2;\n return h.uninstallFilter(e.idHex);\n\n case 2:\n return _context59.abrupt(\"return\", _context59.sent);\n\n case 3:\n case \"end\":\n return _context59.stop();\n }\n }\n }, _callee59);\n }));\n\n function destroy() {\n return _destroy2.apply(this, arguments);\n }\n\n return destroy;\n }()\n };\n }({\n subId: s,\n filter: _i10\n });\n\n return _context60.abrupt(\"break\", 15);\n\n case 14:\n throw new Error(\"SubscriptionManager - unsupported subscription type \\\"\".concat(o, \"\\\"\"));\n\n case 15:\n return _context60.abrupt(\"return\", (n[s] = f, void (i.result = s)));\n\n case 16:\n case \"end\":\n return _context60.stop();\n }\n }\n }, _callee60);\n }));\n\n return function (_x70, _x71) {\n return _ref15.apply(this, arguments);\n };\n }()),\n eth_unsubscribe: i( /*#__PURE__*/function () {\n var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee61(t, e) {\n var r, i;\n return _regeneratorRuntime.wrap(function _callee61$(_context61) {\n while (1) {\n switch (_context61.prev = _context61.next) {\n case 0:\n if (!d) {\n _context61.next = 2;\n break;\n }\n\n throw new Error(\"SubscriptionManager - attempting to use after destroying\");\n\n case 2:\n r = t.params[0], i = n[r];\n\n if (i) {\n _context61.next = 5;\n break;\n }\n\n return _context61.abrupt(\"return\", void (e.result = !1));\n\n case 5:\n delete n[r];\n _context61.next = 8;\n return i.destroy();\n\n case 8:\n e.result = !0;\n\n case 9:\n case \"end\":\n return _context61.stop();\n }\n }\n }, _callee61);\n }));\n\n return function (_x73, _x74) {\n return _ref19.apply(this, arguments);\n };\n }())\n });\n return p.destroy = function () {\n f.removeAllListeners();\n\n for (var _t16 in n) {\n n[_t16].destroy(), delete n[_t16];\n }\n\n d = !0;\n }, {\n events: f,\n middleware: p\n };\n\n function b(t, e) {\n f.emit(\"notification\", {\n jsonrpc: \"2.0\",\n method: \"eth_subscription\",\n params: {\n subscription: t,\n result: e\n }\n });\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.createIdRemapMiddleware = void 0;\n var r = n(121);\n\n e.createIdRemapMiddleware = function () {\n return function (t, e, n, i) {\n var o = t.id,\n s = r.getUniqueId();\n t.id = s, e.id = s, n(function (n) {\n t.id = o, e.id = o, n();\n });\n };\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.createAsyncMiddleware = void 0, e.createAsyncMiddleware = function (t) {\n return /*#__PURE__*/function () {\n var _ref20 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee63(e, n, r, i) {\n var o, s, a, u, c;\n return _regeneratorRuntime.wrap(function _callee63$(_context63) {\n while (1) {\n switch (_context63.prev = _context63.next) {\n case 0:\n s = new Promise(function (t) {\n o = t;\n });\n a = null, u = !1;\n\n c = /*#__PURE__*/function () {\n var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee62() {\n return _regeneratorRuntime.wrap(function _callee62$(_context62) {\n while (1) {\n switch (_context62.prev = _context62.next) {\n case 0:\n u = !0;\n r(function (t) {\n a = t, o();\n });\n _context62.next = 4;\n return s;\n\n case 4:\n case \"end\":\n return _context62.stop();\n }\n }\n }, _callee62);\n }));\n\n return function c() {\n return _ref21.apply(this, arguments);\n };\n }();\n\n _context63.prev = 3;\n _context63.next = 6;\n return t(e, n, c);\n\n case 6:\n if (!u) {\n _context63.next = 12;\n break;\n }\n\n _context63.next = 9;\n return s;\n\n case 9:\n a(null);\n _context63.next = 13;\n break;\n\n case 12:\n i(null);\n\n case 13:\n _context63.next = 18;\n break;\n\n case 15:\n _context63.prev = 15;\n _context63.t0 = _context63[\"catch\"](3);\n a ? a(_context63.t0) : i(_context63.t0);\n\n case 18:\n case \"end\":\n return _context63.stop();\n }\n }\n }, _callee63, null, [[3, 15]]);\n }));\n\n return function (_x75, _x76, _x77, _x78) {\n return _ref20.apply(this, arguments);\n };\n }();\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.createScaffoldMiddleware = void 0, e.createScaffoldMiddleware = function (t) {\n return function (e, n, r, i) {\n var o = t[e.method];\n return void 0 === o ? r() : \"function\" == typeof o ? o(e, n, r, i) : (n.result = o, i());\n };\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.getMessageFromCode = e.serializeError = e.EthereumProviderError = e.EthereumRpcError = e.ethErrors = e.errorCodes = void 0;\n var r = n(96);\n Object.defineProperty(e, \"EthereumRpcError\", {\n enumerable: !0,\n get: function get() {\n return r.EthereumRpcError;\n }\n }), Object.defineProperty(e, \"EthereumProviderError\", {\n enumerable: !0,\n get: function get() {\n return r.EthereumProviderError;\n }\n });\n var i = n(123);\n Object.defineProperty(e, \"serializeError\", {\n enumerable: !0,\n get: function get() {\n return i.serializeError;\n }\n }), Object.defineProperty(e, \"getMessageFromCode\", {\n enumerable: !0,\n get: function get() {\n return i.getMessageFromCode;\n }\n });\n var o = n(184);\n Object.defineProperty(e, \"ethErrors\", {\n enumerable: !0,\n get: function get() {\n return o.ethErrors;\n }\n });\n var s = n(97);\n Object.defineProperty(e, \"errorCodes\", {\n enumerable: !0,\n get: function get() {\n return s.errorCodes;\n }\n });\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ethErrors = void 0;\n var r = n(96),\n i = n(123),\n o = n(97);\n\n function s(t, e) {\n var _u5 = u(e),\n _u6 = _slicedToArray(_u5, 2),\n n = _u6[0],\n o = _u6[1];\n\n return new r.EthereumRpcError(t, n || i.getMessageFromCode(t), o);\n }\n\n function a(t, e) {\n var _u7 = u(e),\n _u8 = _slicedToArray(_u7, 2),\n n = _u8[0],\n o = _u8[1];\n\n return new r.EthereumProviderError(t, n || i.getMessageFromCode(t), o);\n }\n\n function u(t) {\n if (t) {\n if (\"string\" == typeof t) return [t];\n\n if (\"object\" == _typeof(t) && !Array.isArray(t)) {\n var _e20 = t.message,\n _n34 = t.data;\n if (_e20 && \"string\" != typeof _e20) throw new Error(\"Must specify string message.\");\n return [_e20 || void 0, _n34];\n }\n }\n\n return [];\n }\n\n e.ethErrors = {\n rpc: {\n parse: function parse(t) {\n return s(o.errorCodes.rpc.parse, t);\n },\n invalidRequest: function invalidRequest(t) {\n return s(o.errorCodes.rpc.invalidRequest, t);\n },\n invalidParams: function invalidParams(t) {\n return s(o.errorCodes.rpc.invalidParams, t);\n },\n methodNotFound: function methodNotFound(t) {\n return s(o.errorCodes.rpc.methodNotFound, t);\n },\n internal: function internal(t) {\n return s(o.errorCodes.rpc.internal, t);\n },\n server: function server(t) {\n if (!t || \"object\" != _typeof(t) || Array.isArray(t)) throw new Error(\"Ethereum RPC Server errors must provide single object argument.\");\n var e = t.code;\n if (!Number.isInteger(e) || e > -32005 || e < -32099) throw new Error('\"code\" must be an integer such that: -32099 <= code <= -32005');\n return s(e, t);\n },\n invalidInput: function invalidInput(t) {\n return s(o.errorCodes.rpc.invalidInput, t);\n },\n resourceNotFound: function resourceNotFound(t) {\n return s(o.errorCodes.rpc.resourceNotFound, t);\n },\n resourceUnavailable: function resourceUnavailable(t) {\n return s(o.errorCodes.rpc.resourceUnavailable, t);\n },\n transactionRejected: function transactionRejected(t) {\n return s(o.errorCodes.rpc.transactionRejected, t);\n },\n methodNotSupported: function methodNotSupported(t) {\n return s(o.errorCodes.rpc.methodNotSupported, t);\n },\n limitExceeded: function limitExceeded(t) {\n return s(o.errorCodes.rpc.limitExceeded, t);\n }\n },\n provider: {\n userRejectedRequest: function userRejectedRequest(t) {\n return a(o.errorCodes.provider.userRejectedRequest, t);\n },\n unauthorized: function unauthorized(t) {\n return a(o.errorCodes.provider.unauthorized, t);\n },\n unsupportedMethod: function unsupportedMethod(t) {\n return a(o.errorCodes.provider.unsupportedMethod, t);\n },\n disconnected: function disconnected(t) {\n return a(o.errorCodes.provider.disconnected, t);\n },\n chainDisconnected: function chainDisconnected(t) {\n return a(o.errorCodes.provider.chainDisconnected, t);\n },\n custom: function custom(t) {\n if (!t || \"object\" != _typeof(t) || Array.isArray(t)) throw new Error(\"Ethereum Provider custom errors must provide single object argument.\");\n var e = t.code,\n n = t.message,\n i = t.data;\n if (!n || \"string\" != typeof n) throw new Error('\"message\" must be a nonempty string');\n return new r.EthereumProviderError(e, n, i);\n }\n }\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.mergeMiddleware = void 0;\n var r = n(122);\n\n e.mergeMiddleware = function (t) {\n var e = new r.JsonRpcEngine();\n return t.forEach(function (t) {\n return e.push(t);\n }), e.asMiddleware();\n };\n}, function (t, e, n) {\n var r = n(233).Mutex,\n _n35 = n(120),\n i = _n35.createAsyncMiddleware,\n o = _n35.createScaffoldMiddleware,\n s = n(187),\n a = n(190),\n u = n(191),\n _n36 = n(59),\n c = _n36.intToHex,\n l = _n36.hexToInt;\n\n function h(t) {\n return d( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee64() {\n var n,\n _args64 = arguments;\n return _regeneratorRuntime.wrap(function _callee64$(_context64) {\n while (1) {\n switch (_context64.prev = _context64.next) {\n case 0:\n _context64.next = 2;\n return t.apply(void 0, _args64);\n\n case 2:\n n = _context64.sent;\n return _context64.abrupt(\"return\", c(n.id));\n\n case 4:\n case \"end\":\n return _context64.stop();\n }\n }\n }, _callee64);\n })));\n }\n\n function d(t) {\n return i( /*#__PURE__*/function () {\n var _ref23 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee65(e, n) {\n var r;\n return _regeneratorRuntime.wrap(function _callee65$(_context65) {\n while (1) {\n switch (_context65.prev = _context65.next) {\n case 0:\n _context65.next = 2;\n return t.apply(null, e.params);\n\n case 2:\n r = _context65.sent;\n n.result = r;\n\n case 4:\n case \"end\":\n return _context65.stop();\n }\n }\n }, _callee65);\n }));\n\n return function (_x79, _x80) {\n return _ref23.apply(this, arguments);\n };\n }());\n }\n\n function f(t, e) {\n var n = [];\n\n for (var _e21 in t) {\n n.push(t[_e21]);\n }\n\n return n;\n }\n\n t.exports = function (_ref24) {\n var t = _ref24.blockTracker,\n e = _ref24.provider;\n var n = 0,\n i = {};\n\n var p = new r(),\n b = function (_ref25) {\n var t = _ref25.mutex;\n return function (e) {\n return /*#__PURE__*/function () {\n var _ref26 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee66(n, r, i, o) {\n return _regeneratorRuntime.wrap(function _callee66$(_context66) {\n while (1) {\n switch (_context66.prev = _context66.next) {\n case 0:\n _context66.next = 2;\n return t.acquire();\n\n case 2:\n _context66.t0 = _context66.sent;\n (0, _context66.t0)();\n e(n, r, i, o);\n\n case 5:\n case \"end\":\n return _context66.stop();\n }\n }\n }, _callee66);\n }));\n\n return function (_x81, _x82, _x83, _x84) {\n return _ref26.apply(this, arguments);\n };\n }();\n };\n }({\n mutex: p\n }),\n y = o({\n eth_newFilter: b(h(m)),\n eth_newBlockFilter: b(h(v)),\n eth_newPendingTransactionFilter: b(h(w)),\n eth_uninstallFilter: b(d(E)),\n eth_getFilterChanges: b(d(_)),\n eth_getFilterLogs: b(d(S))\n }),\n g = /*#__PURE__*/function () {\n var _ref28 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee68(_ref27) {\n var t, e, n;\n return _regeneratorRuntime.wrap(function _callee68$(_context68) {\n while (1) {\n switch (_context68.prev = _context68.next) {\n case 0:\n t = _ref27.oldBlock, e = _ref27.newBlock;\n\n if (!(0 === i.length)) {\n _context68.next = 3;\n break;\n }\n\n return _context68.abrupt(\"return\");\n\n case 3:\n _context68.next = 5;\n return p.acquire();\n\n case 5:\n n = _context68.sent;\n _context68.prev = 6;\n _context68.next = 9;\n return Promise.all(f(i).map( /*#__PURE__*/function () {\n var _ref29 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee67(n) {\n return _regeneratorRuntime.wrap(function _callee67$(_context67) {\n while (1) {\n switch (_context67.prev = _context67.next) {\n case 0:\n _context67.prev = 0;\n _context67.next = 3;\n return n.update({\n oldBlock: t,\n newBlock: e\n });\n\n case 3:\n _context67.next = 8;\n break;\n\n case 5:\n _context67.prev = 5;\n _context67.t0 = _context67[\"catch\"](0);\n console.error(_context67.t0);\n\n case 8:\n case \"end\":\n return _context67.stop();\n }\n }\n }, _callee67, null, [[0, 5]]);\n }));\n\n return function (_x86) {\n return _ref29.apply(this, arguments);\n };\n }()));\n\n case 9:\n _context68.next = 14;\n break;\n\n case 11:\n _context68.prev = 11;\n _context68.t0 = _context68[\"catch\"](6);\n console.error(_context68.t0);\n\n case 14:\n n();\n\n case 15:\n case \"end\":\n return _context68.stop();\n }\n }\n }, _callee68, null, [[6, 11]]);\n }));\n\n return function g(_x85) {\n return _ref28.apply(this, arguments);\n };\n }();\n\n return y.newLogFilter = m, y.newBlockFilter = v, y.newPendingTransactionFilter = w, y.uninstallFilter = E, y.getFilterChanges = _, y.getFilterLogs = S, y.destroy = function () {\n !_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee69() {\n var t;\n return _regeneratorRuntime.wrap(function _callee69$(_context69) {\n while (1) {\n switch (_context69.prev = _context69.next) {\n case 0:\n t = f(i).length;\n i = {}, x({\n prevFilterCount: t,\n newFilterCount: 0\n });\n\n case 2:\n case \"end\":\n return _context69.stop();\n }\n }\n }, _callee69);\n }))();\n }, y;\n\n function m(_x87) {\n return _m.apply(this, arguments);\n }\n\n function _m() {\n _m = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee70(t) {\n var n;\n return _regeneratorRuntime.wrap(function _callee70$(_context70) {\n while (1) {\n switch (_context70.prev = _context70.next) {\n case 0:\n n = new s({\n provider: e,\n params: t\n });\n _context70.next = 3;\n return M(n);\n\n case 3:\n return _context70.abrupt(\"return\", n);\n\n case 4:\n case \"end\":\n return _context70.stop();\n }\n }\n }, _callee70);\n }));\n return _m.apply(this, arguments);\n }\n\n function v() {\n return _v.apply(this, arguments);\n }\n\n function _v() {\n _v = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee71() {\n var t;\n return _regeneratorRuntime.wrap(function _callee71$(_context71) {\n while (1) {\n switch (_context71.prev = _context71.next) {\n case 0:\n t = new a({\n provider: e\n });\n _context71.next = 3;\n return M(t);\n\n case 3:\n return _context71.abrupt(\"return\", t);\n\n case 4:\n case \"end\":\n return _context71.stop();\n }\n }\n }, _callee71);\n }));\n return _v.apply(this, arguments);\n }\n\n function w() {\n return _w.apply(this, arguments);\n }\n\n function _w() {\n _w = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee72() {\n var t;\n return _regeneratorRuntime.wrap(function _callee72$(_context72) {\n while (1) {\n switch (_context72.prev = _context72.next) {\n case 0:\n t = new u({\n provider: e\n });\n _context72.next = 3;\n return M(t);\n\n case 3:\n return _context72.abrupt(\"return\", t);\n\n case 4:\n case \"end\":\n return _context72.stop();\n }\n }\n }, _callee72);\n }));\n return _w.apply(this, arguments);\n }\n\n function _(_x88) {\n return _2.apply(this, arguments);\n }\n\n function _2() {\n _2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee73(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee73$(_context73) {\n while (1) {\n switch (_context73.prev = _context73.next) {\n case 0:\n e = l(t), n = i[e];\n\n if (n) {\n _context73.next = 3;\n break;\n }\n\n throw new Error(\"No filter for index \\\"\".concat(e, \"\\\"\"));\n\n case 3:\n return _context73.abrupt(\"return\", n.getChangesAndClear());\n\n case 4:\n case \"end\":\n return _context73.stop();\n }\n }\n }, _callee73);\n }));\n return _2.apply(this, arguments);\n }\n\n function S(_x89) {\n return _S.apply(this, arguments);\n }\n\n function _S() {\n _S = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee74(t) {\n var e, n, r;\n return _regeneratorRuntime.wrap(function _callee74$(_context74) {\n while (1) {\n switch (_context74.prev = _context74.next) {\n case 0:\n e = l(t), n = i[e];\n\n if (n) {\n _context74.next = 3;\n break;\n }\n\n throw new Error(\"No filter for index \\\"\".concat(e, \"\\\"\"));\n\n case 3:\n r = [];\n return _context74.abrupt(\"return\", (\"log\" === n.type && (r = n.getAllResults()), r));\n\n case 5:\n case \"end\":\n return _context74.stop();\n }\n }\n }, _callee74);\n }));\n return _S.apply(this, arguments);\n }\n\n function E(_x90) {\n return _E.apply(this, arguments);\n }\n\n function _E() {\n _E = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee76(t) {\n var e, n, r;\n return _regeneratorRuntime.wrap(function _callee76$(_context76) {\n while (1) {\n switch (_context76.prev = _context76.next) {\n case 0:\n e = l(t), n = i[e], r = Boolean(n);\n _context76.t0 = r;\n\n if (!_context76.t0) {\n _context76.next = 5;\n break;\n }\n\n _context76.next = 5;\n return function () {\n var _ref32 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee75(t) {\n var e, n;\n return _regeneratorRuntime.wrap(function _callee75$(_context75) {\n while (1) {\n switch (_context75.prev = _context75.next) {\n case 0:\n e = f(i).length;\n delete i[t];\n n = f(i).length;\n x({\n prevFilterCount: e,\n newFilterCount: n\n });\n\n case 4:\n case \"end\":\n return _context75.stop();\n }\n }\n }, _callee75);\n }));\n\n return function (_x92) {\n return _ref32.apply(this, arguments);\n };\n }()(e);\n\n case 5:\n return _context76.abrupt(\"return\", r);\n\n case 6:\n case \"end\":\n return _context76.stop();\n }\n }\n }, _callee76);\n }));\n return _E.apply(this, arguments);\n }\n\n function M(_x91) {\n return _M.apply(this, arguments);\n }\n\n function _M() {\n _M = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee77(e) {\n var r, o;\n return _regeneratorRuntime.wrap(function _callee77$(_context77) {\n while (1) {\n switch (_context77.prev = _context77.next) {\n case 0:\n r = f(i).length;\n _context77.next = 3;\n return t.getLatestBlock();\n\n case 3:\n o = _context77.sent;\n _context77.next = 6;\n return e.initialize({\n currentBlock: o\n });\n\n case 6:\n n++;\n i[n] = e;\n e.id = n;\n e.idHex = c(n);\n return _context77.abrupt(\"return\", (x({\n prevFilterCount: r,\n newFilterCount: f(i).length\n }), n));\n\n case 11:\n case \"end\":\n return _context77.stop();\n }\n }\n }, _callee77);\n }));\n return _M.apply(this, arguments);\n }\n\n function x(_ref31) {\n var e = _ref31.prevFilterCount,\n n = _ref31.newFilterCount;\n 0 === e && n > 0 ? t.on(\"sync\", g) : e > 0 && 0 === n && t.removeListener(\"sync\", g);\n }\n };\n}, function (t, e, n) {\n var r = n(119),\n i = n(188),\n o = n(189),\n _n37 = n(59),\n s = _n37.bnToHex,\n a = _n37.hexToInt,\n u = _n37.incrementHexInt,\n c = _n37.minBlockRef,\n l = _n37.blockRefIsNumber;\n\n t.exports = /*#__PURE__*/function (_o7) {\n _inherits(_class10, _o7);\n\n var _super13 = _createSuper(_class10);\n\n function _class10(_ref33) {\n var _this26;\n\n var t = _ref33.provider,\n e = _ref33.params;\n\n _classCallCheck(this, _class10);\n\n _this26 = _super13.call(this), _this26.type = \"log\", _this26.ethQuery = new r(t), _this26.params = Object.assign({\n fromBlock: \"latest\",\n toBlock: \"latest\",\n address: void 0,\n topics: []\n }, e), _this26.params.address && (Array.isArray(_this26.params.address) || (_this26.params.address = [_this26.params.address]), _this26.params.address = _this26.params.address.map(function (t) {\n return t.toLowerCase();\n }));\n return _this26;\n }\n\n _createClass(_class10, [{\n key: \"initialize\",\n value: function () {\n var _initialize2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee78(_ref34) {\n var t, e, n, r, i;\n return _regeneratorRuntime.wrap(function _callee78$(_context78) {\n while (1) {\n switch (_context78.prev = _context78.next) {\n case 0:\n t = _ref34.currentBlock;\n e = this.params.fromBlock;\n [\"latest\", \"pending\"].includes(e) && (e = t), \"earliest\" === e && (e = \"0x0\"), this.params.fromBlock = e;\n n = c(this.params.toBlock, t);\n r = Object.assign({}, this.params, {\n toBlock: n\n });\n _context78.next = 7;\n return this._fetchLogs(r);\n\n case 7:\n i = _context78.sent;\n this.addInitialResults(i);\n\n case 9:\n case \"end\":\n return _context78.stop();\n }\n }\n }, _callee78, this);\n }));\n\n function initialize(_x93) {\n return _initialize2.apply(this, arguments);\n }\n\n return initialize;\n }()\n }, {\n key: \"update\",\n value: function () {\n var _update3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee79(_ref35) {\n var _this27 = this;\n\n var t, e, n, r, i, o;\n return _regeneratorRuntime.wrap(function _callee79$(_context79) {\n while (1) {\n switch (_context79.prev = _context79.next) {\n case 0:\n t = _ref35.oldBlock, e = _ref35.newBlock;\n n = e;\n r = t ? u(t) : e;\n i = Object.assign({}, this.params, {\n fromBlock: r,\n toBlock: n\n });\n _context79.next = 6;\n return this._fetchLogs(i);\n\n case 6:\n o = _context79.sent.filter(function (t) {\n return _this27.matchLog(t);\n });\n this.addResults(o);\n\n case 8:\n case \"end\":\n return _context79.stop();\n }\n }\n }, _callee79, this);\n }));\n\n function update(_x94) {\n return _update3.apply(this, arguments);\n }\n\n return update;\n }()\n }, {\n key: \"_fetchLogs\",\n value: function () {\n var _fetchLogs2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee80(t) {\n var _this28 = this;\n\n return _regeneratorRuntime.wrap(function _callee80$(_context80) {\n while (1) {\n switch (_context80.prev = _context80.next) {\n case 0:\n _context80.next = 2;\n return i(function (e) {\n return _this28.ethQuery.getLogs(t, e);\n })();\n\n case 2:\n return _context80.abrupt(\"return\", _context80.sent);\n\n case 3:\n case \"end\":\n return _context80.stop();\n }\n }\n }, _callee80);\n }));\n\n function _fetchLogs(_x95) {\n return _fetchLogs2.apply(this, arguments);\n }\n\n return _fetchLogs;\n }()\n }, {\n key: \"matchLog\",\n value: function matchLog(t) {\n if (a(this.params.fromBlock) >= a(t.blockNumber)) return !1;\n if (l(this.params.toBlock) && a(this.params.toBlock) <= a(t.blockNumber)) return !1;\n var e = t.address && t.address.toLowerCase();\n if (this.params.address && e && !this.params.address.includes(e)) return !1;\n return this.params.topics.every(function (e, n) {\n var r = t.topics[n];\n if (!r) return !1;\n r = r.toLowerCase();\n var i = Array.isArray(e) ? e : [e];\n if (i.includes(null)) return !0;\n i = i.map(function (t) {\n return t.toLowerCase();\n });\n return i.includes(r);\n });\n }\n }]);\n\n return _class10;\n }(o);\n}, function (t, e, n) {\n \"use strict\";\n\n var r = function r(t, e, n, _r15) {\n return function () {\n var _this29 = this;\n\n for (var _len4 = arguments.length, i = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n i[_key4] = arguments[_key4];\n }\n\n return new (0, e.promiseModule)(function (o, s) {\n e.multiArgs ? i.push(function () {\n for (var _len5 = arguments.length, t = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n t[_key5] = arguments[_key5];\n }\n\n e.errorFirst ? t[0] ? s(t) : (t.shift(), o(t)) : o(t);\n }) : e.errorFirst ? i.push(function (t, e) {\n t ? s(t) : o(e);\n }) : i.push(o);\n var a = _this29 === n ? _r15 : _this29;\n Reflect.apply(t, a, i);\n });\n };\n },\n i = new WeakMap();\n\n t.exports = function (t, e) {\n e = _objectSpread({\n exclude: [/.+(?:Sync|Stream)$/],\n errorFirst: !0,\n promiseModule: Promise\n }, e);\n\n var n = _typeof(t);\n\n if (null === t || \"object\" !== n && \"function\" !== n) throw new TypeError(\"Expected `input` to be a `Function` or `Object`, got `\".concat(null === t ? \"null\" : n, \"`\"));\n var o = new WeakMap(),\n s = new Proxy(t, {\n apply: function apply(t, n, i) {\n var a = o.get(t);\n if (a) return Reflect.apply(a, n, i);\n var u = e.excludeMain ? t : r(t, e, s, t);\n return o.set(t, u), Reflect.apply(u, n, i);\n },\n get: function get(t, n) {\n var a = t[n];\n if (!function (t, n) {\n var r = i.get(t);\n if (r || (r = {}, i.set(t, r)), n in r) return r[n];\n\n var o = function o(t) {\n return \"string\" == typeof t || \"symbol\" == _typeof(n) ? n === t : t.test(n);\n },\n s = Reflect.getOwnPropertyDescriptor(t, n),\n a = void 0 === s || s.writable || s.configurable,\n u = (e.include ? e.include.some(o) : !e.exclude.some(o)) && a;\n\n return r[n] = u, u;\n }(t, n) || a === Function.prototype[n]) return a;\n var u = o.get(a);\n if (u) return u;\n\n if (\"function\" == typeof a) {\n var _n38 = r(a, e, s, t);\n\n return o.set(a, _n38), _n38;\n }\n\n return a;\n }\n });\n return s;\n };\n}, function (t, e, n) {\n var r = n(98);\n\n t.exports = /*#__PURE__*/function (_r16) {\n _inherits(_class11, _r16);\n\n var _super14 = _createSuper(_class11);\n\n function _class11() {\n var _this30;\n\n _classCallCheck(this, _class11);\n\n _this30 = _super14.call(this), _this30.allResults = [];\n return _this30;\n }\n\n _createClass(_class11, [{\n key: \"update\",\n value: function () {\n var _update4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee81() {\n return _regeneratorRuntime.wrap(function _callee81$(_context81) {\n while (1) {\n switch (_context81.prev = _context81.next) {\n case 0:\n throw new Error(\"BaseFilterWithHistory - no update method specified\");\n\n case 1:\n case \"end\":\n return _context81.stop();\n }\n }\n }, _callee81);\n }));\n\n function update() {\n return _update4.apply(this, arguments);\n }\n\n return update;\n }()\n }, {\n key: \"addResults\",\n value: function addResults(t) {\n this.allResults = this.allResults.concat(t), _get(_getPrototypeOf(_class11.prototype), \"addResults\", this).call(this, t);\n }\n }, {\n key: \"addInitialResults\",\n value: function addInitialResults(t) {\n this.allResults = this.allResults.concat(t), _get(_getPrototypeOf(_class11.prototype), \"addInitialResults\", this).call(this, t);\n }\n }, {\n key: \"getAllResults\",\n value: function getAllResults() {\n return this.allResults;\n }\n }]);\n\n return _class11;\n }(r);\n}, function (t, e, n) {\n var r = n(98),\n i = n(99),\n _n39 = n(59),\n o = _n39.incrementHexInt;\n\n t.exports = /*#__PURE__*/function (_r17) {\n _inherits(_class12, _r17);\n\n var _super15 = _createSuper(_class12);\n\n function _class12(_ref36) {\n var _this31;\n\n var t = _ref36.provider,\n e = _ref36.params;\n\n _classCallCheck(this, _class12);\n\n _this31 = _super15.call(this), _this31.type = \"block\", _this31.provider = t;\n return _this31;\n }\n\n _createClass(_class12, [{\n key: \"update\",\n value: function () {\n var _update5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee82(_ref37) {\n var t, e, n, r, s;\n return _regeneratorRuntime.wrap(function _callee82$(_context82) {\n while (1) {\n switch (_context82.prev = _context82.next) {\n case 0:\n t = _ref37.oldBlock, e = _ref37.newBlock;\n n = e;\n r = o(t);\n _context82.next = 5;\n return i({\n provider: this.provider,\n fromBlock: r,\n toBlock: n\n });\n\n case 5:\n s = _context82.sent.map(function (t) {\n return t.hash;\n });\n this.addResults(s);\n\n case 7:\n case \"end\":\n return _context82.stop();\n }\n }\n }, _callee82, this);\n }));\n\n function update(_x96) {\n return _update5.apply(this, arguments);\n }\n\n return update;\n }()\n }]);\n\n return _class12;\n }(r);\n}, function (t, e, n) {\n var r = n(98),\n i = n(99),\n _n40 = n(59),\n o = _n40.incrementHexInt;\n\n t.exports = /*#__PURE__*/function (_r18) {\n _inherits(_class13, _r18);\n\n var _super16 = _createSuper(_class13);\n\n function _class13(_ref38) {\n var _this32;\n\n var t = _ref38.provider;\n\n _classCallCheck(this, _class13);\n\n _this32 = _super16.call(this), _this32.type = \"tx\", _this32.provider = t;\n return _this32;\n }\n\n _createClass(_class13, [{\n key: \"update\",\n value: function () {\n var _update6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee83(_ref39) {\n var t, e, n, r, s, _iterator8, _step8, _t17;\n\n return _regeneratorRuntime.wrap(function _callee83$(_context83) {\n while (1) {\n switch (_context83.prev = _context83.next) {\n case 0:\n t = _ref39.oldBlock;\n e = t;\n n = o(t);\n _context83.next = 5;\n return i({\n provider: this.provider,\n fromBlock: n,\n toBlock: e\n });\n\n case 5:\n r = _context83.sent;\n s = [];\n _iterator8 = _createForOfIteratorHelper(r);\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n _t17 = _step8.value;\n s.push.apply(s, _toConsumableArray(_t17.transactions));\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n this.addResults(s);\n\n case 10:\n case \"end\":\n return _context83.stop();\n }\n }\n }, _callee83, this);\n }));\n\n function update(_x97) {\n return _update6.apply(this, arguments);\n }\n\n return update;\n }()\n }]);\n\n return _class13;\n }(r);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WalletSDKUI = void 0;\n var r = n(193),\n i = n(215),\n o = n(217);\n\n e.WalletSDKUI = /*#__PURE__*/function () {\n function _class14(t) {\n _classCallCheck(this, _class14);\n\n this.standalone = null, this.attached = !1, this.appSrc = null, this.snackbar = new i.Snackbar({\n darkMode: t.darkMode\n }), this.linkFlow = new r.LinkFlow({\n darkMode: t.darkMode,\n version: t.version,\n sessionId: t.session.id,\n sessionSecret: t.session.secret,\n linkAPIUrl: t.linkAPIUrl,\n connected$: t.connected$,\n chainId$: t.chainId$,\n isParentConnection: !1\n });\n }\n\n _createClass(_class14, [{\n key: \"attach\",\n value: function attach() {\n if (this.attached) throw new Error(\"Coinbase Wallet SDK UI is already attached\");\n var t = document.documentElement,\n e = document.createElement(\"div\");\n e.className = \"-cbwsdk-css-reset\", t.appendChild(e), this.linkFlow.attach(e), this.snackbar.attach(e), this.attached = !0, (0, o.injectCssReset)();\n }\n }, {\n key: \"setConnectDisabled\",\n value: function setConnectDisabled(t) {\n this.linkFlow.setConnectDisabled(t);\n }\n }, {\n key: \"addEthereumChain\",\n value: function addEthereumChain(t) {}\n }, {\n key: \"watchAsset\",\n value: function watchAsset(t) {}\n }, {\n key: \"switchEthereumChain\",\n value: function switchEthereumChain(t) {}\n }, {\n key: \"requestEthereumAccounts\",\n value: function requestEthereumAccounts(t) {\n this.linkFlow.open({\n onCancel: t.onCancel\n });\n }\n }, {\n key: \"hideRequestEthereumAccounts\",\n value: function hideRequestEthereumAccounts() {\n this.linkFlow.close();\n }\n }, {\n key: \"signEthereumMessage\",\n value: function signEthereumMessage(t) {}\n }, {\n key: \"signEthereumTransaction\",\n value: function signEthereumTransaction(t) {}\n }, {\n key: \"submitEthereumTransaction\",\n value: function submitEthereumTransaction(t) {}\n }, {\n key: \"ethereumAddressFromSignedMessage\",\n value: function ethereumAddressFromSignedMessage(t) {}\n }, {\n key: \"showConnecting\",\n value: function showConnecting(t) {\n var e;\n return e = t.isUnlinkedErrorState ? {\n autoExpand: !0,\n message: \"Connection lost\",\n appSrc: this.appSrc,\n menuItems: [{\n isRed: !1,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: t.onResetConnection\n }]\n } : {\n message: \"Confirm on phone\",\n appSrc: this.appSrc,\n menuItems: [{\n isRed: !0,\n info: \"Cancel transaction\",\n svgWidth: \"11\",\n svgHeight: \"11\",\n path: \"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z\",\n defaultFillRule: \"inherit\",\n defaultClipRule: \"inherit\",\n onClick: t.onCancel\n }, {\n isRed: !1,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: t.onResetConnection\n }]\n }, this.snackbar.presentItem(e);\n }\n }, {\n key: \"setAppSrc\",\n value: function setAppSrc(t) {\n this.appSrc = t;\n }\n }, {\n key: \"reloadUI\",\n value: function reloadUI() {\n document.location.reload();\n }\n }, {\n key: \"inlineAccountsResponse\",\n value: function inlineAccountsResponse() {\n return !1;\n }\n }, {\n key: \"inlineAddEthereumChain\",\n value: function inlineAddEthereumChain(t) {\n return !1;\n }\n }, {\n key: \"inlineWatchAsset\",\n value: function inlineWatchAsset() {\n return !1;\n }\n }, {\n key: \"inlineSwitchEthereumChain\",\n value: function inlineSwitchEthereumChain() {\n return !1;\n }\n }, {\n key: \"setStandalone\",\n value: function setStandalone(t) {\n this.standalone = t;\n }\n }, {\n key: \"isStandalone\",\n value: function isStandalone() {\n var t;\n return null !== (t = this.standalone) && void 0 !== t && t;\n }\n }]);\n\n return _class14;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.LinkFlow = void 0;\n var r = n(5),\n i = n(70),\n o = n(194);\n\n e.LinkFlow = /*#__PURE__*/function () {\n function _class15(t) {\n _classCallCheck(this, _class15);\n\n this.extensionUI$ = new i.BehaviorSubject({}), this.subscriptions = new i.Subscription(), this.isConnected = !1, this.chainId = 1, this.isOpen = !1, this.onCancel = null, this.root = null, this.connectDisabled = !1, this.darkMode = t.darkMode, this.version = t.version, this.sessionId = t.sessionId, this.sessionSecret = t.sessionSecret, this.linkAPIUrl = t.linkAPIUrl, this.isParentConnection = t.isParentConnection, this.connected$ = t.connected$, this.chainId$ = t.chainId$;\n }\n\n _createClass(_class15, [{\n key: \"attach\",\n value: function attach(t) {\n var _this33 = this;\n\n this.root = document.createElement(\"div\"), this.root.className = \"-cbwsdk-link-flow-root\", t.appendChild(this.root), this.render(), this.subscriptions.add(this.connected$.subscribe(function (t) {\n _this33.isConnected !== t && (_this33.isConnected = t, _this33.render());\n })), this.subscriptions.add(this.chainId$.subscribe(function (t) {\n _this33.chainId !== t && (_this33.chainId = t, _this33.render());\n }));\n }\n }, {\n key: \"detach\",\n value: function detach() {\n var t;\n this.root && (this.subscriptions.unsubscribe(), (0, r.render)(null, this.root), null === (t = this.root.parentElement) || void 0 === t || t.removeChild(this.root));\n }\n }, {\n key: \"setConnectDisabled\",\n value: function setConnectDisabled(t) {\n this.connectDisabled = t;\n }\n }, {\n key: \"open\",\n value: function open(t) {\n this.isOpen = !0, this.onCancel = t.onCancel, this.render();\n }\n }, {\n key: \"close\",\n value: function close() {\n this.isOpen = !1, this.onCancel = null, this.render();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this34 = this;\n\n if (!this.root) return;\n var t = this.extensionUI$.subscribe(function () {\n _this34.root && (0, r.render)((0, r.h)(o.ConnectDialog, {\n darkMode: _this34.darkMode,\n version: _this34.version,\n sessionId: _this34.sessionId,\n sessionSecret: _this34.sessionSecret,\n linkAPIUrl: _this34.linkAPIUrl,\n isOpen: _this34.isOpen,\n isConnected: _this34.isConnected,\n isParentConnection: _this34.isParentConnection,\n chainId: _this34.chainId,\n onCancel: _this34.onCancel,\n connectDisabled: _this34.connectDisabled\n }), _this34.root);\n });\n this.subscriptions.add(t);\n }\n }]);\n\n return _class15;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ConnectDialog = void 0;\n var i = r(n(69)),\n o = n(5),\n s = n(60),\n a = n(195),\n u = n(209),\n c = r(n(214));\n\n e.ConnectDialog = function (t) {\n var e = t.isOpen,\n n = t.darkMode,\n _ref40 = (0, s.useState)(!e),\n _ref41 = _slicedToArray(_ref40, 2),\n r = _ref41[0],\n l = _ref41[1],\n _ref42 = (0, s.useState)(!e),\n _ref43 = _slicedToArray(_ref42, 2),\n h = _ref43[0],\n d = _ref43[1];\n\n (0, s.useEffect)(function () {\n var t = [window.setTimeout(function () {\n d(!e);\n }, 10)];\n return e ? l(!1) : t.push(window.setTimeout(function () {\n l(!0);\n }, 360)), function () {\n t.forEach(window.clearTimeout);\n };\n }, [t.isOpen]);\n var f = n ? \"dark\" : \"light\";\n return (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-connect-dialog-container\", r && \"-cbwsdk-connect-dialog-container-hidden\")\n }, (0, o.h)(\"style\", null, c.default), (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-connect-dialog-backdrop\", f, h && \"-cbwsdk-connect-dialog-backdrop-hidden\")\n }), (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-dialog\"\n }, (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-connect-dialog-box\", h && \"-cbwsdk-connect-dialog-box-hidden\")\n }, t.connectDisabled ? null : (0, o.h)(a.ConnectContent, {\n theme: f,\n version: t.version,\n sessionId: t.sessionId,\n sessionSecret: t.sessionSecret,\n linkAPIUrl: t.linkAPIUrl,\n isConnected: t.isConnected,\n isParentConnection: t.isParentConnection,\n chainId: t.chainId,\n onCancel: t.onCancel\n }), (0, o.h)(u.TryExtensionContent, {\n theme: f\n }))));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CoinbaseAppSteps = e.CoinbaseWalletSteps = e.ConnectItem = e.ConnectContent = void 0;\n\n var i = r(n(69)),\n o = n(5),\n s = n(60),\n a = n(38),\n u = n(196),\n c = n(197),\n l = r(n(198)),\n h = r(n(199)),\n d = n(200),\n f = r(n(201)),\n p = r(n(202)),\n b = n(203),\n y = n(204),\n g = n(206),\n m = r(n(208)),\n v = {\n \"coinbase-wallet-app\": {\n title: \"Coinbase Wallet app\",\n description: \"Connect with your self-custody wallet\",\n icon: h.default,\n steps: E\n },\n \"coinbase-app\": {\n title: \"Coinbase app\",\n description: \"Connect with your Coinbase account\",\n icon: l.default,\n steps: M\n }\n },\n w = function w(t) {\n switch (t) {\n case \"coinbase-app\":\n return f.default;\n\n case \"coinbase-wallet-app\":\n default:\n return p.default;\n }\n },\n _ = function _(t) {\n return \"light\" === t ? \"#FFFFFF\" : \"#0A0B0D\";\n };\n\n function S(_ref44) {\n var t = _ref44.title,\n e = _ref44.description,\n n = _ref44.icon,\n r = _ref44.selected,\n s = _ref44.theme,\n a = _ref44.onClick;\n return (0, o.h)(\"div\", {\n onClick: a,\n class: (0, i.default)(\"-cbwsdk-connect-item\", s, {\n selected: r\n })\n }, (0, o.h)(\"div\", null, (0, o.h)(\"img\", {\n src: n,\n alt: t\n })), (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-item-copy-wrapper\"\n }, (0, o.h)(\"h3\", {\n class: \"-cbwsdk-connect-item-title\"\n }, t), (0, o.h)(\"p\", {\n class: \"-cbwsdk-connect-item-description\"\n }, e)));\n }\n\n function E(_ref45) {\n var t = _ref45.theme;\n return (0, o.h)(\"ol\", {\n class: \"-cbwsdk-wallet-steps\"\n }, (0, o.h)(\"li\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-item\", t)\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-wallet-steps-item-wrapper\"\n }, \"Open Coinbase Wallet app\")), (0, o.h)(\"li\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-item\", t)\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-wallet-steps-item-wrapper\"\n }, (0, o.h)(\"span\", null, \"Tap \", (0, o.h)(\"strong\", null, \"Scan\"), \" \"), (0, o.h)(\"span\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-pad-left\", \"-cbwsdk-wallet-steps-icon\", t)\n }, (0, o.h)(d.QRCodeIcon, {\n fill: _(t)\n })))));\n }\n\n function M(_ref46) {\n var t = _ref46.theme;\n return (0, o.h)(\"ol\", {\n class: \"-cbwsdk-wallet-steps\"\n }, (0, o.h)(\"li\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-item\", t)\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-wallet-steps-item-wrapper\"\n }, \"Open Coinbase app\")), (0, o.h)(\"li\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-item\", t)\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-wallet-steps-item-wrapper\"\n }, (0, o.h)(\"span\", null, \"Tap \", (0, o.h)(\"strong\", null, \"More\")), (0, o.h)(\"span\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-pad-left\", \"-cbwsdk-wallet-steps-icon\", t)\n }, (0, o.h)(b.StatusDotIcon, {\n fill: _(t)\n })), (0, o.h)(\"span\", {\n class: \"-cbwsdk-wallet-steps-pad-left\"\n }, \"then \", (0, o.h)(\"strong\", null, \"Scan\")), (0, o.h)(\"span\", {\n class: (0, i.default)(\"-cbwsdk-wallet-steps-pad-left\", \"-cbwsdk-wallet-steps-icon\", t)\n }, (0, o.h)(d.QRCodeIcon, {\n fill: _(t)\n })))));\n }\n\n e.ConnectContent = function (t) {\n var e = t.theme,\n _ref47 = (0, s.useState)(\"coinbase-wallet-app\"),\n _ref48 = _slicedToArray(_ref47, 2),\n n = _ref48[0],\n r = _ref48[1],\n l = (0, s.useCallback)(function (t) {\n r(t);\n }, []),\n h = (0, a.createQrUrl)(t.sessionId, t.sessionSecret, t.linkAPIUrl, t.isParentConnection, t.version, t.chainId);\n\n if (!n) return null;\n var d = v[n].steps,\n f = \"coinbase-app\" === n;\n return (0, o.h)(\"div\", {\n \"data-testid\": \"connect-content\",\n class: (0, i.default)(\"-cbwsdk-connect-content\", e)\n }, (0, o.h)(\"style\", null, m.default), (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-content-header\"\n }, (0, o.h)(\"h2\", {\n class: (0, i.default)(\"-cbwsdk-connect-content-heading\", e)\n }, \"Scan to connect with one of our mobile apps\"), t.onCancel && (0, o.h)(\"button\", {\n type: \"button\",\n class: \"-cbwsdk-cancel-button\",\n onClick: t.onCancel\n }, (0, o.h)(c.CloseIcon, {\n fill: \"light\" === e ? \"#0A0B0D\" : \"#FFFFFF\"\n }))), (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-content-layout\"\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-content-column-left\"\n }, (0, o.h)(\"div\", null, Object.entries(v).map(function (_ref49) {\n var _ref50 = _slicedToArray(_ref49, 2),\n t = _ref50[0],\n r = _ref50[1];\n\n return (0, o.h)(S, {\n key: t,\n title: r.title,\n description: r.description,\n icon: r.icon,\n selected: n === t,\n onClick: function onClick() {\n return l(t);\n },\n theme: e\n });\n })), f && (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-connect-content-update-app\", e)\n }, \"Don’t see a \", (0, o.h)(\"strong\", null, \"Scan\"), \" option? Update your Coinbase app to the latest version and try again.\")), (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-content-column-right\"\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-connect-content-qr-wrapper\"\n }, (0, o.h)(y.QRCode, {\n content: h,\n width: 200,\n height: 200,\n fgColor: \"#000\",\n bgColor: \"transparent\",\n image: {\n svg: w(n),\n width: 25,\n height: 25\n }\n }), (0, o.h)(\"input\", {\n type: \"hidden\",\n name: \"cbw-cbwsdk-version\",\n value: u.LIB_VERSION\n }), (0, o.h)(\"input\", {\n type: \"hidden\",\n value: h\n })), (0, o.h)(d, {\n theme: e\n }), !t.isConnected && (0, o.h)(\"div\", {\n \"data-testid\": \"connecting-spinner\",\n class: (0, i.default)(\"-cbwsdk-connect-content-qr-connecting\", e)\n }, (0, o.h)(g.Spinner, {\n size: 36,\n color: \"dark\" === e ? \"#FFF\" : \"#000\"\n }), (0, o.h)(\"p\", null, \"Connecting...\")))));\n }, e.ConnectItem = S, e.CoinbaseWalletSteps = E, e.CoinbaseAppSteps = M;\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.LIB_VERSION = void 0, e.LIB_VERSION = \"3.6.4\";\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CloseIcon = void 0;\n var r = n(5);\n\n e.CloseIcon = function (t) {\n return (0, r.h)(\"svg\", Object.assign({\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, t), (0, r.h)(\"path\", {\n d: \"M13.7677 13L12.3535 14.4142L18.3535 20.4142L12.3535 26.4142L13.7677 27.8284L19.7677 21.8284L25.7677 27.8284L27.1819 26.4142L21.1819 20.4142L27.1819 14.4142L25.7677 13L19.7677 19L13.7677 13Z\"\n }));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMTQiIGN5PSIxNCIgcj0iMTQiIGZpbGw9IiMwMDUyRkYiLz48cGF0aCBkPSJNMTQuMDM3IDE4LjkyNmMtMi43NSAwLTQuOTA3LTIuMjA1LTQuOTA3LTQuOTI2IDAtMi43MiAyLjIzLTQuOTI2IDQuOTA3LTQuOTI2YTQuODY2IDQuODY2IDAgMCAxIDQuODMzIDQuMTE4aDQuOTgyYy0uNDQ2LTUuMDczLTQuNjg0LTkuMDQ0LTkuODE1LTkuMDQ0QzguNjEgNC4xNDggNC4xNDkgOC41NiA0LjE0OSAxNHM0LjM4NyA5Ljg1MiA5Ljg5IDkuODUyYzUuMjA0IDAgOS4zNjgtMy45NyA5LjgxNC05LjA0M0gxOC44N2E0Ljg2NiA0Ljg2NiAwIDAgMS00LjgzMyA0LjExN1oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=\";\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMTQiIGN5PSIxNCIgcj0iMTQiIGZpbGw9IiMwMDUyRkYiLz48cGF0aCBkPSJNMjMuODUyIDE0QTkuODM0IDkuODM0IDAgMCAxIDE0IDIzLjg1MiA5LjgzNCA5LjgzNCAwIDAgMSA0LjE0OCAxNCA5LjgzNCA5LjgzNCAwIDAgMSAxNCA0LjE0OCA5LjgzNCA5LjgzNCAwIDAgMSAyMy44NTIgMTRaIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExLjE4NSAxMi41MDRjMC0uNDU2IDAtLjcxLjA5OC0uODYyLjA5OC0uMTUyLjE5Ni0uMzA0LjM0My0uMzU1LjE5Ni0uMTAyLjM5Mi0uMTAyLjg4MS0uMTAyaDIuOTg2Yy40OSAwIC42ODYgMCAuODgyLjEwMi4xNDYuMTAxLjI5My4yMDMuMzQyLjM1NS4wOTguMjAzLjA5OC40MDYuMDk4Ljg2MnYyLjk5MmMwIC40NTcgMCAuNzEtLjA5OC44NjMtLjA5OC4xNTItLjE5NS4zMDQtLjM0Mi4zNTUtLjE5Ni4xMDEtLjM5Mi4xMDEtLjg4Mi4xMDFoLTIuOTg2Yy0uNDkgMC0uNjg1IDAtLjg4LS4xMDEtLjE0OC0uMTAyLS4yOTUtLjIwMy0uMzQ0LS4zNTUtLjA5OC0uMjAzLS4wOTgtLjQwNi0uMDk4LS44NjN2LTIuOTkyWiIgZmlsbD0iIzAwNTJGRiIvPjwvc3ZnPg==\";\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.QRCodeIcon = void 0;\n var r = n(5);\n\n e.QRCodeIcon = function (t) {\n return (0, r.h)(\"svg\", Object.assign({\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 10 10\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, t), (0, r.h)(\"path\", {\n d: \"M8.2271 1.77124L7.0271 1.77124V2.97124H8.2271V1.77124Z\"\n }), (0, r.h)(\"path\", {\n d: \"M5.44922 0.199219L5.44922 4.54922L9.79922 4.54922V0.199219L5.44922 0.199219ZM8.89922 3.64922L6.34922 3.64922L6.34922 1.09922L8.89922 1.09922V3.64922Z\"\n }), (0, r.h)(\"path\", {\n d: \"M2.97124 1.77124L1.77124 1.77124L1.77124 2.97124H2.97124V1.77124Z\"\n }), (0, r.h)(\"path\", {\n d: \"M0.199219 4.54922L4.54922 4.54922L4.54922 0.199219L0.199219 0.199219L0.199219 4.54922ZM1.09922 1.09922L3.64922 1.09922L3.64922 3.64922L1.09922 3.64922L1.09922 1.09922Z\"\n }), (0, r.h)(\"path\", {\n d: \"M2.97124 7.0271H1.77124L1.77124 8.2271H2.97124V7.0271Z\"\n }), (0, r.h)(\"path\", {\n d: \"M0.199219 9.79922H4.54922L4.54922 5.44922L0.199219 5.44922L0.199219 9.79922ZM1.09922 6.34922L3.64922 6.34922L3.64922 8.89922H1.09922L1.09922 6.34922Z\"\n }), (0, r.h)(\"path\", {\n d: \"M8.89922 7.39912H7.99922V5.40112H5.44922L5.44922 9.79912H6.34922L6.34922 6.30112H7.09922V8.29912H9.79922V5.40112H8.89922V7.39912Z\"\n }), (0, r.h)(\"path\", {\n d: \"M7.99912 8.89917H7.09912V9.79917H7.99912V8.89917Z\"\n }), (0, r.h)(\"path\", {\n d: \"M9.79917 8.89917H8.89917V9.79917H9.79917V8.89917Z\"\n }));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n e.default = '\\n \\n \\n \\n \\n \\n';\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = '\\n \\n \\n \\n \\n \\n \\n';\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.StatusDotIcon = void 0;\n var r = n(5);\n\n e.StatusDotIcon = function (t) {\n return (0, r.h)(\"svg\", Object.assign({\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 10 10\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, t), (0, r.h)(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M2.29995 4.99995C2.29995 5.57985 1.82985 6.04995 1.24995 6.04995C0.670052 6.04995 0.199951 5.57985 0.199951 4.99995C0.199951 4.42005 0.670052 3.94995 1.24995 3.94995C1.82985 3.94995 2.29995 4.42005 2.29995 4.99995ZM4.99995 6.04995C5.57985 6.04995 6.04995 5.57985 6.04995 4.99995C6.04995 4.42005 5.57985 3.94995 4.99995 3.94995C4.42005 3.94995 3.94995 4.42005 3.94995 4.99995C3.94995 5.57985 4.42005 6.04995 4.99995 6.04995ZM8.74995 6.04995C9.32985 6.04995 9.79995 5.57985 9.79995 4.99995C9.79995 4.42005 9.32985 3.94995 8.74995 3.94995C8.17005 3.94995 7.69995 4.42005 7.69995 4.99995C7.69995 5.57985 8.17005 6.04995 8.74995 6.04995Z\"\n }));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n (function (t) {\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.QRCode = void 0;\n var i = n(5),\n o = n(60),\n s = r(n(205));\n\n e.QRCode = function (e) {\n var _ref51 = (0, o.useState)(\"\"),\n _ref52 = _slicedToArray(_ref51, 2),\n n = _ref52[0],\n r = _ref52[1];\n\n return (0, o.useEffect)(function () {\n var n, i;\n var o = new s.default({\n content: e.content,\n background: e.bgColor || \"#ffffff\",\n color: e.fgColor || \"#000000\",\n container: \"svg\",\n ecl: \"M\",\n width: null !== (n = e.width) && void 0 !== n ? n : 256,\n height: null !== (i = e.height) && void 0 !== i ? i : 256,\n padding: 0,\n image: e.image\n }),\n a = t.from(o.svg(), \"utf8\").toString(\"base64\");\n r(\"data:image/svg+xml;base64,\" + a);\n }), n ? (0, i.h)(\"img\", {\n src: n,\n alt: \"QR Code\"\n }) : null;\n };\n }).call(this, n(19).Buffer);\n}, function (t, e) {\n function n(t) {\n this.mode = i.MODE_8BIT_BYTE, this.data = t, this.parsedData = [];\n\n for (var e = 0, n = this.data.length; e < n; e++) {\n var r = [],\n o = this.data.charCodeAt(e);\n o > 65536 ? (r[0] = 240 | (1835008 & o) >>> 18, r[1] = 128 | (258048 & o) >>> 12, r[2] = 128 | (4032 & o) >>> 6, r[3] = 128 | 63 & o) : o > 2048 ? (r[0] = 224 | (61440 & o) >>> 12, r[1] = 128 | (4032 & o) >>> 6, r[2] = 128 | 63 & o) : o > 128 ? (r[0] = 192 | (1984 & o) >>> 6, r[1] = 128 | 63 & o) : r[0] = o, this.parsedData.push(r);\n }\n\n this.parsedData = Array.prototype.concat.apply([], this.parsedData), this.parsedData.length != this.data.length && (this.parsedData.unshift(191), this.parsedData.unshift(187), this.parsedData.unshift(239));\n }\n\n function r(t, e) {\n this.typeNumber = t, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.dataList = [];\n }\n\n n.prototype = {\n getLength: function getLength(t) {\n return this.parsedData.length;\n },\n write: function write(t) {\n for (var e = 0, n = this.parsedData.length; e < n; e++) {\n t.put(this.parsedData[e], 8);\n }\n }\n }, r.prototype = {\n addData: function addData(t) {\n var e = new n(t);\n this.dataList.push(e), this.dataCache = null;\n },\n isDark: function isDark(t, e) {\n if (t < 0 || this.moduleCount <= t || e < 0 || this.moduleCount <= e) throw new Error(t + \",\" + e);\n return this.modules[t][e];\n },\n getModuleCount: function getModuleCount() {\n return this.moduleCount;\n },\n make: function make() {\n this.makeImpl(!1, this.getBestMaskPattern());\n },\n makeImpl: function makeImpl(t, e) {\n this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);\n\n for (var n = 0; n < this.moduleCount; n++) {\n this.modules[n] = new Array(this.moduleCount);\n\n for (var i = 0; i < this.moduleCount; i++) {\n this.modules[n][i] = null;\n }\n }\n\n this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(t, e), this.typeNumber >= 7 && this.setupTypeNumber(t), null == this.dataCache && (this.dataCache = r.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)), this.mapData(this.dataCache, e);\n },\n setupPositionProbePattern: function setupPositionProbePattern(t, e) {\n for (var n = -1; n <= 7; n++) {\n if (!(t + n <= -1 || this.moduleCount <= t + n)) for (var r = -1; r <= 7; r++) {\n e + r <= -1 || this.moduleCount <= e + r || (this.modules[t + n][e + r] = 0 <= n && n <= 6 && (0 == r || 6 == r) || 0 <= r && r <= 6 && (0 == n || 6 == n) || 2 <= n && n <= 4 && 2 <= r && r <= 4);\n }\n }\n },\n getBestMaskPattern: function getBestMaskPattern() {\n for (var t = 0, e = 0, n = 0; n < 8; n++) {\n this.makeImpl(!0, n);\n var r = g.getLostPoint(this);\n (0 == n || t > r) && (t = r, e = n);\n }\n\n return e;\n },\n createMovieClip: function createMovieClip(t, e, n) {\n var r = t.createEmptyMovieClip(e, n);\n this.make();\n\n for (var i = 0; i < this.modules.length; i++) {\n for (var o = 1 * i, s = 0; s < this.modules[i].length; s++) {\n var a = 1 * s;\n this.modules[i][s] && (r.beginFill(0, 100), r.moveTo(a, o), r.lineTo(a + 1, o), r.lineTo(a + 1, o + 1), r.lineTo(a, o + 1), r.endFill());\n }\n }\n\n return r;\n },\n setupTimingPattern: function setupTimingPattern() {\n for (var t = 8; t < this.moduleCount - 8; t++) {\n null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0);\n }\n\n for (var e = 8; e < this.moduleCount - 8; e++) {\n null == this.modules[6][e] && (this.modules[6][e] = e % 2 == 0);\n }\n },\n setupPositionAdjustPattern: function setupPositionAdjustPattern() {\n for (var t = g.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++) {\n for (var n = 0; n < t.length; n++) {\n var r = t[e],\n i = t[n];\n if (null == this.modules[r][i]) for (var o = -2; o <= 2; o++) {\n for (var s = -2; s <= 2; s++) {\n this.modules[r + o][i + s] = -2 == o || 2 == o || -2 == s || 2 == s || 0 == o && 0 == s;\n }\n }\n }\n }\n },\n setupTypeNumber: function setupTypeNumber(t) {\n for (var e = g.getBCHTypeNumber(this.typeNumber), n = 0; n < 18; n++) {\n var r = !t && 1 == (e >> n & 1);\n this.modules[Math.floor(n / 3)][n % 3 + this.moduleCount - 8 - 3] = r;\n }\n\n for (n = 0; n < 18; n++) {\n r = !t && 1 == (e >> n & 1);\n this.modules[n % 3 + this.moduleCount - 8 - 3][Math.floor(n / 3)] = r;\n }\n },\n setupTypeInfo: function setupTypeInfo(t, e) {\n for (var n = this.errorCorrectLevel << 3 | e, r = g.getBCHTypeInfo(n), i = 0; i < 15; i++) {\n var o = !t && 1 == (r >> i & 1);\n i < 6 ? this.modules[i][8] = o : i < 8 ? this.modules[i + 1][8] = o : this.modules[this.moduleCount - 15 + i][8] = o;\n }\n\n for (i = 0; i < 15; i++) {\n o = !t && 1 == (r >> i & 1);\n i < 8 ? this.modules[8][this.moduleCount - i - 1] = o : i < 9 ? this.modules[8][15 - i - 1 + 1] = o : this.modules[8][15 - i - 1] = o;\n }\n\n this.modules[this.moduleCount - 8][8] = !t;\n },\n mapData: function mapData(t, e) {\n for (var n = -1, r = this.moduleCount - 1, i = 7, o = 0, s = this.moduleCount - 1; s > 0; s -= 2) {\n for (6 == s && s--;;) {\n for (var a = 0; a < 2; a++) {\n if (null == this.modules[r][s - a]) {\n var u = !1;\n o < t.length && (u = 1 == (t[o] >>> i & 1)), g.getMask(e, r, s - a) && (u = !u), this.modules[r][s - a] = u, -1 == --i && (o++, i = 7);\n }\n }\n\n if ((r += n) < 0 || this.moduleCount <= r) {\n r -= n, n = -n;\n break;\n }\n }\n }\n }\n }, r.PAD0 = 236, r.PAD1 = 17, r.createData = function (t, e, n) {\n for (var i = _.getRSBlocks(t, e), o = new S(), s = 0; s < n.length; s++) {\n var a = n[s];\n o.put(a.mode, 4), o.put(a.getLength(), g.getLengthInBits(a.mode, t)), a.write(o);\n }\n\n var u = 0;\n\n for (s = 0; s < i.length; s++) {\n u += i[s].dataCount;\n }\n\n if (o.getLengthInBits() > 8 * u) throw new Error(\"code length overflow. (\" + o.getLengthInBits() + \">\" + 8 * u + \")\");\n\n for (o.getLengthInBits() + 4 <= 8 * u && o.put(0, 4); o.getLengthInBits() % 8 != 0;) {\n o.putBit(!1);\n }\n\n for (; !(o.getLengthInBits() >= 8 * u || (o.put(r.PAD0, 8), o.getLengthInBits() >= 8 * u));) {\n o.put(r.PAD1, 8);\n }\n\n return r.createBytes(o, i);\n }, r.createBytes = function (t, e) {\n for (var n = 0, r = 0, i = 0, o = new Array(e.length), s = new Array(e.length), a = 0; a < e.length; a++) {\n var u = e[a].dataCount,\n c = e[a].totalCount - u;\n r = Math.max(r, u), i = Math.max(i, c), o[a] = new Array(u);\n\n for (var l = 0; l < o[a].length; l++) {\n o[a][l] = 255 & t.buffer[l + n];\n }\n\n n += u;\n var h = g.getErrorCorrectPolynomial(c),\n d = new w(o[a], h.getLength() - 1).mod(h);\n s[a] = new Array(h.getLength() - 1);\n\n for (l = 0; l < s[a].length; l++) {\n var f = l + d.getLength() - s[a].length;\n s[a][l] = f >= 0 ? d.get(f) : 0;\n }\n }\n\n var p = 0;\n\n for (l = 0; l < e.length; l++) {\n p += e[l].totalCount;\n }\n\n var b = new Array(p),\n y = 0;\n\n for (l = 0; l < r; l++) {\n for (a = 0; a < e.length; a++) {\n l < o[a].length && (b[y++] = o[a][l]);\n }\n }\n\n for (l = 0; l < i; l++) {\n for (a = 0; a < e.length; a++) {\n l < s[a].length && (b[y++] = s[a][l]);\n }\n }\n\n return b;\n };\n\n for (var i = {\n MODE_NUMBER: 1,\n MODE_ALPHA_NUM: 2,\n MODE_8BIT_BYTE: 4,\n MODE_KANJI: 8\n }, o = 1, s = 0, a = 3, u = 2, c = 0, l = 1, h = 2, d = 3, f = 4, p = 5, b = 6, y = 7, g = {\n PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],\n G15: 1335,\n G18: 7973,\n G15_MASK: 21522,\n getBCHTypeInfo: function getBCHTypeInfo(t) {\n for (var e = t << 10; g.getBCHDigit(e) - g.getBCHDigit(g.G15) >= 0;) {\n e ^= g.G15 << g.getBCHDigit(e) - g.getBCHDigit(g.G15);\n }\n\n return (t << 10 | e) ^ g.G15_MASK;\n },\n getBCHTypeNumber: function getBCHTypeNumber(t) {\n for (var e = t << 12; g.getBCHDigit(e) - g.getBCHDigit(g.G18) >= 0;) {\n e ^= g.G18 << g.getBCHDigit(e) - g.getBCHDigit(g.G18);\n }\n\n return t << 12 | e;\n },\n getBCHDigit: function getBCHDigit(t) {\n for (var e = 0; 0 != t;) {\n e++, t >>>= 1;\n }\n\n return e;\n },\n getPatternPosition: function getPatternPosition(t) {\n return g.PATTERN_POSITION_TABLE[t - 1];\n },\n getMask: function getMask(t, e, n) {\n switch (t) {\n case c:\n return (e + n) % 2 == 0;\n\n case l:\n return e % 2 == 0;\n\n case h:\n return n % 3 == 0;\n\n case d:\n return (e + n) % 3 == 0;\n\n case f:\n return (Math.floor(e / 2) + Math.floor(n / 3)) % 2 == 0;\n\n case p:\n return e * n % 2 + e * n % 3 == 0;\n\n case b:\n return (e * n % 2 + e * n % 3) % 2 == 0;\n\n case y:\n return (e * n % 3 + (e + n) % 2) % 2 == 0;\n\n default:\n throw new Error(\"bad maskPattern:\" + t);\n }\n },\n getErrorCorrectPolynomial: function getErrorCorrectPolynomial(t) {\n for (var e = new w([1], 0), n = 0; n < t; n++) {\n e = e.multiply(new w([1, m.gexp(n)], 0));\n }\n\n return e;\n },\n getLengthInBits: function getLengthInBits(t, e) {\n if (1 <= e && e < 10) switch (t) {\n case i.MODE_NUMBER:\n return 10;\n\n case i.MODE_ALPHA_NUM:\n return 9;\n\n case i.MODE_8BIT_BYTE:\n case i.MODE_KANJI:\n return 8;\n\n default:\n throw new Error(\"mode:\" + t);\n } else if (e < 27) switch (t) {\n case i.MODE_NUMBER:\n return 12;\n\n case i.MODE_ALPHA_NUM:\n return 11;\n\n case i.MODE_8BIT_BYTE:\n return 16;\n\n case i.MODE_KANJI:\n return 10;\n\n default:\n throw new Error(\"mode:\" + t);\n } else {\n if (!(e < 41)) throw new Error(\"type:\" + e);\n\n switch (t) {\n case i.MODE_NUMBER:\n return 14;\n\n case i.MODE_ALPHA_NUM:\n return 13;\n\n case i.MODE_8BIT_BYTE:\n return 16;\n\n case i.MODE_KANJI:\n return 12;\n\n default:\n throw new Error(\"mode:\" + t);\n }\n }\n },\n getLostPoint: function getLostPoint(t) {\n for (var e = t.getModuleCount(), n = 0, r = 0; r < e; r++) {\n for (var i = 0; i < e; i++) {\n for (var o = 0, s = t.isDark(r, i), a = -1; a <= 1; a++) {\n if (!(r + a < 0 || e <= r + a)) for (var u = -1; u <= 1; u++) {\n i + u < 0 || e <= i + u || 0 == a && 0 == u || s == t.isDark(r + a, i + u) && o++;\n }\n }\n\n o > 5 && (n += 3 + o - 5);\n }\n }\n\n for (r = 0; r < e - 1; r++) {\n for (i = 0; i < e - 1; i++) {\n var c = 0;\n t.isDark(r, i) && c++, t.isDark(r + 1, i) && c++, t.isDark(r, i + 1) && c++, t.isDark(r + 1, i + 1) && c++, 0 != c && 4 != c || (n += 3);\n }\n }\n\n for (r = 0; r < e; r++) {\n for (i = 0; i < e - 6; i++) {\n t.isDark(r, i) && !t.isDark(r, i + 1) && t.isDark(r, i + 2) && t.isDark(r, i + 3) && t.isDark(r, i + 4) && !t.isDark(r, i + 5) && t.isDark(r, i + 6) && (n += 40);\n }\n }\n\n for (i = 0; i < e; i++) {\n for (r = 0; r < e - 6; r++) {\n t.isDark(r, i) && !t.isDark(r + 1, i) && t.isDark(r + 2, i) && t.isDark(r + 3, i) && t.isDark(r + 4, i) && !t.isDark(r + 5, i) && t.isDark(r + 6, i) && (n += 40);\n }\n }\n\n var l = 0;\n\n for (i = 0; i < e; i++) {\n for (r = 0; r < e; r++) {\n t.isDark(r, i) && l++;\n }\n }\n\n return n += 10 * (Math.abs(100 * l / e / e - 50) / 5);\n }\n }, m = {\n glog: function glog(t) {\n if (t < 1) throw new Error(\"glog(\" + t + \")\");\n return m.LOG_TABLE[t];\n },\n gexp: function gexp(t) {\n for (; t < 0;) {\n t += 255;\n }\n\n for (; t >= 256;) {\n t -= 255;\n }\n\n return m.EXP_TABLE[t];\n },\n EXP_TABLE: new Array(256),\n LOG_TABLE: new Array(256)\n }, v = 0; v < 8; v++) {\n m.EXP_TABLE[v] = 1 << v;\n }\n\n for (v = 8; v < 256; v++) {\n m.EXP_TABLE[v] = m.EXP_TABLE[v - 4] ^ m.EXP_TABLE[v - 5] ^ m.EXP_TABLE[v - 6] ^ m.EXP_TABLE[v - 8];\n }\n\n for (v = 0; v < 255; v++) {\n m.LOG_TABLE[m.EXP_TABLE[v]] = v;\n }\n\n function w(t, e) {\n if (null == t.length) throw new Error(t.length + \"/\" + e);\n\n for (var n = 0; n < t.length && 0 == t[n];) {\n n++;\n }\n\n this.num = new Array(t.length - n + e);\n\n for (var r = 0; r < t.length - n; r++) {\n this.num[r] = t[r + n];\n }\n }\n\n function _(t, e) {\n this.totalCount = t, this.dataCount = e;\n }\n\n function S() {\n this.buffer = [], this.length = 0;\n }\n\n w.prototype = {\n get: function get(t) {\n return this.num[t];\n },\n getLength: function getLength() {\n return this.num.length;\n },\n multiply: function multiply(t) {\n for (var e = new Array(this.getLength() + t.getLength() - 1), n = 0; n < this.getLength(); n++) {\n for (var r = 0; r < t.getLength(); r++) {\n e[n + r] ^= m.gexp(m.glog(this.get(n)) + m.glog(t.get(r)));\n }\n }\n\n return new w(e, 0);\n },\n mod: function mod(t) {\n if (this.getLength() - t.getLength() < 0) return this;\n\n for (var e = m.glog(this.get(0)) - m.glog(t.get(0)), n = new Array(this.getLength()), r = 0; r < this.getLength(); r++) {\n n[r] = this.get(r);\n }\n\n for (r = 0; r < t.getLength(); r++) {\n n[r] ^= m.gexp(m.glog(t.get(r)) + e);\n }\n\n return new w(n, 0).mod(t);\n }\n }, _.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]], _.getRSBlocks = function (t, e) {\n var n = _.getRsBlockTable(t, e);\n\n if (null == n) throw new Error(\"bad rs block @ typeNumber:\" + t + \"/errorCorrectLevel:\" + e);\n\n for (var r = n.length / 3, i = [], o = 0; o < r; o++) {\n for (var s = n[3 * o + 0], a = n[3 * o + 1], u = n[3 * o + 2], c = 0; c < s; c++) {\n i.push(new _(a, u));\n }\n }\n\n return i;\n }, _.getRsBlockTable = function (t, e) {\n switch (e) {\n case o:\n return _.RS_BLOCK_TABLE[4 * (t - 1) + 0];\n\n case s:\n return _.RS_BLOCK_TABLE[4 * (t - 1) + 1];\n\n case a:\n return _.RS_BLOCK_TABLE[4 * (t - 1) + 2];\n\n case u:\n return _.RS_BLOCK_TABLE[4 * (t - 1) + 3];\n\n default:\n return;\n }\n }, S.prototype = {\n get: function get(t) {\n var e = Math.floor(t / 8);\n return 1 == (this.buffer[e] >>> 7 - t % 8 & 1);\n },\n put: function put(t, e) {\n for (var n = 0; n < e; n++) {\n this.putBit(1 == (t >>> e - n - 1 & 1));\n }\n },\n getLengthInBits: function getLengthInBits() {\n return this.length;\n },\n putBit: function putBit(t) {\n var e = Math.floor(this.length / 8);\n this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++;\n }\n };\n var E = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]];\n\n function M(t) {\n if (this.options = {\n padding: 4,\n width: 256,\n height: 256,\n typeNumber: 4,\n color: \"#000000\",\n background: \"#ffffff\",\n ecl: \"M\",\n image: {\n svg: \"\",\n width: 0,\n height: 0\n }\n }, \"string\" == typeof t && (t = {\n content: t\n }), t) for (var e in t) {\n this.options[e] = t[e];\n }\n if (\"string\" != typeof this.options.content) throw new Error(\"Expected 'content' as string!\");\n if (0 === this.options.content.length) throw new Error(\"Expected 'content' to be non-empty!\");\n if (!(this.options.padding >= 0)) throw new Error(\"Expected 'padding' value to be non-negative!\");\n if (!(this.options.width > 0 && this.options.height > 0)) throw new Error(\"Expected 'width' or 'height' value to be higher than zero!\");\n\n var n = this.options.content,\n i = function (t, e) {\n for (var n = function (t) {\n var e = encodeURI(t).toString().replace(/\\%[0-9a-fA-F]{2}/g, \"a\");\n return e.length + (e.length != t ? 3 : 0);\n }(t), r = 1, i = 0, o = 0, s = E.length; o <= s; o++) {\n var a = E[o];\n if (!a) throw new Error(\"Content too long: expected \" + i + \" but got \" + n);\n\n switch (e) {\n case \"L\":\n i = a[0];\n break;\n\n case \"M\":\n i = a[1];\n break;\n\n case \"Q\":\n i = a[2];\n break;\n\n case \"H\":\n i = a[3];\n break;\n\n default:\n throw new Error(\"Unknwon error correction level: \" + e);\n }\n\n if (n <= i) break;\n r++;\n }\n\n if (r > E.length) throw new Error(\"Content too long\");\n return r;\n }(n, this.options.ecl),\n c = function (t) {\n switch (t) {\n case \"L\":\n return o;\n\n case \"M\":\n return s;\n\n case \"Q\":\n return a;\n\n case \"H\":\n return u;\n\n default:\n throw new Error(\"Unknwon error correction level: \" + t);\n }\n }(this.options.ecl);\n\n this.qrcode = new r(i, c), this.qrcode.addData(n), this.qrcode.make();\n }\n\n M.prototype.svg = function (t) {\n var e = this.options || {},\n n = this.qrcode.modules;\n void 0 === t && (t = {\n container: e.container || \"svg\"\n });\n\n for (var r = void 0 === e.pretty || !!e.pretty, i = r ? \" \" : \"\", o = r ? \"\\r\\n\" : \"\", s = e.width, a = e.height, u = n.length, c = s / (u + 2 * e.padding), l = a / (u + 2 * e.padding), h = void 0 !== e.join && !!e.join, d = void 0 !== e.swap && !!e.swap, f = void 0 === e.xmlDeclaration || !!e.xmlDeclaration, p = void 0 !== e.predefined && !!e.predefined, b = p ? i + '' + o : \"\", y = i + '' + o, g = \"\", m = \"\", v = 0; v < u; v++) {\n for (var w = 0; w < u; w++) {\n if (n[w][v]) {\n var _ = w * c + e.padding * c,\n S = v * l + e.padding * l;\n\n if (d) {\n var E = _;\n _ = S, S = E;\n }\n\n if (h) {\n var M = c + _,\n x = l + S;\n _ = Number.isInteger(_) ? Number(_) : _.toFixed(2), S = Number.isInteger(S) ? Number(S) : S.toFixed(2), M = Number.isInteger(M) ? Number(M) : M.toFixed(2), m += \"M\" + _ + \",\" + S + \" V\" + (x = Number.isInteger(x) ? Number(x) : x.toFixed(2)) + \" H\" + M + \" V\" + S + \" H\" + _ + \" Z \";\n } else g += p ? i + '' + o : i + '' + o;\n }\n }\n }\n\n h && (g = i + '');\n var k = \"\";\n\n if (void 0 !== this.options.image && this.options.image.svg) {\n var _t18 = s * this.options.image.width / 100,\n _e22 = a * this.options.image.height / 100;\n\n k += \"\"), k += this.options.image.svg + o, k += \"\";\n }\n\n var C = \"\";\n\n switch (t.container) {\n case \"svg\":\n f && (C += '' + o), C += '' + o, C += b + y + g, C += k, C += \"\";\n break;\n\n case \"svg-viewbox\":\n f && (C += '' + o), C += '' + o, C += b + y + g, C += k, C += \"\";\n break;\n\n case \"g\":\n C += '' + o, C += b + y + g, C += k, C += \"\";\n break;\n\n default:\n C += (b + y + g + k).replace(/^\\s+/, \"\");\n }\n\n return C;\n }, t.exports = M;\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Spinner = void 0;\n var i = n(5),\n o = r(n(207));\n\n e.Spinner = function (t) {\n var e;\n var n = null !== (e = t.size) && void 0 !== e ? e : 64,\n r = t.color || \"#000\";\n return (0, i.h)(\"div\", {\n class: \"-cbwsdk-spinner\"\n }, (0, i.h)(\"style\", null, o.default), (0, i.h)(\"svg\", {\n viewBox: \"0 0 100 100\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n width: n,\n height: n\n }\n }, (0, i.h)(\"circle\", {\n style: {\n cx: 50,\n cy: 50,\n r: 45,\n stroke: r\n }\n })));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \".-cbwsdk-css-reset .-cbwsdk-spinner{display:inline-block}.-cbwsdk-css-reset .-cbwsdk-spinner svg{display:inline-block;animation:2s linear infinite -cbwsdk-spinner-svg}.-cbwsdk-css-reset .-cbwsdk-spinner svg circle{animation:1.9s ease-in-out infinite both -cbwsdk-spinner-circle;display:block;fill:rgba(0,0,0,0);stroke-dasharray:283;stroke-dashoffset:280;stroke-linecap:round;stroke-width:10px;transform-origin:50% 50%}@keyframes -cbwsdk-spinner-svg{0%{transform:rotateZ(0deg)}100%{transform:rotateZ(360deg)}}@keyframes -cbwsdk-spinner-circle{0%,25%{stroke-dashoffset:280;transform:rotate(0)}50%,75%{stroke-dashoffset:75;transform:rotate(45deg)}100%{stroke-dashoffset:280;transform:rotate(360deg)}}\";\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \".-cbwsdk-css-reset .-cbwsdk-connect-content{height:430px;width:700px;border-radius:12px;padding:30px}.-cbwsdk-css-reset .-cbwsdk-connect-content.light{background:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content.dark{background:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-content-header{display:flex;align-items:center;justify-content:space-between;margin:0 0 30px}.-cbwsdk-css-reset .-cbwsdk-connect-content-heading{font-style:normal;font-weight:500;font-size:28px;line-height:36px;margin:0}.-cbwsdk-css-reset .-cbwsdk-connect-content-heading.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-content-heading.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content-layout{display:flex;flex-direction:row}.-cbwsdk-css-reset .-cbwsdk-connect-content-column-left{margin-right:30px;display:flex;flex-direction:column;justify-content:space-between}.-cbwsdk-css-reset .-cbwsdk-connect-content-column-right{flex:25%;margin-right:34px}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-wrapper{width:220px;height:220px;border-radius:12px;display:flex;justify-content:center;align-items:center;background:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.light{background-color:rgba(255,255,255,.95)}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.light>p{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.dark{background-color:rgba(10,11,13,.9)}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.dark>p{color:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting>p{font-size:12px;font-weight:bold;margin-top:16px}.-cbwsdk-css-reset .-cbwsdk-connect-content-update-app{border-radius:8px;font-size:14px;line-height:20px;padding:12px;width:339px}.-cbwsdk-css-reset .-cbwsdk-connect-content-update-app.light{background:#eef0f3;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-connect-content-update-app.dark{background:#1e2025;color:#8a919e}.-cbwsdk-css-reset .-cbwsdk-cancel-button{-webkit-appearance:none;border:none;background:none;cursor:pointer;padding:0;margin:0}.-cbwsdk-css-reset .-cbwsdk-cancel-button-x{position:relative;display:block;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-wallet-steps{padding:0 0 0 16px;margin:0;width:100%;list-style:decimal}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item{list-style-type:decimal;display:list-item;font-style:normal;font-weight:400;font-size:16px;line-height:24px;margin-top:20px}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item-wrapper{display:flex;align-items:center}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-pad-left{margin-left:6px}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon{display:flex;border-radius:50%;height:24px;width:24px}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon svg{margin:auto;display:block}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon.light{background:#0052ff}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon.dark{background:#588af5}.-cbwsdk-css-reset .-cbwsdk-connect-item{align-items:center;display:flex;flex-direction:row;padding:16px 24px;gap:12px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-connect-item.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-item.light.selected{background:#f5f8ff;color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-connect-item.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-item.dark.selected{background:#001033;color:#588af5}.-cbwsdk-css-reset .-cbwsdk-connect-item.selected{border-radius:100px;font-weight:600}.-cbwsdk-css-reset .-cbwsdk-connect-item-copy-wrapper{margin:0 4px 0 8px}.-cbwsdk-css-reset .-cbwsdk-connect-item-title{margin:0 0 0;font-size:16px;line-height:24px;font-weight:500}.-cbwsdk-css-reset .-cbwsdk-connect-item-description{font-weight:400;font-size:14px;line-height:20px;margin:0}\";\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.TryExtensionContent = void 0;\n var i = r(n(69)),\n o = n(5),\n s = n(60),\n a = n(210),\n u = n(211),\n c = n(212),\n l = r(n(213));\n\n e.TryExtensionContent = function (_ref53) {\n var t = _ref53.theme;\n\n var _ref54 = (0, s.useState)(!1),\n _ref55 = _slicedToArray(_ref54, 2),\n e = _ref55[0],\n n = _ref55[1],\n r = (0, s.useCallback)(function () {\n window.open(\"https://api.wallet.coinbase.com/rpc/v2/desktop/chrome\", \"_blank\");\n }, []),\n h = (0, s.useCallback)(function () {\n e ? window.location.reload() : (r(), n(!0));\n }, [r, e]);\n\n return (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-try-extension\", t)\n }, (0, o.h)(\"style\", null, l.default), (0, o.h)(\"div\", {\n class: \"-cbwsdk-try-extension-column-half\"\n }, (0, o.h)(\"h3\", {\n class: (0, i.default)(\"-cbwsdk-try-extension-heading\", t)\n }, \"Or try the Coinbase Wallet browser extension\"), (0, o.h)(\"div\", {\n class: \"-cbwsdk-try-extension-cta-wrapper\"\n }, (0, o.h)(\"button\", {\n class: (0, i.default)(\"-cbwsdk-try-extension-cta\", t),\n onClick: h\n }, e ? \"Refresh\" : \"Install\"), (0, o.h)(\"div\", null, !e && (0, o.h)(a.ArrowLeftIcon, {\n class: \"-cbwsdk-try-extension-cta-icon\",\n fill: \"light\" === t ? \"#0052FF\" : \"#588AF5\"\n })))), (0, o.h)(\"div\", {\n class: \"-cbwsdk-try-extension-column-half\"\n }, (0, o.h)(\"ul\", {\n class: \"-cbwsdk-try-extension-list\"\n }, (0, o.h)(\"li\", {\n class: \"-cbwsdk-try-extension-list-item\"\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-try-extension-list-item-icon-wrapper\"\n }, (0, o.h)(\"span\", {\n class: (0, i.default)(\"-cbwsdk-try-extension-list-item-icon\", t)\n }, (0, o.h)(u.LaptopIcon, {\n fill: \"light\" === t ? \"#0A0B0D\" : \"#FFFFFF\"\n }))), (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-try-extension-list-item-copy\", t)\n }, \"Connect with dapps with just one click on your desktop browser\")), (0, o.h)(\"li\", {\n class: \"-cbwsdk-try-extension-list-item\"\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-try-extension-list-item-icon-wrapper\"\n }, (0, o.h)(\"span\", {\n class: (0, i.default)(\"-cbwsdk-try-extension-list-item-icon\", t)\n }, (0, o.h)(c.SafeIcon, {\n fill: \"light\" === t ? \"#0A0B0D\" : \"#FFFFFF\"\n }))), (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-try-extension-list-item-copy\", t)\n }, \"Add an additional layer of security by using a supported Ledger hardware wallet\")))));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ArrowLeftIcon = void 0;\n var r = n(5);\n\n e.ArrowLeftIcon = function (t) {\n return (0, r.h)(\"svg\", Object.assign({\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, t), (0, r.h)(\"path\", {\n d: \"M8.60675 0.155884L7.37816 1.28209L12.7723 7.16662H0V8.83328H12.6548L6.82149 14.6666L8 15.8451L15.8201 8.02501L8.60675 0.155884Z\"\n }));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.LaptopIcon = void 0;\n var r = n(5);\n\n e.LaptopIcon = function (t) {\n return (0, r.h)(\"svg\", Object.assign({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, t), (0, r.h)(\"path\", {\n d: \"M1.8001 2.2002H12.2001V9.40019H1.8001V2.2002ZM3.4001 3.8002V7.80019H10.6001V3.8002H3.4001Z\"\n }), (0, r.h)(\"path\", {\n d: \"M13.4001 10.2002H0.600098C0.600098 11.0838 1.31644 11.8002 2.2001 11.8002H11.8001C12.6838 11.8002 13.4001 11.0838 13.4001 10.2002Z\"\n }));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SafeIcon = void 0;\n var r = n(5);\n\n e.SafeIcon = function (t) {\n return (0, r.h)(\"svg\", Object.assign({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, t), (0, r.h)(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M0.600098 0.600098V11.8001H13.4001V0.600098H0.600098ZM7.0001 9.2001C5.3441 9.2001 4.0001 7.8561 4.0001 6.2001C4.0001 4.5441 5.3441 3.2001 7.0001 3.2001C8.6561 3.2001 10.0001 4.5441 10.0001 6.2001C10.0001 7.8561 8.6561 9.2001 7.0001 9.2001ZM0.600098 12.6001H3.8001V13.4001H0.600098V12.6001ZM10.2001 12.6001H13.4001V13.4001H10.2001V12.6001ZM8.8001 6.2001C8.8001 7.19421 7.99421 8.0001 7.0001 8.0001C6.00598 8.0001 5.2001 7.19421 5.2001 6.2001C5.2001 5.20598 6.00598 4.4001 7.0001 4.4001C7.99421 4.4001 8.8001 5.20598 8.8001 6.2001Z\"\n }));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \".-cbwsdk-css-reset .-cbwsdk-try-extension{display:flex;margin-top:12px;height:202px;width:700px;border-radius:12px;padding:30px}.-cbwsdk-css-reset .-cbwsdk-try-extension.light{background:#fff}.-cbwsdk-css-reset .-cbwsdk-try-extension.dark{background:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-try-extension-column-half{flex:50%}.-cbwsdk-css-reset .-cbwsdk-try-extension-heading{font-style:normal;font-weight:500;font-size:25px;line-height:32px;margin:0;max-width:204px}.-cbwsdk-css-reset .-cbwsdk-try-extension-heading.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-try-extension-heading.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta{appearance:none;border:none;background:none;color:#0052ff;cursor:pointer;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta.light{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta.dark{color:#588af5}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta-wrapper{display:flex;align-items:center;margin-top:12px}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta-icon{display:block;margin-left:4px;height:14px}.-cbwsdk-css-reset .-cbwsdk-try-extension-list{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0;padding:0;list-style:none;height:100%}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item{display:flex;align-items:center;flex-flow:nowrap;margin-top:24px}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item:first-of-type{margin-top:0}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon-wrapper{display:block}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon{display:flex;height:32px;width:32px;border-radius:50%}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon svg{margin:auto;display:block}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon.light{background:#eef0f3}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon.dark{background:#1e2025}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-copy{display:block;font-weight:400;font-size:14px;line-height:20px;padding-left:12px}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-copy.light{color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-copy.dark{color:#8a919e}\";\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \".-cbwsdk-css-reset .-cbwsdk-connect-dialog{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop.light{background-color:rgba(0,0,0,.5)}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop.dark{background-color:rgba(50,53,61,.4)}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-box{display:flex;position:relative;flex-direction:column;transform:scale(1);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-box-hidden{opacity:0;transform:scale(0.85)}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-container{display:block}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-container-hidden{display:none}\";\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SnackbarInstance = e.SnackbarContainer = e.Snackbar = void 0;\n var i = r(n(69)),\n o = n(5),\n s = n(60),\n a = r(n(216));\n\n function u(t) {\n switch (t) {\n case \"coinbase-app\":\n return \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjY3NCAxOC44NThjLTIuMDQ1IDAtMy42NDgtMS43MjItMy42NDgtMy44NDVzMS42NTktMy44NDUgMy42NDgtMy44NDVjMS44MjQgMCAzLjMxNyAxLjM3NyAzLjU5MyAzLjIxNGgzLjcwM2MtLjMzMS0zLjk2LTMuNDgyLTcuMDU5LTcuMjk2LTcuMDU5LTQuMDM0IDAtNy4zNSAzLjQ0My03LjM1IDcuNjkgMCA0LjI0NiAzLjI2IDcuNjkgNy4zNSA3LjY5IDMuODcgMCA2Ljk2NS0zLjEgNy4yOTYtNy4wNTloLTMuNzAzYy0uMjc2IDEuODM2LTEuNzY5IDMuMjE0LTMuNTkzIDMuMjE0WiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0wIDEwLjY3OGMwLTMuNzExIDAtNS41OTYuNzQyLTcuMDIzQTYuNTMyIDYuNTMyIDAgMCAxIDMuNjU1Ljc0MkM1LjA4MiAwIDYuOTY3IDAgMTAuNjc4IDBoNy45MzhjMy43MTEgMCA1LjU5NiAwIDcuMDIzLjc0MmE2LjUzMSA2LjUzMSAwIDAgMSAyLjkxMyAyLjkxM2MuNzQyIDEuNDI3Ljc0MiAzLjMxMi43NDIgNy4wMjN2Ny45MzhjMCAzLjcxMSAwIDUuNTk2LS43NDIgNy4wMjNhNi41MzEgNi41MzEgMCAwIDEtMi45MTMgMi45MTNjLTEuNDI3Ljc0Mi0zLjMxMi43NDItNy4wMjMuNzQyaC03LjkzOGMtMy43MTEgMC01LjU5NiAwLTcuMDIzLS43NDJhNi41MzEgNi41MzEgMCAwIDEtMi45MTMtMi45MTNDMCAyNC4yMTIgMCAyMi4zODQgMCAxOC42MTZ2LTcuOTM4WiIgZmlsbD0iIzAwNTJGRiIvPjxwYXRoIGQ9Ik0xNC42ODQgMTkuNzczYy0yLjcyNyAwLTQuODY0LTIuMjk1LTQuODY0LTUuMTI2IDAtMi44MzEgMi4yMS01LjEyNyA0Ljg2NC01LjEyNyAyLjQzMiAwIDQuNDIyIDEuODM3IDQuNzkgNC4yODVoNC45MzhjLS40NDItNS4yOC00LjY0My05LjQxMS05LjcyOC05LjQxMS01LjM4IDAtOS44MDIgNC41OS05LjgwMiAxMC4yNTMgMCA1LjY2MiA0LjM0OCAxMC4yNTMgOS44MDIgMTAuMjUzIDUuMTU5IDAgOS4yODYtNC4xMzIgOS43MjgtOS40MTFoLTQuOTM4Yy0uMzY4IDIuNDQ4LTIuMzU4IDQuMjg0LTQuNzkgNC4yODRaIiBmaWxsPSIjZmZmIi8+PC9zdmc+\";\n\n case \"coinbase-wallet-app\":\n default:\n return \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+\";\n }\n }\n\n e.Snackbar = /*#__PURE__*/function () {\n function _class16(t) {\n _classCallCheck(this, _class16);\n\n this.items = new Map(), this.nextItemKey = 0, this.root = null, this.darkMode = t.darkMode;\n }\n\n _createClass(_class16, [{\n key: \"attach\",\n value: function attach(t) {\n this.root = document.createElement(\"div\"), this.root.className = \"-cbwsdk-snackbar-root\", t.appendChild(this.root), this.render();\n }\n }, {\n key: \"presentItem\",\n value: function presentItem(t) {\n var _this35 = this;\n\n var e = this.nextItemKey++;\n return this.items.set(e, t), this.render(), function () {\n _this35.items.delete(e), _this35.render();\n };\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.items.clear(), this.render();\n }\n }, {\n key: \"render\",\n value: function render() {\n this.root && (0, o.render)((0, o.h)(\"div\", null, (0, o.h)(e.SnackbarContainer, {\n darkMode: this.darkMode\n }, Array.from(this.items.entries()).map(function (_ref56) {\n var _ref57 = _slicedToArray(_ref56, 2),\n t = _ref57[0],\n n = _ref57[1];\n\n return (0, o.h)(e.SnackbarInstance, Object.assign({}, n, {\n key: t\n }));\n }))), this.root);\n }\n }]);\n\n return _class16;\n }();\n\n e.SnackbarContainer = function (t) {\n return (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-snackbar-container\")\n }, (0, o.h)(\"style\", null, a.default), (0, o.h)(\"div\", {\n class: \"-cbwsdk-snackbar\"\n }, t.children));\n };\n\n e.SnackbarInstance = function (_ref58) {\n var t = _ref58.autoExpand,\n e = _ref58.message,\n n = _ref58.menuItems,\n r = _ref58.appSrc;\n\n var _ref59 = (0, s.useState)(!0),\n _ref60 = _slicedToArray(_ref59, 2),\n a = _ref60[0],\n c = _ref60[1],\n _ref61 = (0, s.useState)(null != t && t),\n _ref62 = _slicedToArray(_ref61, 2),\n l = _ref62[0],\n h = _ref62[1];\n\n (0, s.useEffect)(function () {\n var t = [window.setTimeout(function () {\n c(!1);\n }, 1), window.setTimeout(function () {\n h(!0);\n }, 1e4)];\n return function () {\n t.forEach(window.clearTimeout);\n };\n });\n return (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-snackbar-instance\", a && \"-cbwsdk-snackbar-instance-hidden\", l && \"-cbwsdk-snackbar-instance-expanded\")\n }, (0, o.h)(\"div\", {\n class: \"-cbwsdk-snackbar-instance-header\",\n onClick: function onClick() {\n h(!l);\n }\n }, (0, o.h)(\"img\", {\n src: u(r),\n class: \"-cbwsdk-snackbar-instance-header-cblogo\"\n }), (0, o.h)(\"div\", {\n class: \"-cbwsdk-snackbar-instance-header-message\"\n }, e), (0, o.h)(\"div\", {\n class: \"-gear-container\"\n }, !l && (0, o.h)(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, (0, o.h)(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"12\",\n fill: \"#F5F7F8\"\n })), (0, o.h)(\"img\", {\n src: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=\",\n class: \"-gear-icon\",\n title: \"Expand\"\n }))), n && n.length > 0 && (0, o.h)(\"div\", {\n class: \"-cbwsdk-snackbar-instance-menu\"\n }, n.map(function (t, e) {\n return (0, o.h)(\"div\", {\n class: (0, i.default)(\"-cbwsdk-snackbar-instance-menu-item\", t.isRed && \"-cbwsdk-snackbar-instance-menu-item-is-red\"),\n onClick: t.onClick,\n key: e\n }, (0, o.h)(\"svg\", {\n width: t.svgWidth,\n height: t.svgHeight,\n viewBox: \"0 0 10 11\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, (0, o.h)(\"path\", {\n \"fill-rule\": t.defaultFillRule,\n \"clip-rule\": t.defaultClipRule,\n d: t.path,\n fill: \"#AAAAAA\"\n })), (0, o.h)(\"span\", {\n class: (0, i.default)(\"-cbwsdk-snackbar-instance-menu-item-info\", t.isRed && \"-cbwsdk-snackbar-instance-menu-item-info-is-red\")\n }, t.info));\n })));\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = \".-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}\";\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.injectCssReset = void 0;\n var i = r(n(218));\n\n e.injectCssReset = function () {\n var t = document.createElement(\"style\");\n t.type = \"text/css\", t.appendChild(document.createTextNode(i.default)), document.documentElement.appendChild(t);\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.default = '@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\201C\" \"\\\\201D\" \"\\\\2018\" \"\\\\2019\";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}';\n}, function (t, e, n) {\n \"use strict\";\n\n var r = this && this.__createBinding || (Object.create ? function (t, e, n, r) {\n void 0 === r && (r = n), Object.defineProperty(t, r, {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n } : function (t, e, n, r) {\n void 0 === r && (r = n), t[r] = e[n];\n }),\n i = this && this.__setModuleDefault || (Object.create ? function (t, e) {\n Object.defineProperty(t, \"default\", {\n enumerable: !0,\n value: e\n });\n } : function (t, e) {\n t.default = e;\n }),\n o = this && this.__decorate || function (t, e, n, r) {\n var i,\n o = arguments.length,\n s = o < 3 ? e : null === r ? r = Object.getOwnPropertyDescriptor(e, n) : r;\n if (\"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(t, e, n, r);else for (var a = t.length - 1; a >= 0; a--) {\n (i = t[a]) && (s = (o < 3 ? i(s) : o > 3 ? i(e, n, s) : i(e, n)) || s);\n }\n return o > 3 && s && Object.defineProperty(e, n, s), s;\n },\n s = this && this.__importStar || function (t) {\n if (t && t.__esModule) return t;\n var e = {};\n if (null != t) for (var n in t) {\n \"default\" !== n && Object.prototype.hasOwnProperty.call(t, n) && r(e, t, n);\n }\n return i(e, t), e;\n },\n a = this && this.__importDefault || function (t) {\n return t && t.__esModule ? t : {\n default: t\n };\n };\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WalletSDKRelay = void 0;\n\n var u = a(n(220)),\n c = n(87),\n l = n(70),\n h = n(101),\n d = n(90),\n f = n(221),\n p = n(225),\n b = n(67),\n y = n(38),\n g = s(n(226)),\n m = n(91),\n v = n(108),\n w = n(124),\n _ = n(227),\n S = n(228),\n E = n(229),\n M = n(230);\n\n var x = /*#__PURE__*/function (_v$WalletSDKRelayAbst) {\n _inherits(x, _v$WalletSDKRelayAbst);\n\n var _super17 = _createSuper(x);\n\n function x(t) {\n var _this36;\n\n _classCallCheck(this, x);\n\n var e;\n _this36 = _super17.call(this), _this36.accountsCallback = null, _this36.chainCallback = null, _this36.dappDefaultChainSubject = new l.BehaviorSubject(1), _this36.dappDefaultChain = 1, _this36.appName = \"\", _this36.appLogoUrl = null, _this36.subscriptions = new l.Subscription(), _this36.linkAPIUrl = t.linkAPIUrl, _this36.storage = t.storage, _this36.options = t;\n\n var _this36$subscribe = _this36.subscribe(),\n n = _this36$subscribe.session,\n r = _this36$subscribe.ui,\n i = _this36$subscribe.connection;\n\n if (_this36._session = n, _this36.connection = i, _this36.relayEventManager = t.relayEventManager, t.diagnosticLogger && t.eventListener) throw new Error(\"Can't have both eventListener and diagnosticLogger options, use only diagnosticLogger\");\n t.eventListener ? _this36.diagnostic = {\n log: t.eventListener.onEvent\n } : _this36.diagnostic = t.diagnosticLogger, _this36._reloadOnDisconnect = null === (e = t.reloadOnDisconnect) || void 0 === e || e, _this36.ui = r;\n return _this36;\n }\n\n _createClass(x, [{\n key: \"subscribe\",\n value: function subscribe() {\n var _this37 = this;\n\n this.subscriptions.add(this.dappDefaultChainSubject.subscribe(function (t) {\n _this37.dappDefaultChain !== t && (_this37.dappDefaultChain = t);\n }));\n var t = m.Session.load(this.storage) || new m.Session(this.storage).save(),\n e = new f.WalletSDKConnection(t.id, t.key, this.linkAPIUrl, this.diagnostic);\n this.subscriptions.add(e.sessionConfig$.subscribe({\n next: function next(t) {\n _this37.onSessionConfigChanged(t);\n },\n error: function error() {\n var t;\n null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"error while invoking session config callback\"\n });\n }\n })), this.subscriptions.add(e.incomingEvent$.pipe((0, h.filter)(function (t) {\n return \"Web3Response\" === t.event;\n })).subscribe({\n next: this.handleIncomingEvent\n })), this.subscriptions.add(e.linked$.pipe((0, h.skip)(1), (0, h.tap)(function (t) {\n var e;\n _this37.isLinked = t;\n\n var n = _this37.storage.getItem(v.LOCAL_STORAGE_ADDRESSES_KEY);\n\n if (t && (_this37.session.linked = t), _this37.isUnlinkedErrorState = !1, n) {\n var _r19 = n.split(\" \"),\n _i11 = \"true\" === _this37.storage.getItem(\"IsStandaloneSigning\");\n\n if (\"\" !== _r19[0] && !t && _this37.session.linked && !_i11) {\n _this37.isUnlinkedErrorState = !0;\n\n var _t19 = _this37.getSessionIdHash();\n\n null === (e = _this37.diagnostic) || void 0 === e || e.log(d.EVENTS.UNLINKED_ERROR_STATE, {\n sessionIdHash: _t19\n });\n }\n }\n })).subscribe()), this.subscriptions.add(e.sessionConfig$.pipe((0, h.filter)(function (t) {\n return !!t.metadata && \"1\" === t.metadata.__destroyed;\n })).subscribe(function () {\n var t;\n var n = e.isDestroyed;\n return null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.METADATA_DESTROYED, {\n alreadyDestroyed: n,\n sessionIdHash: _this37.getSessionIdHash()\n }), _this37.resetAndReload();\n })), this.subscriptions.add(e.sessionConfig$.pipe((0, h.filter)(function (t) {\n return t.metadata && void 0 !== t.metadata.WalletUsername;\n })).pipe((0, h.mergeMap)(function (e) {\n return g.decrypt(e.metadata.WalletUsername, t.secret);\n })).subscribe({\n next: function next(t) {\n _this37.storage.setItem(v.WALLET_USER_NAME_KEY, t);\n },\n error: function error() {\n var t;\n null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"username\"\n });\n }\n })), this.subscriptions.add(e.sessionConfig$.pipe((0, h.filter)(function (t) {\n return t.metadata && void 0 !== t.metadata.AppVersion;\n })).pipe((0, h.mergeMap)(function (e) {\n return g.decrypt(e.metadata.AppVersion, t.secret);\n })).subscribe({\n next: function next(t) {\n _this37.storage.setItem(v.APP_VERSION_KEY, t);\n },\n error: function error() {\n var t;\n null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"appversion\"\n });\n }\n })), this.subscriptions.add(e.sessionConfig$.pipe((0, h.filter)(function (t) {\n return t.metadata && void 0 !== t.metadata.ChainId && void 0 !== t.metadata.JsonRpcUrl;\n })).pipe((0, h.mergeMap)(function (e) {\n return (0, l.zip)(g.decrypt(e.metadata.ChainId, t.secret), g.decrypt(e.metadata.JsonRpcUrl, t.secret));\n })).pipe((0, h.distinctUntilChanged)()).subscribe({\n next: function next(_ref63) {\n var _ref64 = _slicedToArray(_ref63, 2),\n t = _ref64[0],\n e = _ref64[1];\n\n _this37.chainCallback && _this37.chainCallback(t, e);\n },\n error: function error() {\n var t;\n null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"chainId|jsonRpcUrl\"\n });\n }\n })), this.subscriptions.add(e.sessionConfig$.pipe((0, h.filter)(function (t) {\n return t.metadata && void 0 !== t.metadata.EthereumAddress;\n })).pipe((0, h.mergeMap)(function (e) {\n return g.decrypt(e.metadata.EthereumAddress, t.secret);\n })).subscribe({\n next: function next(t) {\n _this37.accountsCallback && _this37.accountsCallback([t]), x.accountRequestCallbackIds.size > 0 && (Array.from(x.accountRequestCallbackIds.values()).forEach(function (e) {\n var n = (0, M.Web3ResponseMessage)({\n id: e,\n response: (0, E.RequestEthereumAccountsResponse)([t])\n });\n\n _this37.invokeCallback(Object.assign(Object.assign({}, n), {\n id: e\n }));\n }), x.accountRequestCallbackIds.clear());\n },\n error: function error() {\n var t;\n null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"selectedAddress\"\n });\n }\n })), this.subscriptions.add(e.sessionConfig$.pipe((0, h.filter)(function (t) {\n return t.metadata && void 0 !== t.metadata.AppSrc;\n })).pipe((0, h.mergeMap)(function (e) {\n return g.decrypt(e.metadata.AppSrc, t.secret);\n })).subscribe({\n next: function next(t) {\n _this37.ui.setAppSrc(t);\n },\n error: function error() {\n var t;\n null === (t = _this37.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"appSrc\"\n });\n }\n }));\n var n = this.options.uiConstructor({\n linkAPIUrl: this.options.linkAPIUrl,\n version: this.options.version,\n darkMode: this.options.darkMode,\n session: t,\n connected$: e.connected$,\n chainId$: this.dappDefaultChainSubject\n });\n return e.connect(), {\n session: t,\n ui: n,\n connection: e\n };\n }\n }, {\n key: \"attachUI\",\n value: function attachUI() {\n this.ui.attach();\n }\n }, {\n key: \"resetAndReload\",\n value: function resetAndReload() {\n var _this38 = this;\n\n this.connection.setSessionMetadata(\"__destroyed\", \"1\").pipe((0, h.timeout)(1e3), (0, h.catchError)(function (t) {\n return (0, l.of)(null);\n })).subscribe(function (t) {\n var e, n, r;\n\n var i = _this38.ui.isStandalone();\n\n try {\n _this38.subscriptions.unsubscribe();\n } catch (t) {\n null === (e = _this38.diagnostic) || void 0 === e || e.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error unsubscribing\"\n });\n }\n\n null === (n = _this38.diagnostic) || void 0 === n || n.log(d.EVENTS.SESSION_STATE_CHANGE, {\n method: \"relay::resetAndReload\",\n sessionMetadataChange: \"__destroyed, 1\",\n sessionIdHash: _this38.getSessionIdHash()\n }), _this38.connection.destroy();\n var o = m.Session.load(_this38.storage);\n if ((null == o ? void 0 : o.id) === _this38._session.id ? _this38.storage.clear() : o && (null === (r = _this38.diagnostic) || void 0 === r || r.log(d.EVENTS.SKIPPED_CLEARING_SESSION, {\n sessionIdHash: _this38.getSessionIdHash(),\n storedSessionIdHash: m.Session.hash(o.id)\n })), _this38._reloadOnDisconnect) return void _this38.ui.reloadUI();\n _this38.accountsCallback && _this38.accountsCallback([], !0);\n\n var _this38$subscribe = _this38.subscribe(),\n s = _this38$subscribe.session,\n a = _this38$subscribe.ui,\n u = _this38$subscribe.connection;\n\n _this38._session = s, _this38.connection = u, _this38.ui = a, i && _this38.ui.setStandalone && _this38.ui.setStandalone(!0), _this38.attachUI();\n }, function (t) {\n var e;\n null === (e = _this38.diagnostic) || void 0 === e || e.log(d.EVENTS.FAILURE, {\n method: \"relay::resetAndReload\",\n message: \"failed to reset and reload with \" + t,\n sessionIdHash: _this38.getSessionIdHash()\n });\n });\n }\n }, {\n key: \"setAppInfo\",\n value: function setAppInfo(t, e) {\n this.appName = t, this.appLogoUrl = e;\n }\n }, {\n key: \"getStorageItem\",\n value: function getStorageItem(t) {\n return this.storage.getItem(t);\n }\n }, {\n key: \"session\",\n get: function get() {\n return this._session;\n }\n }, {\n key: \"setStorageItem\",\n value: function setStorageItem(t, e) {\n this.storage.setItem(t, e);\n }\n }, {\n key: \"signEthereumMessage\",\n value: function signEthereumMessage(t, e, n, r) {\n return this.sendRequest({\n method: w.Web3Method.signEthereumMessage,\n params: {\n message: (0, y.hexStringFromBuffer)(t, !0),\n address: e,\n addPrefix: n,\n typedDataJson: r || null\n }\n });\n }\n }, {\n key: \"ethereumAddressFromSignedMessage\",\n value: function ethereumAddressFromSignedMessage(t, e, n) {\n return this.sendRequest({\n method: w.Web3Method.ethereumAddressFromSignedMessage,\n params: {\n message: (0, y.hexStringFromBuffer)(t, !0),\n signature: (0, y.hexStringFromBuffer)(e, !0),\n addPrefix: n\n }\n });\n }\n }, {\n key: \"signEthereumTransaction\",\n value: function signEthereumTransaction(t) {\n return this.sendRequest({\n method: w.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: t.fromAddress,\n toAddress: t.toAddress,\n weiValue: (0, y.bigIntStringFromBN)(t.weiValue),\n data: (0, y.hexStringFromBuffer)(t.data, !0),\n nonce: t.nonce,\n gasPriceInWei: t.gasPriceInWei ? (0, y.bigIntStringFromBN)(t.gasPriceInWei) : null,\n maxFeePerGas: t.gasPriceInWei ? (0, y.bigIntStringFromBN)(t.gasPriceInWei) : null,\n maxPriorityFeePerGas: t.gasPriceInWei ? (0, y.bigIntStringFromBN)(t.gasPriceInWei) : null,\n gasLimit: t.gasLimit ? (0, y.bigIntStringFromBN)(t.gasLimit) : null,\n chainId: t.chainId,\n shouldSubmit: !1\n }\n });\n }\n }, {\n key: \"signAndSubmitEthereumTransaction\",\n value: function signAndSubmitEthereumTransaction(t) {\n return this.sendRequest({\n method: w.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: t.fromAddress,\n toAddress: t.toAddress,\n weiValue: (0, y.bigIntStringFromBN)(t.weiValue),\n data: (0, y.hexStringFromBuffer)(t.data, !0),\n nonce: t.nonce,\n gasPriceInWei: t.gasPriceInWei ? (0, y.bigIntStringFromBN)(t.gasPriceInWei) : null,\n maxFeePerGas: t.maxFeePerGas ? (0, y.bigIntStringFromBN)(t.maxFeePerGas) : null,\n maxPriorityFeePerGas: t.maxPriorityFeePerGas ? (0, y.bigIntStringFromBN)(t.maxPriorityFeePerGas) : null,\n gasLimit: t.gasLimit ? (0, y.bigIntStringFromBN)(t.gasLimit) : null,\n chainId: t.chainId,\n shouldSubmit: !0\n }\n });\n }\n }, {\n key: \"submitEthereumTransaction\",\n value: function submitEthereumTransaction(t, e) {\n return this.sendRequest({\n method: w.Web3Method.submitEthereumTransaction,\n params: {\n signedTransaction: (0, y.hexStringFromBuffer)(t, !0),\n chainId: e\n }\n });\n }\n }, {\n key: \"scanQRCode\",\n value: function scanQRCode(t) {\n return this.sendRequest({\n method: w.Web3Method.scanQRCode,\n params: {\n regExp: t\n }\n });\n }\n }, {\n key: \"getQRCodeUrl\",\n value: function getQRCodeUrl() {\n return (0, y.createQrUrl)(this._session.id, this._session.secret, this.linkAPIUrl, !1, this.options.version, this.dappDefaultChain);\n }\n }, {\n key: \"genericRequest\",\n value: function genericRequest(t, e) {\n return this.sendRequest({\n method: w.Web3Method.generic,\n params: {\n action: e,\n data: t\n }\n });\n }\n }, {\n key: \"sendGenericMessage\",\n value: function sendGenericMessage(t) {\n return this.sendRequest(t);\n }\n }, {\n key: \"sendRequest\",\n value: function sendRequest(t) {\n var _this39 = this;\n\n var e = null;\n\n var n = (0, y.randomBytesHex)(8),\n r = function r(_r20) {\n _this39.publishWeb3RequestCanceledEvent(n), _this39.handleErrorResponse(n, t.method, _r20), null == e || e();\n };\n\n return {\n promise: new Promise(function (i, o) {\n _this39.ui.isStandalone() || (e = _this39.ui.showConnecting({\n isUnlinkedErrorState: _this39.isUnlinkedErrorState,\n onCancel: r,\n onResetConnection: _this39.resetAndReload\n })), _this39.relayEventManager.callbacks.set(n, function (t) {\n if (null == e || e(), t.errorMessage) return o(new Error(t.errorMessage));\n i(t);\n }), _this39.ui.isStandalone() ? _this39.sendRequestStandalone(n, t) : _this39.publishWeb3RequestEvent(n, t);\n }),\n cancel: r\n };\n }\n }, {\n key: \"setConnectDisabled\",\n value: function setConnectDisabled(t) {\n this.ui.setConnectDisabled(t);\n }\n }, {\n key: \"setAccountsCallback\",\n value: function setAccountsCallback(t) {\n this.accountsCallback = t;\n }\n }, {\n key: \"setChainCallback\",\n value: function setChainCallback(t) {\n this.chainCallback = t;\n }\n }, {\n key: \"setDappDefaultChainCallback\",\n value: function setDappDefaultChainCallback(t) {\n this.dappDefaultChainSubject.next(t);\n }\n }, {\n key: \"publishWeb3RequestEvent\",\n value: function publishWeb3RequestEvent(t, e) {\n var _this40 = this;\n\n var n;\n var r = (0, S.Web3RequestMessage)({\n id: t,\n request: e\n }),\n i = m.Session.load(this.storage);\n null === (n = this.diagnostic) || void 0 === n || n.log(d.EVENTS.WEB3_REQUEST, {\n eventId: r.id,\n method: \"relay::\" + r.request.method,\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: i ? m.Session.hash(i.id) : \"\",\n isSessionMismatched: ((null == i ? void 0 : i.id) !== this._session.id).toString()\n }), this.subscriptions.add(this.publishEvent(\"Web3Request\", r, !0).subscribe({\n next: function next(t) {\n var e;\n null === (e = _this40.diagnostic) || void 0 === e || e.log(d.EVENTS.WEB3_REQUEST_PUBLISHED, {\n eventId: r.id,\n method: \"relay::\" + r.request.method,\n sessionIdHash: _this40.getSessionIdHash(),\n storedSessionIdHash: i ? m.Session.hash(i.id) : \"\",\n isSessionMismatched: ((null == i ? void 0 : i.id) !== _this40._session.id).toString()\n });\n },\n error: function error(t) {\n _this40.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: r.id,\n response: {\n method: r.request.method,\n errorMessage: t.message\n }\n }));\n }\n }));\n }\n }, {\n key: \"publishWeb3RequestCanceledEvent\",\n value: function publishWeb3RequestCanceledEvent(t) {\n var e = (0, _.Web3RequestCanceledMessage)(t);\n this.subscriptions.add(this.publishEvent(\"Web3RequestCanceled\", e, !1).subscribe());\n }\n }, {\n key: \"publishEvent\",\n value: function publishEvent(t, e, n) {\n var _this41 = this;\n\n var r = this.session.secret;\n return new l.Observable(function (t) {\n g.encrypt(JSON.stringify(Object.assign(Object.assign({}, e), {\n origin: location.origin\n })), r).then(function (e) {\n t.next(e), t.complete();\n });\n }).pipe((0, h.mergeMap)(function (e) {\n return _this41.connection.publishEvent(t, e, n);\n }));\n }\n }, {\n key: \"handleIncomingEvent\",\n value: function handleIncomingEvent(t) {\n var _this42 = this;\n\n try {\n this.subscriptions.add((0, l.from)(g.decrypt(t.data, this.session.secret)).pipe((0, h.map)(function (t) {\n return JSON.parse(t);\n })).subscribe({\n next: function next(t) {\n var e = (0, M.isWeb3ResponseMessage)(t) ? t : null;\n e && _this42.handleWeb3ResponseMessage(e);\n },\n error: function error() {\n var t;\n null === (t = _this42.diagnostic) || void 0 === t || t.log(d.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"incomingEvent\"\n });\n }\n }));\n } catch (t) {\n return;\n }\n }\n }, {\n key: \"handleWeb3ResponseMessage\",\n value: function handleWeb3ResponseMessage(t) {\n var _this43 = this;\n\n var e;\n var n = t.response;\n if (null === (e = this.diagnostic) || void 0 === e || e.log(d.EVENTS.WEB3_RESPONSE, {\n eventId: t.id,\n method: \"relay::\" + n.method,\n sessionIdHash: this.getSessionIdHash()\n }), (0, E.isRequestEthereumAccountsResponse)(n)) return x.accountRequestCallbackIds.forEach(function (e) {\n return _this43.invokeCallback(Object.assign(Object.assign({}, t), {\n id: e\n }));\n }), void x.accountRequestCallbackIds.clear();\n this.invokeCallback(t);\n }\n }, {\n key: \"handleErrorResponse\",\n value: function handleErrorResponse(t, e, n, r) {\n this.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: t,\n response: (0, E.ErrorResponse)(e, (null != n ? n : p.WalletUIError.UserRejectedRequest).message, r)\n }));\n }\n }, {\n key: \"invokeCallback\",\n value: function invokeCallback(t) {\n var e = this.relayEventManager.callbacks.get(t.id);\n e && (e(t.response), this.relayEventManager.callbacks.delete(t.id));\n }\n }, {\n key: \"requestEthereumAccounts\",\n value: function requestEthereumAccounts() {\n var _this44 = this;\n\n var t = {\n method: w.Web3Method.requestEthereumAccounts,\n params: {\n appName: this.appName,\n appLogoUrl: this.appLogoUrl || null\n }\n },\n e = (0, y.randomBytesHex)(8),\n n = function n(_n41) {\n _this44.publishWeb3RequestCanceledEvent(e), _this44.handleErrorResponse(e, t.method, _n41);\n };\n\n return {\n promise: new Promise(function (r, i) {\n var o;\n\n _this44.relayEventManager.callbacks.set(e, function (t) {\n if (_this44.ui.hideRequestEthereumAccounts(), t.errorMessage) return i(new Error(t.errorMessage));\n r(t);\n });\n\n var s = (null === (o = null === window || void 0 === window ? void 0 : window.navigator) || void 0 === o ? void 0 : o.userAgent) || null;\n\n if (s && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(s)) {\n var _t20;\n\n try {\n _t20 = (0, y.isInIFrame)() && window.top ? window.top.location : window.location;\n } catch (e) {\n _t20 = window.location;\n }\n\n _t20.href = \"https://www.coinbase.com/connect-dapp?uri=\" + encodeURIComponent(_t20.href);\n } else {\n if (_this44.ui.inlineAccountsResponse()) {\n var _t21 = function _t21(t) {\n _this44.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: e,\n response: (0, E.RequestEthereumAccountsResponse)(t)\n }));\n };\n\n _this44.ui.requestEthereumAccounts({\n onCancel: n,\n onAccounts: _t21\n });\n } else {\n var _t22 = c.ethErrors.provider.userRejectedRequest(\"User denied account authorization\");\n\n _this44.ui.requestEthereumAccounts({\n onCancel: function onCancel() {\n return n(_t22);\n }\n });\n }\n\n x.accountRequestCallbackIds.add(e), _this44.ui.inlineAccountsResponse() || _this44.ui.isStandalone() || _this44.publishWeb3RequestEvent(e, t);\n }\n }),\n cancel: n\n };\n }\n }, {\n key: \"selectProvider\",\n value: function selectProvider(t) {\n var _this45 = this;\n\n var e = {\n method: w.Web3Method.selectProvider,\n params: {\n providerOptions: t\n }\n },\n n = (0, y.randomBytesHex)(8);\n return {\n cancel: function cancel(t) {\n _this45.publishWeb3RequestCanceledEvent(n), _this45.handleErrorResponse(n, e.method, t);\n },\n promise: new Promise(function (e, r) {\n _this45.relayEventManager.callbacks.set(n, function (t) {\n if (t.errorMessage) return r(new Error(t.errorMessage));\n e(t);\n });\n\n _this45.ui.selectProvider && _this45.ui.selectProvider({\n onApprove: function onApprove(t) {\n _this45.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: n,\n response: (0, E.SelectProviderResponse)(t)\n }));\n },\n onCancel: function onCancel(t) {\n _this45.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: n,\n response: (0, E.SelectProviderResponse)(b.ProviderType.Unselected)\n }));\n },\n providerOptions: t\n });\n })\n };\n }\n }, {\n key: \"watchAsset\",\n value: function watchAsset(t, e, n, r, i, o) {\n var _this46 = this;\n\n var s = {\n method: w.Web3Method.watchAsset,\n params: {\n type: t,\n options: {\n address: e,\n symbol: n,\n decimals: r,\n image: i\n },\n chainId: o\n }\n };\n var a = null;\n\n var u = (0, y.randomBytesHex)(8),\n c = function c(t) {\n _this46.publishWeb3RequestCanceledEvent(u), _this46.handleErrorResponse(u, s.method, t), null == a || a();\n };\n\n this.ui.inlineWatchAsset() || (a = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: c,\n onResetConnection: this.resetAndReload\n }));\n return {\n cancel: c,\n promise: new Promise(function (c, l) {\n _this46.relayEventManager.callbacks.set(u, function (t) {\n if (null == a || a(), t.errorMessage) return l(new Error(t.errorMessage));\n c(t);\n });\n\n var h = function h(t) {\n _this46.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: u,\n response: (0, E.WatchAssetReponse)(!1)\n }));\n },\n d = function d() {\n _this46.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: u,\n response: (0, E.WatchAssetReponse)(!0)\n }));\n };\n\n _this46.ui.inlineWatchAsset() && _this46.ui.watchAsset({\n onApprove: d,\n onCancel: h,\n type: t,\n address: e,\n symbol: n,\n decimals: r,\n image: i,\n chainId: o\n }), _this46.ui.inlineWatchAsset() || _this46.ui.isStandalone() || _this46.publishWeb3RequestEvent(u, s);\n })\n };\n }\n }, {\n key: \"addEthereumChain\",\n value: function addEthereumChain(t, e, n, r, i, o) {\n var _this47 = this;\n\n var s = {\n method: w.Web3Method.addEthereumChain,\n params: {\n chainId: t,\n rpcUrls: e,\n blockExplorerUrls: r,\n chainName: i,\n iconUrls: n,\n nativeCurrency: o\n }\n };\n var a = null;\n\n var u = (0, y.randomBytesHex)(8),\n c = function c(t) {\n _this47.publishWeb3RequestCanceledEvent(u), _this47.handleErrorResponse(u, s.method, t), null == a || a();\n };\n\n this.ui.inlineAddEthereumChain(t) || (a = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: c,\n onResetConnection: this.resetAndReload\n }));\n return {\n promise: new Promise(function (e, n) {\n _this47.relayEventManager.callbacks.set(u, function (t) {\n if (null == a || a(), t.errorMessage) return n(new Error(t.errorMessage));\n e(t);\n });\n\n var r = function r(t) {\n _this47.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: u,\n response: (0, E.AddEthereumChainResponse)({\n isApproved: !1,\n rpcUrl: \"\"\n })\n }));\n },\n i = function i(t) {\n _this47.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: u,\n response: (0, E.AddEthereumChainResponse)({\n isApproved: !0,\n rpcUrl: t\n })\n }));\n };\n\n _this47.ui.inlineAddEthereumChain(t) && _this47.ui.addEthereumChain({\n onCancel: r,\n onApprove: i,\n chainId: s.params.chainId,\n rpcUrls: s.params.rpcUrls,\n blockExplorerUrls: s.params.blockExplorerUrls,\n chainName: s.params.chainName,\n iconUrls: s.params.iconUrls,\n nativeCurrency: s.params.nativeCurrency\n }), _this47.ui.inlineAddEthereumChain(t) || _this47.ui.isStandalone() || _this47.publishWeb3RequestEvent(u, s);\n }),\n cancel: c\n };\n }\n }, {\n key: \"switchEthereumChain\",\n value: function switchEthereumChain(t, e) {\n var _this48 = this;\n\n var n = {\n method: w.Web3Method.switchEthereumChain,\n params: Object.assign({\n chainId: t\n }, {\n address: e\n })\n },\n r = (0, y.randomBytesHex)(8);\n return {\n promise: new Promise(function (t, e) {\n _this48.relayEventManager.callbacks.set(r, function (n) {\n return n.errorMessage && n.errorCode ? e(c.ethErrors.provider.custom({\n code: n.errorCode,\n message: \"Unrecognized chain ID. Try adding the chain using addEthereumChain first.\"\n })) : n.errorMessage ? e(new Error(n.errorMessage)) : void t(n);\n });\n\n _this48.ui.switchEthereumChain({\n onCancel: function onCancel(t) {\n if (\"number\" == typeof t) {\n var _e23 = t;\n\n _this48.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: r,\n response: (0, E.ErrorResponse)(w.Web3Method.switchEthereumChain, p.WalletUIError.SwitchEthereumChainUnsupportedChainId.message, _e23)\n }));\n } else t instanceof p.WalletUIError ? _this48.handleErrorResponse(r, w.Web3Method.switchEthereumChain, t, t.errorCode) : _this48.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: r,\n response: (0, E.SwitchEthereumChainResponse)({\n isApproved: !1,\n rpcUrl: \"\"\n })\n }));\n },\n onApprove: function onApprove(t) {\n _this48.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: r,\n response: (0, E.SwitchEthereumChainResponse)({\n isApproved: !0,\n rpcUrl: t\n })\n }));\n },\n chainId: n.params.chainId,\n address: n.params.address\n }), _this48.ui.inlineSwitchEthereumChain() || _this48.ui.isStandalone() || _this48.publishWeb3RequestEvent(r, n);\n }),\n cancel: function cancel(t) {\n _this48.publishWeb3RequestCanceledEvent(r), _this48.handleErrorResponse(r, n.method, t);\n }\n };\n }\n }, {\n key: \"inlineAddEthereumChain\",\n value: function inlineAddEthereumChain(t) {\n return this.ui.inlineAddEthereumChain(t);\n }\n }, {\n key: \"getSessionIdHash\",\n value: function getSessionIdHash() {\n return m.Session.hash(this._session.id);\n }\n }, {\n key: \"sendRequestStandalone\",\n value: function sendRequestStandalone(t, e) {\n var _this49 = this;\n\n var n = function n(_n42) {\n _this49.handleErrorResponse(t, e.method, _n42);\n },\n r = function r(e) {\n _this49.handleWeb3ResponseMessage((0, M.Web3ResponseMessage)({\n id: t,\n response: e\n }));\n };\n\n switch (e.method) {\n case w.Web3Method.signEthereumMessage:\n this.ui.signEthereumMessage({\n request: e,\n onSuccess: r,\n onCancel: n\n });\n break;\n\n case w.Web3Method.signEthereumTransaction:\n this.ui.signEthereumTransaction({\n request: e,\n onSuccess: r,\n onCancel: n\n });\n break;\n\n case w.Web3Method.submitEthereumTransaction:\n this.ui.submitEthereumTransaction({\n request: e,\n onSuccess: r,\n onCancel: n\n });\n break;\n\n case w.Web3Method.ethereumAddressFromSignedMessage:\n this.ui.ethereumAddressFromSignedMessage({\n request: e,\n onSuccess: r\n });\n break;\n\n default:\n n();\n }\n }\n }, {\n key: \"onSessionConfigChanged\",\n value: function onSessionConfigChanged(t) {}\n }]);\n\n return x;\n }(v.WalletSDKRelayAbstract);\n\n x.accountRequestCallbackIds = new Set(), o([u.default], x.prototype, \"resetAndReload\", null), o([u.default], x.prototype, \"handleIncomingEvent\", null), e.WalletSDKRelay = x;\n}, function (t, e, n) {\n \"use strict\";\n\n var r;\n\n function i(t, e, n) {\n if (!n || _typeof(n.value) !== r.typeOfFunction) throw new TypeError(\"Only methods can be decorated with @bind. <\" + e + \"> is not a method!\");\n return {\n configurable: r.boolTrue,\n get: function get() {\n var t = n.value.bind(this);\n return Object.defineProperty(this, e, {\n value: t,\n configurable: r.boolTrue,\n writable: r.boolTrue\n }), t;\n }\n };\n }\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), function (t) {\n t.typeOfFunction = \"function\", t.boolTrue = !0;\n }(r || (r = {})), e.bind = i, e.default = i;\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WalletSDKConnection = void 0;\n var r = n(70),\n i = n(101),\n o = n(91),\n s = n(67),\n a = n(222),\n u = n(90),\n c = n(223),\n l = n(224);\n\n e.WalletSDKConnection = /*#__PURE__*/function () {\n function _class17(t, e, n, a) {\n var _this50 = this;\n\n var l = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : WebSocket;\n\n _classCallCheck(this, _class17);\n\n this.sessionId = t, this.sessionKey = e, this.diagnostic = a, this.subscriptions = new r.Subscription(), this.destroyed = !1, this.lastHeartbeatResponse = 0, this.nextReqId = (0, s.IntNumber)(1), this.connectedSubject = new r.BehaviorSubject(!1), this.linkedSubject = new r.BehaviorSubject(!1), this.sessionConfigSubject = new r.ReplaySubject(1);\n var h = new c.RxWebSocket(n + \"/rpc\", l);\n this.ws = h, this.subscriptions.add(h.connectionState$.pipe((0, i.tap)(function (e) {\n var n;\n return null === (n = _this50.diagnostic) || void 0 === n ? void 0 : n.log(u.EVENTS.CONNECTED_STATE_CHANGE, {\n state: e,\n sessionIdHash: o.Session.hash(t)\n });\n }), (0, i.skip)(1), (0, i.filter)(function (t) {\n return t === c.ConnectionState.DISCONNECTED && !_this50.destroyed;\n }), (0, i.delay)(5e3), (0, i.filter)(function (t) {\n return !_this50.destroyed;\n }), (0, i.flatMap)(function (t) {\n return h.connect();\n }), (0, i.retry)()).subscribe()), this.subscriptions.add(h.connectionState$.pipe((0, i.skip)(2), (0, i.switchMap)(function (t) {\n return (0, r.iif)(function () {\n return t === c.ConnectionState.CONNECTED;\n }, _this50.authenticate().pipe((0, i.tap)(function (t) {\n return _this50.sendIsLinked();\n }), (0, i.tap)(function (t) {\n return _this50.sendGetSessionConfig();\n }), (0, i.map)(function (t) {\n return !0;\n })), (0, r.of)(!1));\n }), (0, i.distinctUntilChanged)(), (0, i.catchError)(function (t) {\n return (0, r.of)(!1);\n })).subscribe(function (t) {\n return _this50.connectedSubject.next(t);\n })), this.subscriptions.add(h.connectionState$.pipe((0, i.skip)(1), (0, i.switchMap)(function (t) {\n return (0, r.iif)(function () {\n return t === c.ConnectionState.CONNECTED;\n }, (0, r.timer)(0, 1e4));\n })).subscribe(function (t) {\n return 0 === t ? _this50.updateLastHeartbeat() : _this50.heartbeat();\n })), this.subscriptions.add(h.incomingData$.pipe((0, i.filter)(function (t) {\n return \"h\" === t;\n })).subscribe(function (t) {\n return _this50.updateLastHeartbeat();\n })), this.subscriptions.add(h.incomingJSONData$.pipe((0, i.filter)(function (t) {\n return [\"IsLinkedOK\", \"Linked\"].includes(t.type);\n })).subscribe(function (e) {\n var n;\n var r = e;\n null === (n = _this50.diagnostic) || void 0 === n || n.log(u.EVENTS.LINKED, {\n sessionIdHash: o.Session.hash(t),\n linked: r.linked,\n type: e.type,\n onlineGuests: r.onlineGuests\n }), _this50.linkedSubject.next(r.linked || r.onlineGuests > 0);\n })), this.subscriptions.add(h.incomingJSONData$.pipe((0, i.filter)(function (t) {\n return [\"GetSessionConfigOK\", \"SessionConfigUpdated\"].includes(t.type);\n })).subscribe(function (e) {\n var n;\n var r = e;\n null === (n = _this50.diagnostic) || void 0 === n || n.log(u.EVENTS.SESSION_CONFIG_RECEIVED, {\n sessionIdHash: o.Session.hash(t),\n metadata_keys: r && r.metadata ? Object.keys(r.metadata) : void 0\n }), _this50.sessionConfigSubject.next({\n webhookId: r.webhookId,\n webhookUrl: r.webhookUrl,\n metadata: r.metadata\n });\n }));\n }\n\n _createClass(_class17, [{\n key: \"connect\",\n value: function connect() {\n var t;\n if (this.destroyed) throw new Error(\"instance is destroyed\");\n null === (t = this.diagnostic) || void 0 === t || t.log(u.EVENTS.STARTED_CONNECTING, {\n sessionIdHash: o.Session.hash(this.sessionId)\n }), this.ws.connect().subscribe();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var t;\n this.subscriptions.unsubscribe(), this.ws.disconnect(), null === (t = this.diagnostic) || void 0 === t || t.log(u.EVENTS.DISCONNECTED, {\n sessionIdHash: o.Session.hash(this.sessionId)\n }), this.destroyed = !0;\n }\n }, {\n key: \"isDestroyed\",\n get: function get() {\n return this.destroyed;\n }\n }, {\n key: \"connected$\",\n get: function get() {\n return this.connectedSubject.asObservable();\n }\n }, {\n key: \"onceConnected$\",\n get: function get() {\n return this.connected$.pipe((0, i.filter)(function (t) {\n return t;\n }), (0, i.take)(1), (0, i.map)(function () {}));\n }\n }, {\n key: \"linked$\",\n get: function get() {\n return this.linkedSubject.asObservable();\n }\n }, {\n key: \"onceLinked$\",\n get: function get() {\n return this.linked$.pipe((0, i.filter)(function (t) {\n return t;\n }), (0, i.take)(1), (0, i.map)(function () {}));\n }\n }, {\n key: \"sessionConfig$\",\n get: function get() {\n return this.sessionConfigSubject.asObservable();\n }\n }, {\n key: \"incomingEvent$\",\n get: function get() {\n return this.ws.incomingJSONData$.pipe((0, i.filter)(function (t) {\n if (\"Event\" !== t.type) return !1;\n var e = t;\n return \"string\" == typeof e.sessionId && \"string\" == typeof e.eventId && \"string\" == typeof e.event && \"string\" == typeof e.data;\n }), (0, i.map)(function (t) {\n return t;\n }));\n }\n }, {\n key: \"setSessionMetadata\",\n value: function setSessionMetadata(t, e) {\n var _this51 = this;\n\n var n = (0, a.ClientMessageSetSessionConfig)({\n id: (0, s.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n metadata: _defineProperty({}, t, e)\n });\n return this.onceConnected$.pipe((0, i.flatMap)(function (t) {\n return _this51.makeRequest(n);\n }), (0, i.map)(function (t) {\n if ((0, l.isServerMessageFail)(t)) throw new Error(t.error || \"failed to set session metadata\");\n }));\n }\n }, {\n key: \"publishEvent\",\n value: function publishEvent(t, e) {\n var _this52 = this;\n\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;\n var r = (0, a.ClientMessagePublishEvent)({\n id: (0, s.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n event: t,\n data: e,\n callWebhook: n\n });\n return this.onceLinked$.pipe((0, i.flatMap)(function (t) {\n return _this52.makeRequest(r);\n }), (0, i.map)(function (t) {\n if ((0, l.isServerMessageFail)(t)) throw new Error(t.error || \"failed to publish event\");\n return t.eventId;\n }));\n }\n }, {\n key: \"sendData\",\n value: function sendData(t) {\n this.ws.sendData(JSON.stringify(t));\n }\n }, {\n key: \"updateLastHeartbeat\",\n value: function updateLastHeartbeat() {\n this.lastHeartbeatResponse = Date.now();\n }\n }, {\n key: \"heartbeat\",\n value: function heartbeat() {\n if (Date.now() - this.lastHeartbeatResponse > 2e4) this.ws.disconnect();else try {\n this.ws.sendData(\"h\");\n } catch (t) {}\n }\n }, {\n key: \"makeRequest\",\n value: function makeRequest(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6e4;\n var n = t.id;\n\n try {\n this.sendData(t);\n } catch (t) {\n return (0, r.throwError)(t);\n }\n\n return this.ws.incomingJSONData$.pipe((0, i.timeoutWith)(e, (0, r.throwError)(new Error(\"request \".concat(n, \" timed out\")))), (0, i.filter)(function (t) {\n return t.id === n;\n }), (0, i.take)(1));\n }\n }, {\n key: \"authenticate\",\n value: function authenticate() {\n var t = (0, a.ClientMessageHostSession)({\n id: (0, s.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n sessionKey: this.sessionKey\n });\n return this.makeRequest(t).pipe((0, i.map)(function (t) {\n if ((0, l.isServerMessageFail)(t)) throw new Error(t.error || \"failed to authentcate\");\n }));\n }\n }, {\n key: \"sendIsLinked\",\n value: function sendIsLinked() {\n var t = (0, a.ClientMessageIsLinked)({\n id: (0, s.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId\n });\n this.sendData(t);\n }\n }, {\n key: \"sendGetSessionConfig\",\n value: function sendGetSessionConfig() {\n var t = (0, a.ClientMessageGetSessionConfig)({\n id: (0, s.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId\n });\n this.sendData(t);\n }\n }]);\n\n return _class17;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ClientMessagePublishEvent = e.ClientMessageSetSessionConfig = e.ClientMessageGetSessionConfig = e.ClientMessageIsLinked = e.ClientMessageHostSession = void 0, e.ClientMessageHostSession = function (t) {\n return Object.assign({\n type: \"HostSession\"\n }, t);\n }, e.ClientMessageIsLinked = function (t) {\n return Object.assign({\n type: \"IsLinked\"\n }, t);\n }, e.ClientMessageGetSessionConfig = function (t) {\n return Object.assign({\n type: \"GetSessionConfig\"\n }, t);\n }, e.ClientMessageSetSessionConfig = function (t) {\n return Object.assign({\n type: \"SetSessionConfig\"\n }, t);\n }, e.ClientMessagePublishEvent = function (t) {\n return Object.assign({\n type: \"PublishEvent\"\n }, t);\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.RxWebSocket = e.ConnectionState = void 0;\n var r = n(70),\n i = n(101);\n var o;\n !function (t) {\n t[t.DISCONNECTED = 0] = \"DISCONNECTED\", t[t.CONNECTING = 1] = \"CONNECTING\", t[t.CONNECTED = 2] = \"CONNECTED\";\n }(o = e.ConnectionState || (e.ConnectionState = {}));\n\n e.RxWebSocket = /*#__PURE__*/function () {\n function _class18(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : WebSocket;\n\n _classCallCheck(this, _class18);\n\n this.WebSocketClass = e, this.webSocket = null, this.connectionStateSubject = new r.BehaviorSubject(o.DISCONNECTED), this.incomingDataSubject = new r.Subject(), this.url = t.replace(/^http/, \"ws\");\n }\n\n _createClass(_class18, [{\n key: \"connect\",\n value: function connect() {\n var _this53 = this;\n\n return this.webSocket ? (0, r.throwError)(new Error(\"webSocket object is not null\")) : new r.Observable(function (t) {\n var e;\n\n try {\n _this53.webSocket = e = new _this53.WebSocketClass(_this53.url);\n } catch (e) {\n return void t.error(e);\n }\n\n _this53.connectionStateSubject.next(o.CONNECTING), e.onclose = function (e) {\n _this53.clearWebSocket(), t.error(new Error(\"websocket error \".concat(e.code, \": \").concat(e.reason))), _this53.connectionStateSubject.next(o.DISCONNECTED);\n }, e.onopen = function (e) {\n t.next(), t.complete(), _this53.connectionStateSubject.next(o.CONNECTED);\n }, e.onmessage = function (t) {\n _this53.incomingDataSubject.next(t.data);\n };\n }).pipe((0, i.take)(1));\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n var t = this.webSocket;\n\n if (t) {\n this.clearWebSocket(), this.connectionStateSubject.next(o.DISCONNECTED);\n\n try {\n t.close();\n } catch (t) {}\n }\n }\n }, {\n key: \"connectionState$\",\n get: function get() {\n return this.connectionStateSubject.asObservable();\n }\n }, {\n key: \"incomingData$\",\n get: function get() {\n return this.incomingDataSubject.asObservable();\n }\n }, {\n key: \"incomingJSONData$\",\n get: function get() {\n return this.incomingData$.pipe((0, i.flatMap)(function (t) {\n var e;\n\n try {\n e = JSON.parse(t);\n } catch (t) {\n return (0, r.empty)();\n }\n\n return (0, r.of)(e);\n }));\n }\n }, {\n key: \"sendData\",\n value: function sendData(t) {\n var e = this.webSocket;\n if (!e) throw new Error(\"websocket is not connected\");\n e.send(t);\n }\n }, {\n key: \"clearWebSocket\",\n value: function clearWebSocket() {\n var t = this.webSocket;\n t && (this.webSocket = null, t.onclose = null, t.onerror = null, t.onmessage = null, t.onopen = null);\n }\n }]);\n\n return _class18;\n }();\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.isServerMessageFail = void 0, e.isServerMessageFail = function (t) {\n return t && \"Fail\" === t.type && \"number\" == typeof t.id && \"string\" == typeof t.sessionId && \"string\" == typeof t.error;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WalletUIError = void 0;\n\n var r = /*#__PURE__*/function (_Error3) {\n _inherits(r, _Error3);\n\n var _super18 = _createSuper(r);\n\n function r(t, e) {\n var _this54;\n\n _classCallCheck(this, r);\n\n _this54 = _super18.call(this, t), _this54.message = t, _this54.errorCode = e;\n return _this54;\n }\n\n return _createClass(r);\n }( /*#__PURE__*/_wrapNativeSuper(Error));\n\n e.WalletUIError = r, r.UserRejectedRequest = new r(\"User rejected request\"), r.SwitchEthereumChainUnsupportedChainId = new r(\"Unsupported chainId\", 4902);\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.decrypt = e.encrypt = void 0;\n var r = n(38);\n e.encrypt = /*#__PURE__*/function () {\n var _ref65 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee84(t, e) {\n var n, i, o, s, a, u, c, l, h;\n return _regeneratorRuntime.wrap(function _callee84$(_context84) {\n while (1) {\n switch (_context84.prev = _context84.next) {\n case 0:\n if (!(64 !== e.length)) {\n _context84.next = 2;\n break;\n }\n\n throw Error(\"secret must be 256 bits\");\n\n case 2:\n n = crypto.getRandomValues(new Uint8Array(12));\n _context84.next = 5;\n return crypto.subtle.importKey(\"raw\", (0, r.hexStringToUint8Array)(e), {\n name: \"aes-gcm\"\n }, !1, [\"encrypt\", \"decrypt\"]);\n\n case 5:\n i = _context84.sent;\n o = new TextEncoder();\n _context84.next = 9;\n return window.crypto.subtle.encrypt({\n name: \"AES-GCM\",\n iv: n\n }, i, o.encode(t));\n\n case 9:\n s = _context84.sent;\n a = s.slice(s.byteLength - 16);\n u = s.slice(0, s.byteLength - 16);\n c = new Uint8Array(a);\n l = new Uint8Array(u);\n h = new Uint8Array([].concat(_toConsumableArray(n), _toConsumableArray(c), _toConsumableArray(l)));\n return _context84.abrupt(\"return\", (0, r.uint8ArrayToHex)(h));\n\n case 16:\n case \"end\":\n return _context84.stop();\n }\n }\n }, _callee84);\n }));\n\n return function (_x98, _x99) {\n return _ref65.apply(this, arguments);\n };\n }(), e.decrypt = function (t, e) {\n if (64 !== e.length) throw Error(\"secret must be 256 bits\");\n return new Promise(function (n, i) {\n !_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee85() {\n var o, s, a, u, c, l, h, _t23, _e24;\n\n return _regeneratorRuntime.wrap(function _callee85$(_context85) {\n while (1) {\n switch (_context85.prev = _context85.next) {\n case 0:\n _context85.next = 2;\n return crypto.subtle.importKey(\"raw\", (0, r.hexStringToUint8Array)(e), {\n name: \"aes-gcm\"\n }, !1, [\"encrypt\", \"decrypt\"]);\n\n case 2:\n o = _context85.sent;\n s = (0, r.hexStringToUint8Array)(t);\n a = s.slice(0, 12);\n u = s.slice(12, 28);\n c = s.slice(28);\n l = new Uint8Array([].concat(_toConsumableArray(c), _toConsumableArray(u)));\n h = {\n name: \"AES-GCM\",\n iv: new Uint8Array(a)\n };\n _context85.prev = 9;\n _context85.next = 12;\n return window.crypto.subtle.decrypt(h, o, l);\n\n case 12:\n _t23 = _context85.sent;\n _e24 = new TextDecoder();\n n(_e24.decode(_t23));\n _context85.next = 20;\n break;\n\n case 17:\n _context85.prev = 17;\n _context85.t0 = _context85[\"catch\"](9);\n i(_context85.t0);\n\n case 20:\n case \"end\":\n return _context85.stop();\n }\n }\n }, _callee85, null, [[9, 17]]);\n }))();\n });\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Web3RequestCanceledMessage = void 0;\n var r = n(100);\n\n e.Web3RequestCanceledMessage = function (t) {\n return {\n type: r.RelayMessageType.WEB3_REQUEST_CANCELED,\n id: t\n };\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Web3RequestMessage = void 0;\n var r = n(100);\n\n e.Web3RequestMessage = function (t) {\n return Object.assign({\n type: r.RelayMessageType.WEB3_REQUEST\n }, t);\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.EthereumAddressFromSignedMessageResponse = e.SubmitEthereumTransactionResponse = e.SignEthereumTransactionResponse = e.SignEthereumMessageResponse = e.isRequestEthereumAccountsResponse = e.SelectProviderResponse = e.WatchAssetReponse = e.RequestEthereumAccountsResponse = e.SwitchEthereumChainResponse = e.AddEthereumChainResponse = e.ErrorResponse = void 0;\n var r = n(124);\n e.ErrorResponse = function (t, e, n) {\n return {\n method: t,\n errorMessage: e,\n errorCode: n\n };\n }, e.AddEthereumChainResponse = function (t) {\n return {\n method: r.Web3Method.addEthereumChain,\n result: t\n };\n }, e.SwitchEthereumChainResponse = function (t) {\n return {\n method: r.Web3Method.switchEthereumChain,\n result: t\n };\n }, e.RequestEthereumAccountsResponse = function (t) {\n return {\n method: r.Web3Method.requestEthereumAccounts,\n result: t\n };\n }, e.WatchAssetReponse = function (t) {\n return {\n method: r.Web3Method.watchAsset,\n result: t\n };\n }, e.SelectProviderResponse = function (t) {\n return {\n method: r.Web3Method.selectProvider,\n result: t\n };\n }, e.isRequestEthereumAccountsResponse = function (t) {\n return t && t.method === r.Web3Method.requestEthereumAccounts;\n }, e.SignEthereumMessageResponse = function (t) {\n return {\n method: r.Web3Method.signEthereumMessage,\n result: t\n };\n }, e.SignEthereumTransactionResponse = function (t) {\n return {\n method: r.Web3Method.signEthereumTransaction,\n result: t\n };\n }, e.SubmitEthereumTransactionResponse = function (t) {\n return {\n method: r.Web3Method.submitEthereumTransaction,\n result: t\n };\n }, e.EthereumAddressFromSignedMessageResponse = function (t) {\n return {\n method: r.Web3Method.ethereumAddressFromSignedMessage,\n result: t\n };\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.isWeb3ResponseMessage = e.Web3ResponseMessage = void 0;\n var r = n(100);\n e.Web3ResponseMessage = function (t) {\n return Object.assign({\n type: r.RelayMessageType.WEB3_RESPONSE\n }, t);\n }, e.isWeb3ResponseMessage = function (t) {\n return t && t.type === r.RelayMessageType.WEB3_RESPONSE;\n };\n}, function (t, e, n) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WalletSDKRelayEventManager = void 0;\n var r = n(38);\n\n e.WalletSDKRelayEventManager = /*#__PURE__*/function () {\n function _class19() {\n _classCallCheck(this, _class19);\n\n this._nextRequestId = 0, this.callbacks = new Map();\n }\n\n _createClass(_class19, [{\n key: \"makeRequestId\",\n value: function makeRequestId() {\n this._nextRequestId = (this._nextRequestId + 1) % 2147483647;\n var t = this._nextRequestId,\n e = (0, r.prepend0x)(t.toString(16));\n return this.callbacks.get(e) && this.callbacks.delete(e), t;\n }\n }]);\n\n return _class19;\n }();\n}, function (t) {\n t.exports = JSON.parse('{\"name\":\"@coinbase/wallet-sdk\",\"version\":\"3.6.4\",\"description\":\"Coinbase Wallet JavaScript SDK\",\"keywords\":[\"cipher\",\"cipherbrowser\",\"coinbase\",\"coinbasewallet\",\"eth\",\"ether\",\"ethereum\",\"etherium\",\"injection\",\"toshi\",\"wallet\",\"walletlink\",\"web3\"],\"main\":\"dist/index.js\",\"types\":\"dist/index.d.ts\",\"repository\":\"https://github.com/coinbase/coinbase-wallet-sdk.git\",\"author\":\"Coinbase, Inc.\",\"license\":\"Apache-2.0\",\"scripts\":{\"pretest:unit\":\"node compile-assets.js\",\"test:unit\":\"jest\",\"test:unit:coverage\":\"yarn test:unit && open coverage/lcov-report/index.html\",\"test:karma\":\"yarn build-npm && karma start\",\"prebuild\":\"rm -rf ./build && node -p \\\\\"\\'export const LIB_VERSION = \\' + JSON.stringify(require(\\'./package.json\\').version) + \\';\\'\\\\\" > src/version.ts\",\"build\":\"node compile-assets.js && webpack --config webpack.config.js\",\"build-npm\":\"tsc -p ./tsconfig.build.json\",\"build:dev\":\"export LINK_API_URL=\\'http://localhost:3000\\'; yarn build\",\"build:dev:watch\":\"nodemon -e \\'ts,tsx,js,json,css,scss,svg\\' --ignore \\'src/**/*-css.ts\\' --ignore \\'src/**/*-svg.ts\\' --watch src/ --exec \\'yarn build:dev\\'\",\"build:prod\":\"yarn prebuild && yarn build && yarn build-npm && cp ./package.json ../../README.md ./LICENSE build/npm && cp -a src/vendor-js build/npm/dist && sed -i.bak \\'s| \\\\\"private\\\\\": true,||g\\' build/npm/package.json && rm -f build/npm/package.json.bak\",\"lint:types\":\"tsc --noEmit\",\"lint:prettier\":\"prettier --check \\\\\"{src,__tests__}/**/*.(js|ts|tsx)\\\\\"\",\"lint:eslint\":\"eslint ./src --ext .ts,.tsx\",\"lint\":\"yarn lint:eslint && yarn lint:types && yarn lint:prettier\",\"fix:eslint\":\"yarn lint:eslint --fix\",\"fix:prettier\":\"prettier . --write\",\"release\":\"./scripts/release.sh\"},\"dependencies\":{\"@metamask/safe-event-emitter\":\"2.0.0\",\"@solana/web3.js\":\"^1.70.1\",\"bind-decorator\":\"^1.0.11\",\"bn.js\":\"^5.1.1\",\"buffer\":\"^6.0.3\",\"clsx\":\"^1.1.0\",\"eth-block-tracker\":\"4.4.3\",\"eth-json-rpc-filters\":\"5.1.0\",\"eth-rpc-errors\":\"4.0.2\",\"json-rpc-engine\":\"6.1.0\",\"keccak\":\"^3.0.1\",\"preact\":\"^10.5.9\",\"qs\":\"^6.10.3\",\"rxjs\":\"^6.6.3\",\"sha.js\":\"^2.4.11\",\"stream-browserify\":\"^3.0.0\",\"util\":\"^0.12.4\"},\"devDependencies\":{\"@babel/core\":\"^7.17.9\",\"@babel/plugin-proposal-decorators\":\"^7.17.9\",\"@babel/plugin-transform-react-jsx\":\"^7.17.3\",\"@babel/preset-env\":\"^7.16.11\",\"@babel/preset-typescript\":\"^7.16.7\",\"@peculiar/webcrypto\":\"^1.3.3\",\"@testing-library/jest-dom\":\"^5.16.4\",\"@testing-library/preact\":\"^2.0.1\",\"@types/bn.js\":\"^4.11.6\",\"@types/jest\":\"^27.4.1\",\"@types/node\":\"^14.14.20\",\"@types/qs\":\"^6.9.7\",\"@types/sha.js\":\"^2.4.0\",\"@typescript-eslint/eslint-plugin\":\"^5.7.0\",\"@typescript-eslint/eslint-plugin-tslint\":\"^5.7.0\",\"@typescript-eslint/parser\":\"^5.7.0\",\"babel-jest\":\"^27.5.1\",\"browserify\":\"17.0.0\",\"copy-webpack-plugin\":\"^6.4.1\",\"core-js\":\"^3.8.2\",\"eslint\":\"^8.4.1\",\"eslint-config-prettier\":\"^8.3.0\",\"eslint-plugin-import\":\"^2.25.3\",\"eslint-plugin-preact\":\"^0.1.0\",\"eslint-plugin-prettier\":\"^4.0.0\",\"eslint-plugin-simple-import-sort\":\"^7.0.0\",\"jasmine\":\"3.8.0\",\"jest\":\"^27.5.1\",\"jest-chrome\":\"^0.7.2\",\"jest-websocket-mock\":\"^2.3.0\",\"karma\":\"^6.4.0\",\"karma-browserify\":\"8.1.0\",\"karma-chrome-launcher\":\"^3.1.0\",\"karma-jasmine\":\"^4.0.1\",\"nodemon\":\"^2.0.6\",\"prettier\":\"^2.5.1\",\"raw-loader\":\"^4.0.2\",\"regenerator-runtime\":\"^0.13.7\",\"sass\":\"^1.50.0\",\"svgo\":\"^2.8.0\",\"ts-jest\":\"^27.1.4\",\"ts-loader\":\"^8.0.13\",\"ts-node\":\"^10.7.0\",\"tslib\":\"^2.0.3\",\"typescript\":\"^4.1.3\",\"watchify\":\"4.0.0\",\"webpack\":\"^5.72.0\",\"webpack-cli\":\"^4.9.2\",\"whatwg-fetch\":\"^3.5.0\"},\"engines\":{\"node\":\">= 10.0.0\"}}');\n}, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"Mutex\", function () {\n return s;\n }), n.d(e, \"Semaphore\", function () {\n return o;\n }), n.d(e, \"withTimeout\", function () {\n return a;\n });\n\n function r(t, e, n, r) {\n return new (n || (n = Promise))(function (i, o) {\n function s(t) {\n try {\n u(r.next(t));\n } catch (t) {\n o(t);\n }\n }\n\n function a(t) {\n try {\n u(r.throw(t));\n } catch (t) {\n o(t);\n }\n }\n\n function u(t) {\n var e;\n t.done ? i(t.value) : (e = t.value, e instanceof n ? e : new n(function (t) {\n t(e);\n })).then(s, a);\n }\n\n u((r = r.apply(t, e || [])).next());\n });\n }\n\n function i(t, e) {\n var n,\n r,\n i,\n o,\n s = {\n label: 0,\n sent: function sent() {\n if (1 & i[0]) throw i[1];\n return i[1];\n },\n trys: [],\n ops: []\n };\n return o = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (o[Symbol.iterator] = function () {\n return this;\n }), o;\n\n function a(a) {\n return function (u) {\n return function (a) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n\n for (; o && (o = 0, a[0] && (s = 0)), s;) {\n try {\n if (n = 1, r && (i = 2 & a[0] ? r.return : a[0] ? r.throw || ((i = r.return) && i.call(r), 0) : r.next) && !(i = i.call(r, a[1])).done) return i;\n\n switch (r = 0, i && (a = [2 & a[0], i.value]), a[0]) {\n case 0:\n case 1:\n i = a;\n break;\n\n case 4:\n return s.label++, {\n value: a[1],\n done: !1\n };\n\n case 5:\n s.label++, r = a[1], a = [0];\n continue;\n\n case 7:\n a = s.ops.pop(), s.trys.pop();\n continue;\n\n default:\n if (!(i = s.trys, (i = i.length > 0 && i[i.length - 1]) || 6 !== a[0] && 2 !== a[0])) {\n s = 0;\n continue;\n }\n\n if (3 === a[0] && (!i || a[1] > i[0] && a[1] < i[3])) {\n s.label = a[1];\n break;\n }\n\n if (6 === a[0] && s.label < i[1]) {\n s.label = i[1], i = a;\n break;\n }\n\n if (i && s.label < i[2]) {\n s.label = i[2], s.ops.push(a);\n break;\n }\n\n i[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n\n a = e.call(t, s);\n } catch (t) {\n a = [6, t], r = 0;\n } finally {\n n = i = 0;\n }\n }\n\n if (5 & a[0]) throw a[1];\n return {\n value: a[0] ? a[1] : void 0,\n done: !0\n };\n }([a, u]);\n };\n }\n }\n\n Object.create;\n Object.create;\n \"function\" == typeof SuppressedError && SuppressedError;\n\n var o = function () {\n function t(t) {\n if (this._maxConcurrency = t, this._queue = [], t <= 0) throw new Error(\"semaphore must be initialized to a positive value\");\n this._value = t;\n }\n\n return t.prototype.acquire = function () {\n var t = this,\n e = this.isLocked(),\n n = new Promise(function (e) {\n return t._queue.push(e);\n });\n return e || this._dispatch(), n;\n }, t.prototype.runExclusive = function (t) {\n return r(this, void 0, void 0, function () {\n var e, n, r;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return [4, this.acquire()];\n\n case 1:\n e = i.sent(), n = e[0], r = e[1], i.label = 2;\n\n case 2:\n return i.trys.push([2,, 4, 5]), [4, t(n)];\n\n case 3:\n return [2, i.sent()];\n\n case 4:\n return r(), [7];\n\n case 5:\n return [2];\n }\n });\n });\n }, t.prototype.isLocked = function () {\n return this._value <= 0;\n }, t.prototype.release = function () {\n if (this._maxConcurrency > 1) throw new Error(\"this method is unavailabel on semaphores with concurrency > 1; use the scoped release returned by acquire instead\");\n\n if (this._currentReleaser) {\n var t = this._currentReleaser;\n this._currentReleaser = void 0, t();\n }\n }, t.prototype._dispatch = function () {\n var t = this,\n e = this._queue.shift();\n\n if (e) {\n var n = !1;\n this._currentReleaser = function () {\n n || (n = !0, t._value++, t._dispatch());\n }, e([this._value--, this._currentReleaser]);\n }\n }, t;\n }(),\n s = function () {\n function t() {\n this._semaphore = new o(1);\n }\n\n return t.prototype.acquire = function () {\n return r(this, void 0, void 0, function () {\n var t;\n return i(this, function (e) {\n switch (e.label) {\n case 0:\n return [4, this._semaphore.acquire()];\n\n case 1:\n return t = e.sent(), [2, t[1]];\n }\n });\n });\n }, t.prototype.runExclusive = function (t) {\n return this._semaphore.runExclusive(function () {\n return t();\n });\n }, t.prototype.isLocked = function () {\n return this._semaphore.isLocked();\n }, t.prototype.release = function () {\n this._semaphore.release();\n }, t;\n }();\n\n function a(t, e, n) {\n var o = this;\n return void 0 === n && (n = new Error(\"timeout\")), {\n acquire: function acquire() {\n return new Promise(function (s, a) {\n return r(o, void 0, void 0, function () {\n var r, o;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return r = !1, setTimeout(function () {\n r = !0, a(n);\n }, e), [4, t.acquire()];\n\n case 1:\n return o = i.sent(), r ? (Array.isArray(o) ? o[1] : o)() : s(o), [2];\n }\n });\n });\n });\n },\n runExclusive: function runExclusive(t) {\n return r(this, void 0, void 0, function () {\n var e, n;\n return i(this, function (r) {\n switch (r.label) {\n case 0:\n e = function e() {}, r.label = 1;\n\n case 1:\n return r.trys.push([1,, 7, 8]), [4, this.acquire()];\n\n case 2:\n return n = r.sent(), Array.isArray(n) ? (e = n[1], [4, t(n[0])]) : [3, 4];\n\n case 3:\n return [2, r.sent()];\n\n case 4:\n return e = n, [4, t()];\n\n case 5:\n return [2, r.sent()];\n\n case 6:\n return [3, 8];\n\n case 7:\n return e(), [7];\n\n case 8:\n return [2];\n }\n });\n });\n },\n release: function release() {\n t.release();\n },\n isLocked: function isLocked() {\n return t.isLocked();\n }\n };\n }\n}]);\n\nvoid 0 === CoinbaseWalletSdk && console.error(\"esm-webpack-plugin: nothing exported!\");\nvar _CoinbaseWalletSdk$CoinbaseWalletProvider = CoinbaseWalletSdk.CoinbaseWalletProvider,\n _CoinbaseWalletSdk$CoinbaseWalletSDK = CoinbaseWalletSdk.CoinbaseWalletSDK;\nexport { _CoinbaseWalletSdk$CoinbaseWalletProvider as CoinbaseWalletProvider, _CoinbaseWalletSdk$CoinbaseWalletSDK as CoinbaseWalletSDK };","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { getProvider, request, estimate } from '@depay/web3-client';\nimport Blockchains from '@depay/web3-blockchains';\nimport { PublicKey, SystemProgram, TransactionMessage, VersionedTransaction, transact } from '@depay/solana-web3.js';\nimport { ethers } from 'ethers';\nimport { SignClient } from '@depay/walletconnect-v2';\nimport { CoinbaseWalletSDK } from '@depay/coinbase-wallet-sdk';\nimport { MiniKit, ResponseEvent } from '@depay/worldcoin-precompiled';\n\nfunction _optionalChain$B(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_value = value).call.apply(_value, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Transaction = /*#__PURE__*/function () {\n function Transaction(_ref) {\n var blockchain = _ref.blockchain,\n from = _ref.from,\n to = _ref.to,\n value = _ref.value,\n api = _ref.api,\n method = _ref.method,\n params = _ref.params,\n instructions = _ref.instructions,\n signers = _ref.signers,\n alts = _ref.alts,\n sent = _ref.sent,\n succeeded = _ref.succeeded,\n failed = _ref.failed,\n accepted = _ref.accepted;\n\n _classCallCheck(this, Transaction);\n\n // required\n this.blockchain = blockchain;\n this.from = from && from.match('0x') ? ethers.utils.getAddress(from) : from;\n this.to = to && to.match('0x') ? ethers.utils.getAddress(to) : to; // optional\n\n this.value = _optionalChain$B([Transaction, 'access', function (_) {\n return _.bigNumberify;\n }, 'call', function (_2) {\n return _2(value, blockchain);\n }, 'optionalAccess', function (_3) {\n return _3.toString;\n }, 'call', function (_4) {\n return _4();\n }]);\n this.api = api;\n this.method = method;\n this.params = params;\n this.accepted = accepted;\n this.sent = sent;\n this.succeeded = succeeded;\n this.failed = failed;\n this.instructions = instructions;\n this.signers = signers;\n this.alts = alts; // internal\n\n this._succeeded = false;\n this._failed = false;\n }\n\n _createClass(Transaction, [{\n key: \"prepare\",\n value: function () {\n var _prepare = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {\n var wallet;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n wallet = _ref2.wallet;\n _context.next = 3;\n return wallet.account(this.blockchain);\n\n case 3:\n this.from = _context.sent;\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function prepare(_x) {\n return _prepare.apply(this, arguments);\n }\n\n return prepare;\n }()\n }, {\n key: \"findFragment\",\n value: function findFragment() {\n var _this = this;\n\n return this.getContract().interface.fragments.find(function (fragment) {\n return fragment.name == _this.method && (fragment.inputs && _this.params && _typeof(_this.params) === 'object' ? fragment.inputs.length == Object.keys(_this.params).length : true);\n });\n }\n }, {\n key: \"getParamType\",\n value: function getParamType(param) {\n var _this2 = this;\n\n if (_optionalChain$B([param, 'optionalAccess', function (_5) {\n return _5.components;\n }, 'optionalAccess', function (_6) {\n return _6.length;\n }])) {\n return \"(\".concat(param.components.map(function (param) {\n return _this2.getParamType(param);\n }).join(','), \")\");\n } else {\n return param.type;\n }\n }\n }, {\n key: \"getMethodNameWithSignature\",\n value: function getMethodNameWithSignature() {\n var _this3 = this;\n\n var fragment = this.findFragment();\n\n if (fragment.inputs) {\n return \"\".concat(this.method, \"(\").concat(fragment.inputs.map(function (param) {\n return _this3.getParamType(param);\n }).join(','), \")\");\n } else {\n return this.method;\n }\n }\n }, {\n key: \"getContractArguments\",\n value: function getContractArguments() {\n var _this4 = this;\n\n if (this.params instanceof Array) {\n return this.params;\n } else if (this.params instanceof Object) {\n var fragment = this.findFragment();\n return fragment.inputs.map(function (input) {\n return _this4.params[input.name];\n });\n }\n }\n }, {\n key: \"getContract\",\n value: function getContract() {\n return new ethers.Contract(this.to, this.api);\n }\n }, {\n key: \"getData\",\n value: function () {\n var _getData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var contractArguments, populatedTransaction;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n contractArguments = this.getContractArguments();\n\n if (!contractArguments) {\n _context2.next = 7;\n break;\n }\n\n _context2.next = 4;\n return this.getContract().populateTransaction[this.getMethodNameWithSignature()].apply(null, contractArguments);\n\n case 4:\n populatedTransaction = _context2.sent;\n _context2.next = 10;\n break;\n\n case 7:\n _context2.next = 9;\n return this.getContract().populateTransaction[this.getMethodNameWithSignature()].apply(null);\n\n case 9:\n populatedTransaction = _context2.sent;\n\n case 10:\n return _context2.abrupt(\"return\", populatedTransaction.data);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getData() {\n return _getData.apply(this, arguments);\n }\n\n return getData;\n }()\n }, {\n key: \"success\",\n value: function success() {\n var _this5 = this;\n\n if (this._succeeded) {\n return Promise.resolve(this);\n }\n\n return new Promise(function (resolve, reject) {\n var originalSucceeded = _this5.succeeded;\n\n _this5.succeeded = function (transaction) {\n if (originalSucceeded) originalSucceeded(transaction);\n resolve(transaction);\n };\n });\n }\n }, {\n key: \"failure\",\n value: function failure() {\n var _this6 = this;\n\n if (this._failed) {\n return Promise.resolve(this);\n }\n\n return new Promise(function (resolve, reject) {\n var originalFailed = _this6.failed;\n\n _this6.failed = function (transaction, reason) {\n if (originalFailed) originalFailed(transaction, reason);\n resolve(transaction, reason);\n };\n });\n }\n }], [{\n key: \"bigNumberify\",\n value: function bigNumberify(value, blockchain) {\n if (typeof value === 'number') {\n return ethers.utils.parseUnits(value.toString(), Blockchains[blockchain].currency.decimals);\n } else if (value && value.toString) {\n return ethers.BigNumber.from(value.toString());\n } else {\n return value;\n }\n }\n }]);\n\n return Transaction;\n}();\n\nfunction _optionalChain$A(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return (_value2 = value).call.apply(_value2, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar POLL_SPEED = 500; // 0.5 seconds\n\nvar MAX_POLLS = 240; // 120 seconds\n\nvar sendTransaction$3 = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref3) {\n var transaction, wallet;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n transaction = _ref3.transaction, wallet = _ref3.wallet;\n transaction = new Transaction(transaction);\n _context4.next = 4;\n return transaction.prepare({\n wallet: wallet\n });\n\n case 4:\n _context4.next = 6;\n return submit$3({\n transaction: transaction,\n wallet: wallet\n }).then(function (signature) {\n if (signature) {\n transaction.id = signature;\n transaction.url = Blockchains.findByName(transaction.blockchain).explorerUrlFor({\n transaction: transaction\n });\n if (transaction.sent) transaction.sent(transaction);\n var count = 0;\n var interval = setInterval( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var provider, _yield$provider$getSi, value, confirmationStatus, hasReachedSufficientCommitment, confirmedTransaction, failedReason;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n count++;\n\n if (!(count >= MAX_POLLS)) {\n _context3.next = 3;\n break;\n }\n\n return _context3.abrupt(\"return\", clearInterval(interval));\n\n case 3:\n _context3.next = 5;\n return getProvider(transaction.blockchain);\n\n case 5:\n provider = _context3.sent;\n _context3.next = 8;\n return provider.getSignatureStatus(signature);\n\n case 8:\n _yield$provider$getSi = _context3.sent;\n value = _yield$provider$getSi.value;\n confirmationStatus = _optionalChain$A([value, 'optionalAccess', function (_) {\n return _.confirmationStatus;\n }]);\n\n if (!confirmationStatus) {\n _context3.next = 26;\n break;\n }\n\n hasReachedSufficientCommitment = confirmationStatus === 'confirmed' || confirmationStatus === 'finalized';\n\n if (!hasReachedSufficientCommitment) {\n _context3.next = 26;\n break;\n }\n\n if (!value.err) {\n _context3.next = 23;\n break;\n }\n\n transaction._failed = true;\n _context3.next = 18;\n return provider.getConfirmedTransaction(signature);\n\n case 18:\n confirmedTransaction = _context3.sent;\n failedReason = _optionalChain$A([confirmedTransaction, 'optionalAccess', function (_2) {\n return _2.meta;\n }, 'optionalAccess', function (_3) {\n return _3.logMessages;\n }]) ? confirmedTransaction.meta.logMessages[confirmedTransaction.meta.logMessages.length - 1] : null;\n if (transaction.failed) transaction.failed(transaction, failedReason);\n _context3.next = 25;\n break;\n\n case 23:\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n\n case 25:\n return _context3.abrupt(\"return\", clearInterval(interval));\n\n case 26:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n })), POLL_SPEED);\n } else {\n throw 'Submitting transaction failed!';\n }\n });\n\n case 6:\n return _context4.abrupt(\"return\", transaction);\n\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function sendTransaction$3(_x2) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nvar submit$3 = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref6) {\n var transaction, wallet, result, signature;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n transaction = _ref6.transaction, wallet = _ref6.wallet;\n _context5.next = 3;\n return submitThroughWallet({\n transaction: transaction,\n wallet: wallet\n });\n\n case 3:\n result = _context5.sent;\n\n if (!(_typeof(result) === 'object' && result.signatures && result.message)) {\n _context5.next = 15;\n break;\n }\n\n _context5.t0 = submitDirectly;\n _context5.t1 = result;\n _context5.next = 9;\n return wallet.account();\n\n case 9:\n _context5.t2 = _context5.sent;\n _context5.next = 12;\n return (0, _context5.t0)(_context5.t1, _context5.t2);\n\n case 12:\n signature = _context5.sent;\n _context5.next = 16;\n break;\n\n case 15:\n if (_typeof(result) === 'object' && result.signature && result.signature.length) {\n signature = result.signature;\n } else if (typeof result === 'string' && result.length) {\n signature = result;\n }\n\n case 16:\n return _context5.abrupt(\"return\", signature);\n\n case 17:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function submit$3(_x3) {\n return _ref7.apply(this, arguments);\n };\n}();\n\nvar submitDirectly = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(tx, from) {\n var provider;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return getProvider('solana');\n\n case 2:\n provider = _context6.sent;\n _context6.next = 5;\n return provider.sendRawTransaction(tx.serialize());\n\n case 5:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 6:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function submitDirectly(_x4, _x5) {\n return _ref8.apply(this, arguments);\n };\n}();\n\nvar submitThroughWallet = /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref9) {\n var transaction, wallet;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n transaction = _ref9.transaction, wallet = _ref9.wallet;\n\n if (!transaction.instructions) {\n _context7.next = 5;\n break;\n }\n\n return _context7.abrupt(\"return\", submitInstructions({\n transaction: transaction,\n wallet: wallet\n }));\n\n case 5:\n return _context7.abrupt(\"return\", submitSimpleTransfer$3({\n transaction: transaction,\n wallet: wallet\n }));\n\n case 6:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n\n return function submitThroughWallet(_x6) {\n return _ref10.apply(this, arguments);\n };\n}();\n\nvar submitSimpleTransfer$3 = /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(_ref11) {\n var transaction, wallet, fromPubkey, toPubkey, provider, recentBlockhash, instructions, messageV0, transactionV0;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n transaction = _ref11.transaction, wallet = _ref11.wallet;\n _context8.t0 = PublicKey;\n _context8.next = 4;\n return wallet.account();\n\n case 4:\n _context8.t1 = _context8.sent;\n fromPubkey = new _context8.t0(_context8.t1);\n toPubkey = new PublicKey(transaction.to);\n _context8.next = 9;\n return getProvider(transaction.blockchain);\n\n case 9:\n provider = _context8.sent;\n _context8.next = 12;\n return provider.getLatestBlockhash();\n\n case 12:\n recentBlockhash = _context8.sent.blockhash;\n instructions = [SystemProgram.transfer({\n fromPubkey: fromPubkey,\n toPubkey: toPubkey,\n lamports: parseInt(Transaction.bigNumberify(transaction.value, transaction.blockchain), 10)\n })];\n messageV0 = new TransactionMessage({\n payerKey: fromPubkey,\n recentBlockhash: recentBlockhash,\n instructions: instructions\n }).compileToV0Message();\n transactionV0 = new VersionedTransaction(messageV0);\n return _context8.abrupt(\"return\", wallet._sendTransaction(transactionV0));\n\n case 17:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function submitSimpleTransfer$3(_x7) {\n return _ref12.apply(this, arguments);\n };\n}();\n\nvar submitInstructions = /*#__PURE__*/function () {\n var _ref14 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref13) {\n var transaction, wallet, fromPubkey, provider, recentBlockhash, messageV0, transactionV0;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n transaction = _ref13.transaction, wallet = _ref13.wallet;\n _context10.t0 = PublicKey;\n _context10.next = 4;\n return wallet.account();\n\n case 4:\n _context10.t1 = _context10.sent;\n fromPubkey = new _context10.t0(_context10.t1);\n _context10.next = 8;\n return getProvider(transaction.blockchain);\n\n case 8:\n provider = _context10.sent;\n _context10.next = 11;\n return provider.getLatestBlockhash();\n\n case 11:\n recentBlockhash = _context10.sent.blockhash;\n _context10.t2 = new TransactionMessage({\n payerKey: fromPubkey,\n recentBlockhash: recentBlockhash,\n instructions: transaction.instructions\n });\n\n if (!transaction.alts) {\n _context10.next = 19;\n break;\n }\n\n _context10.next = 16;\n return Promise.all(transaction.alts.map( /*#__PURE__*/function () {\n var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(alt) {\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return getProvider('solana');\n\n case 2:\n return _context9.abrupt(\"return\", _context9.sent.getAddressLookupTable(new PublicKey(alt)).then(function (res) {\n return res.value;\n }));\n\n case 3:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function (_x9) {\n return _ref15.apply(this, arguments);\n };\n }()));\n\n case 16:\n _context10.t3 = _context10.sent;\n _context10.next = 20;\n break;\n\n case 19:\n _context10.t3 = undefined;\n\n case 20:\n _context10.t4 = _context10.t3;\n messageV0 = _context10.t2.compileToV0Message.call(_context10.t2, _context10.t4);\n transactionV0 = new VersionedTransaction(messageV0);\n\n if (transaction.signers && transaction.signers.length) {\n transactionV0.sign(Array.from(new Set(transaction.signers)));\n }\n\n return _context10.abrupt(\"return\", wallet._sendTransaction(transactionV0));\n\n case 25:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function submitInstructions(_x8) {\n return _ref14.apply(this, arguments);\n };\n}();\n\nvar supported$1 = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported$1.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported$1.solana = ['solana'];\n\nfunction _optionalChain$z(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value3;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_value3 = value).call.apply(_value3, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar WindowSolana = /*#__PURE__*/function () {\n function WindowSolana() {\n var _this7 = this;\n\n _classCallCheck(this, WindowSolana);\n\n this.name = this.constructor.info.name;\n this.logo = this.constructor.info.logo;\n this.blockchains = this.constructor.info.blockchains;\n\n this.sendTransaction = function (transaction) {\n return sendTransaction$3({\n wallet: _this7,\n transaction: transaction\n });\n };\n }\n\n _createClass(WindowSolana, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.solana;\n }\n }, {\n key: \"account\",\n value: function () {\n var _account = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11() {\n var provider, publicKey, _yield$window$solana$;\n\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n provider = this.getProvider();\n\n if (!(provider == undefined)) {\n _context11.next = 3;\n break;\n }\n\n return _context11.abrupt(\"return\");\n\n case 3:\n if (!provider.publicKey) {\n _context11.next = 5;\n break;\n }\n\n return _context11.abrupt(\"return\", provider.publicKey.toString());\n\n case 5:\n if (!(provider.isBraveWallet != true)) {\n _context11.next = 17;\n break;\n }\n\n _context11.prev = 6;\n _context11.next = 9;\n return window.solana.connect({\n onlyIfTrusted: true\n });\n\n case 9:\n _yield$window$solana$ = _context11.sent;\n publicKey = _yield$window$solana$.publicKey;\n _context11.next = 15;\n break;\n\n case 13:\n _context11.prev = 13;\n _context11.t0 = _context11[\"catch\"](6);\n\n case 15:\n if (!publicKey) {\n _context11.next = 17;\n break;\n }\n\n return _context11.abrupt(\"return\", publicKey.toString());\n\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this, [[6, 13]]);\n }));\n\n function account() {\n return _account.apply(this, arguments);\n }\n\n return account;\n }()\n }, {\n key: \"connect\",\n value: function () {\n var _connect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12() {\n var provider, result;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n provider = this.getProvider();\n\n if (provider) {\n _context12.next = 3;\n break;\n }\n\n return _context12.abrupt(\"return\", undefined);\n\n case 3:\n _context12.prev = 3;\n _context12.next = 6;\n return provider.connect();\n\n case 6:\n result = _context12.sent;\n _context12.next = 11;\n break;\n\n case 9:\n _context12.prev = 9;\n _context12.t0 = _context12[\"catch\"](3);\n\n case 11:\n if (!(result && result.publicKey)) {\n _context12.next = 15;\n break;\n }\n\n return _context12.abrupt(\"return\", result.publicKey.toString());\n\n case 15:\n return _context12.abrupt(\"return\", provider.publicKey.toString());\n\n case 16:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this, [[3, 9]]);\n }));\n\n function connect() {\n return _connect.apply(this, arguments);\n }\n\n return connect;\n }()\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var internalCallback;\n\n switch (event) {\n case 'account':\n internalCallback = function internalCallback(publicKey) {\n return callback(_optionalChain$z([publicKey, 'optionalAccess', function (_11) {\n return _11.toString;\n }, 'call', function (_12) {\n return _12();\n }]));\n };\n\n this.getProvider().on('accountChanged', internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"off\",\n value: function off(event, internalCallback) {\n switch (event) {\n case 'account':\n this.getProvider().removeListener('accountChanged', internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"connectedTo\",\n value: function () {\n var _connectedTo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(input) {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (!input) {\n _context13.next = 4;\n break;\n }\n\n return _context13.abrupt(\"return\", input == 'solana');\n\n case 4:\n return _context13.abrupt(\"return\", 'solana');\n\n case 5:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n function connectedTo(_x10) {\n return _connectedTo.apply(this, arguments);\n }\n\n return connectedTo;\n }()\n }, {\n key: \"switchTo\",\n value: function switchTo(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"addNetwork\",\n value: function addNetwork(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"sign\",\n value: function () {\n var _sign = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(message) {\n var encodedMessage, signedMessage;\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n encodedMessage = new TextEncoder().encode(message);\n _context14.next = 3;\n return this.getProvider().signMessage(encodedMessage);\n\n case 3:\n signedMessage = _context14.sent;\n\n if (!(signedMessage && signedMessage.signature)) {\n _context14.next = 6;\n break;\n }\n\n return _context14.abrupt(\"return\", Array.from(signedMessage.signature));\n\n case 6:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function sign(_x11) {\n return _sign.apply(this, arguments);\n }\n\n return sign;\n }()\n }, {\n key: \"_sendTransaction\",\n value: function _sendTransaction(transaction) {\n return this.getProvider().signAndSendTransaction(transaction, {\n skipPreflight: false\n } // requires default options to not raise error on phantom in app mobile (https://discord.com/channels/958228318132514876/974393659380334618/1089298098905423924)\n );\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Solana Wallet',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0NDYuNCAzNzYuOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQ2LjQgMzc2Ljg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojODI4NDg3O30KCS5zdDF7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDE2NTIzNDE5NTQ5NTc2MDU4MDgwMDAwMDAwNjMwMzAwNDA2OTM1MjExODk1MV8pO30KCS5zdDN7ZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDkyNDIyMzgxNjc5OTg1OTI5MTcwMDAwMDA2ODU0NzIyMTYxOTE4MTIzNjUzXyk7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzgxLjcsMTEwLjJoNjQuN1Y0Ni41YzAtMjUuNy0yMC44LTQ2LjUtNDYuNS00Ni41SDQ2LjVDMjAuOCwwLDAsMjAuOCwwLDQ2LjV2NjUuMWgzNS43bDI2LjktMjYuOQoJYzEuNS0xLjUsMy42LTIuNSw1LjctMi43bDAsMGgwLjRoNzguNmM1LjMtMjUuNSwzMC4yLTQyLDU1LjctMzYuN2MyNS41LDUuMyw0MiwzMC4yLDM2LjcsNTUuN2MtMS42LDcuNS00LjksMTQuNi05LjgsMjAuNQoJYy0wLjksMS4xLTEuOSwyLjItMywzLjNjLTEuMSwxLjEtMi4yLDIuMS0zLjMsM2MtMjAuMSwxNi42LTQ5LjksMTMuOC02Ni41LTYuM2MtNC45LTUuOS04LjMtMTMtOS44LTIwLjZINzMuMmwtMjYuOSwyNi44CgljLTEuNSwxLjUtMy42LDIuNS01LjcsMi43bDAsMGgtMC40aC0wLjFoLTAuNUgwdjc0aDI4LjhsMTguMi0xOC4yYzEuNS0xLjYsMy42LTIuNSw1LjctMi43bDAsMGgwLjRoMjkuOQoJYzUuMi0yNS41LDMwLjItNDEuOSw1NS43LTM2LjdzNDEuOSwzMC4yLDM2LjcsNTUuN3MtMzAuMiw0MS45LTU1LjcsMzYuN2MtMTguNS0zLjgtMzIuOS0xOC4yLTM2LjctMzYuN0g1Ny43bC0xOC4yLDE4LjMKCWMtMS41LDEuNS0zLjYsMi41LTUuNywyLjdsMCwwaC0wLjRIMHYzNC4yaDU2LjNjMC4yLDAsMC4zLDAsMC41LDBoMC4xaDAuNGwwLDBjMi4yLDAuMiw0LjIsMS4yLDUuOCwyLjhsMjgsMjhoNTcuNwoJYzUuMy0yNS41LDMwLjItNDIsNTUuNy0zNi43czQyLDMwLjIsMzYuNyw1NS43Yy0xLjcsOC4xLTUuNSwxNS43LTExLDIxLjljLTAuNiwwLjctMS4yLDEuMy0xLjksMnMtMS4zLDEuMy0yLDEuOQoJYy0xOS41LDE3LjMtNDkuMywxNS42LTY2LjctMy45Yy01LjUtNi4yLTkuMy0xMy43LTExLTIxLjlIODcuMWMtMS4xLDAtMi4xLTAuMi0zLjEtMC41aC0wLjFsLTAuMy0wLjFsLTAuMi0wLjFsLTAuMi0wLjFsLTAuMy0wLjEKCWgtMC4xYy0wLjktMC41LTEuOC0xLjEtMi42LTEuOGwtMjgtMjhIMHY1My41YzAuMSwyNS43LDIwLjksNDYuNCw0Ni41LDQ2LjRoMzUzLjNjMjUuNywwLDQ2LjUtMjAuOCw0Ni41LTQ2LjV2LTYzLjZoLTY0LjcKCWMtNDMuMiwwLTc4LjItMzUtNzguMi03OC4ybDAsMEMzMDMuNSwxNDUuMiwzMzguNSwxMTAuMiwzODEuNywxMTAuMnoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIyMC45LDI5OC4xYzAtMTQuNC0xMS42LTI2LTI2LTI2cy0yNiwxMS42LTI2LDI2czExLjYsMjYsMjYsMjZTMjIwLjksMzEyLjQsMjIwLjksMjk4LjFMMjIwLjksMjk4LjF6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMTkuNiw5MS41YzAtMTQuNC0xMS42LTI2LTI2LTI2cy0yNiwxMS42LTI2LDI2czExLjYsMjYsMjYsMjZTMjE5LjYsMTA1LjgsMjE5LjYsOTEuNXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTM4Mi4yLDEyOC44aC0wLjVjLTMyLjksMC01OS42LDI2LjctNTkuNiw1OS42bDAsMGwwLDBjMCwzMi45LDI2LjcsNTkuNiw1OS42LDU5LjZsMCwwaDAuNQoJYzMyLjksMCw1OS42LTI2LjcsNTkuNi01OS42bDAsMEM0NDEuOCwxNTUuNCw0MTUuMSwxMjguOCwzODIuMiwxMjguOHogTTM5Ni42LDIxOS40aC0zMWw4LjktMzIuNWMtNy43LTMuNy0xMS0xMi45LTcuNC0yMC42CgljMy43LTcuNywxMi45LTExLDIwLjYtNy40YzcuNywzLjcsMTEsMTIuOSw3LjQsMjAuNmMtMS41LDMuMi00LjEsNS44LTcuNCw3LjRMMzk2LjYsMjE5LjR6Ii8+CjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTQ5LjAwNzciIHkxPSIxMzkuMzA5MyIgeDI9IjEyMi4xMjMxIiB5Mj0iMTkwLjgwNDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDMwLjUzNTQpIj4KCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMwMEZGQTMiLz4KCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNEQzFGRkYiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBhdGggY2xhc3M9InN0MSIgZD0iTTExMi43LDIwMy41YzAuMy0wLjMsMC43LTAuNSwxLjEtMC41aDM4LjhjMC43LDAsMS4xLDAuOSwwLjYsMS40bC03LjcsNy43Yy0wLjMsMC4zLTAuNywwLjUtMS4xLDAuNWgtMzguOAoJYy0wLjcsMC0xLjEtMC45LTAuNi0xLjRMMTEyLjcsMjAzLjV6Ii8+CjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxNzUzMTAwMjIwMDgyNTMzODQyNTAwMDAwMTEwOTY3OTQyODQ4NDUzNDEzNTVfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEzNy4yNTMzIiB5MT0iMTMzLjE3MjUiIHgyPSIxMTAuMzY4NyIgeTI9IjE4NC42Njc0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMCAzMC41MzU0KSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojMDBGRkEzIi8+Cgk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojREMxRkZGIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfMDAwMDAxNzUzMTAwMjIwMDgyNTMzODQyNTAwMDAwMTEwOTY3OTQyODQ4NDUzNDEzNTVfKTsiIGQ9Ik0xMTIuNywxNzQuOWMwLjMtMC4zLDAuNy0wLjUsMS4xLTAuNWgzOC44CgljMC43LDAsMS4xLDAuOSwwLjYsMS40bC03LjcsNy43Yy0wLjMsMC4zLTAuNywwLjUtMS4xLDAuNWgtMzguOGMtMC43LDAtMS4xLTAuOS0wLjYtMS40TDExMi43LDE3NC45eiIvPgo8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDIyNTU3MTYwNTg5MTY1MTU3NTIwMDAwMDE1NDYyNjI0Mjk4Nzk4NTYzMjYxXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNDMuMDkyOSIgeTE9IjEzNi4yMjEyIiB4Mj0iMTE2LjIwODIiIHkyPSIxODcuNzE2MiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMzAuNTM1NCkiPgoJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzAwRkZBMyIvPgoJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0RDMUZGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDIyNTU3MTYwNTg5MTY1MTU3NTIwMDAwMDE1NDYyNjI0Mjk4Nzk4NTYzMjYxXyk7IiBkPSJNMTQ1LjYsMTg5LjFjLTAuMy0wLjMtMC43LTAuNS0xLjEtMC41CgloLTM4LjhjLTAuNywwLTEuMSwwLjktMC42LDEuNGw3LjcsNy43YzAuMywwLjMsMC43LDAuNSwxLjEsMC41aDM4LjhjMC43LDAsMS4xLTAuOSwwLjYtMS40TDE0NS42LDE4OS4xeiIvPgo8L3N2Zz4K',\n blockchains: supported$1.solana\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15() {\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n return _context15.abrupt(\"return\", _optionalChain$z([window, 'optionalAccess', function (_6) {\n return _6.solana;\n }]) && // not Phantom\n !(window.phantom && !window.glow && !window.solana.isGlow && !['isBitKeep'].some(function (identifier) {\n return window.solana && window.solana[identifier];\n })) && // not Coin98\n !window.coin98 && // not BitKeep\n !(_optionalChain$z([window, 'optionalAccess', function (_7) {\n return _7.solana;\n }]) && _optionalChain$z([window, 'optionalAccess', function (_8) {\n return _8.solana;\n }, 'access', function (_9) {\n return _9.isBitKeep;\n }])) && // not Glow\n !window.solana.isGlow && // not trust\n !window.trustwallet && // Brave Wallet\n !window.solana.isBraveWallet && // OKX Wallet\n !_optionalChain$z([window, 'optionalAccess', function (_10) {\n return _10.okxwallet;\n }]));\n\n case 1:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n }\n }]);\n\n return WindowSolana;\n}();\n\nWindowSolana.__initStatic();\n\nWindowSolana.__initStatic2();\n\nfunction _optionalChain$y(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value4;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return (_value4 = value).call.apply(_value4, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Backpack = /*#__PURE__*/function (_WindowSolana) {\n _inherits(Backpack, _WindowSolana);\n\n var _super = _createSuper(Backpack);\n\n function Backpack() {\n _classCallCheck(this, Backpack);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Backpack, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.backpack;\n }\n }, {\n key: \"sign\",\n value: function () {\n var _sign2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(message) {\n var encodedMessage, signature;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n encodedMessage = new TextEncoder().encode(message);\n _context16.next = 3;\n return this.getProvider().signMessage(encodedMessage);\n\n case 3:\n signature = _context16.sent;\n return _context16.abrupt(\"return\", Object.values(signature));\n\n case 5:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function sign(_x12) {\n return _sign2.apply(this, arguments);\n }\n\n return sign;\n }()\n }, {\n key: \"_sendTransaction\",\n value: function _sendTransaction(transaction) {\n return this.getProvider().sendAndConfirm(transaction);\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Backpack',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMDAgMTAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2NsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMTA2ODQwODY0OTg0NTM1NTU0MzQwMDAwMDAwNDc2MjMzMDgyNzcwODcyOTcxXyk7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNFMzNFM0Y7fQo8L3N0eWxlPgo8Zz4KCTxkZWZzPgoJCTxyZWN0IGlkPSJTVkdJRF8xXyIgeD0iMjMuOCIgeT0iMTAuNCIgd2lkdGg9IjUyLjQiIGhlaWdodD0iNzYuMiIvPgoJPC9kZWZzPgoJPGNsaXBQYXRoIGlkPSJTVkdJRF8wMDAwMDE3ODE5NTUzMTM2ODQxNzQ3MDkwMDAwMDAxNDk2Njk4MDAxOTUxNjc4MTk3MF8iPgoJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzFfIiAgc3R5bGU9Im92ZXJmbG93OnZpc2libGU7Ii8+Cgk8L2NsaXBQYXRoPgoJPGcgc3R5bGU9ImNsaXAtcGF0aDp1cmwoI1NWR0lEXzAwMDAwMTc4MTk1NTMxMzY4NDE3NDcwOTAwMDAwMDE0OTY2OTgwMDE5NTE2NzgxOTcwXyk7Ij4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNTUsMTYuNGMyLjgsMCw1LjQsMC40LDcuOCwxLjFjLTIuNC01LjUtNy4yLTcuMS0xMi43LTcuMWMtNS41LDAtMTAuNCwxLjYtMTIuNyw3LjFjMi40LTAuNyw1LTEuMSw3LjctMS4xCgkJCUg1NXogTTQ0LjQsMjEuOWMtMTMuMiwwLTIwLjcsMTAuNC0yMC43LDIzLjF2MTMuMWMwLDEuMywxLjEsMi4zLDIuNCwyLjNoNDcuNmMxLjMsMCwyLjQtMSwyLjQtMi4zVjQ1YzAtMTIuOC04LjctMjMuMS0yMS45LTIzLjEKCQkJSDQ0LjR6IE01MCw0NS4xYzQuNiwwLDguMy0zLjcsOC4zLTguM3MtMy43LTguMy04LjMtOC4zcy04LjMsMy43LTguMyw4LjNTNDUuNCw0NS4xLDUwLDQ1LjF6IE0yMy44LDY4LjFjMC0xLjMsMS4xLTIuMywyLjQtMi4zCgkJCWg0Ny42YzEuMywwLDIuNCwxLDIuNCwyLjNWODJjMCwyLjYtMi4xLDQuNi00LjgsNC42SDI4LjZjLTIuNiwwLTQuOC0yLjEtNC44LTQuNlY2OC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=',\n blockchains: ['solana']\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17() {\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n return _context17.abrupt(\"return\", _optionalChain$y([window, 'optionalAccess', function (_2) {\n return _2.backpack;\n }]) && window.backpack.isBackpack);\n\n case 1:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n }\n }]);\n\n return Backpack;\n}(WindowSolana);\n\nBackpack.__initStatic();\n\nBackpack.__initStatic2();\n\nfunction _optionalChain$x(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value5;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return (_value5 = value).call.apply(_value5, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar sendTransaction$2 = /*#__PURE__*/function () {\n var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(_ref18) {\n var transaction, wallet, transactionCount, provider, signer;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n transaction = _ref18.transaction, wallet = _ref18.wallet;\n transaction = new Transaction(transaction);\n _context18.next = 4;\n return wallet.connectedTo(transaction.blockchain);\n\n case 4:\n _context18.t0 = _context18.sent;\n\n if (!(_context18.t0 == false)) {\n _context18.next = 8;\n break;\n }\n\n _context18.next = 8;\n return wallet.switchTo(transaction.blockchain);\n\n case 8:\n _context18.next = 10;\n return wallet.connectedTo(transaction.blockchain);\n\n case 10:\n _context18.t1 = _context18.sent;\n\n if (!(_context18.t1 == false)) {\n _context18.next = 13;\n break;\n }\n\n throw {\n code: 'WRONG_NETWORK'\n };\n\n case 13:\n _context18.next = 15;\n return transaction.prepare({\n wallet: wallet\n });\n\n case 15:\n _context18.next = 17;\n return request({\n blockchain: transaction.blockchain,\n method: 'transactionCount',\n address: transaction.from\n });\n\n case 17:\n transactionCount = _context18.sent;\n transaction.nonce = transactionCount;\n provider = new ethers.providers.Web3Provider(wallet.getProvider(), 'any');\n signer = provider.getSigner(0);\n _context18.next = 23;\n return submit$2({\n transaction: transaction,\n provider: provider,\n signer: signer\n }).then(function (sentTransaction) {\n if (sentTransaction) {\n transaction.id = sentTransaction.hash;\n transaction.nonce = sentTransaction.nonce || transactionCount;\n transaction.url = Blockchains.findByName(transaction.blockchain).explorerUrlFor({\n transaction: transaction\n });\n if (transaction.sent) transaction.sent(transaction);\n retrieveConfirmedTransaction$2(sentTransaction).then(function () {\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n }).catch(function (error) {\n if (error && error.code && error.code == 'TRANSACTION_REPLACED') {\n if (error.replacement && error.replacement.hash) {\n transaction.id = error.replacement.hash;\n transaction.url = Blockchains.findByName(transaction.blockchain).explorerUrlFor({\n transaction: transaction\n });\n }\n\n if (error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n } else if (error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, error);\n }\n } else {\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, error);\n }\n });\n } else {\n throw 'Submitting transaction failed!';\n }\n });\n\n case 23:\n return _context18.abrupt(\"return\", transaction);\n\n case 24:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n\n return function sendTransaction$2(_x13) {\n return _ref19.apply(this, arguments);\n };\n}();\n\nvar retrieveConfirmedTransaction$2 = function retrieveConfirmedTransaction$2(sentTransaction) {\n return new Promise(function (resolve, reject) {\n try {\n sentTransaction.wait(1).then(resolve).catch(function (error) {\n if (error && _optionalChain$x([error, 'optionalAccess', function (_) {\n return _.stack;\n }, 'optionalAccess', function (_2) {\n return _2.match;\n }, 'call', function (_3) {\n return _3('JSON-RPC error');\n }]) || error && error.toString().match('undefined')) {\n setTimeout(function () {\n retrieveConfirmedTransaction$2(sentTransaction).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(error);\n }\n });\n } catch (error) {\n if (error && _optionalChain$x([error, 'optionalAccess', function (_4) {\n return _4.stack;\n }, 'optionalAccess', function (_5) {\n return _5.match;\n }, 'call', function (_6) {\n return _6('JSON-RPC error');\n }]) || error && error.toString().match('undefined')) {\n setTimeout(function () {\n retrieveConfirmedTransaction$2(sentTransaction).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(error);\n }\n }\n });\n};\n\nvar submit$2 = function submit$2(_ref20) {\n var transaction = _ref20.transaction,\n provider = _ref20.provider,\n signer = _ref20.signer;\n\n if (transaction.method) {\n return submitContractInteraction$2({\n transaction: transaction,\n signer: signer,\n provider: provider\n });\n } else {\n return submitSimpleTransfer$2({\n transaction: transaction,\n signer: signer\n });\n }\n};\n\nvar submitContractInteraction$2 = /*#__PURE__*/function () {\n var _ref22 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(_ref21) {\n var transaction, signer, provider, contract, contractArguments, method, gas;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n transaction = _ref21.transaction, signer = _ref21.signer, provider = _ref21.provider;\n contract = new ethers.Contract(transaction.to, transaction.api, provider);\n contractArguments = transaction.getContractArguments({\n contract: contract\n });\n method = contract.connect(signer)[transaction.getMethodNameWithSignature()];\n _context19.prev = 4;\n _context19.next = 7;\n return estimate(transaction);\n\n case 7:\n gas = _context19.sent;\n gas = gas.add(gas.div(10));\n _context19.next = 13;\n break;\n\n case 11:\n _context19.prev = 11;\n _context19.t0 = _context19[\"catch\"](4);\n\n case 13:\n if (!contractArguments) {\n _context19.next = 19;\n break;\n }\n\n _context19.next = 16;\n return method.apply(void 0, _toConsumableArray(contractArguments).concat([{\n value: Transaction.bigNumberify(transaction.value, transaction.blockchain),\n gasLimit: _optionalChain$x([gas, 'optionalAccess', function (_7) {\n return _7.toHexString;\n }, 'call', function (_8) {\n return _8();\n }])\n }]));\n\n case 16:\n return _context19.abrupt(\"return\", _context19.sent);\n\n case 19:\n _context19.next = 21;\n return method({\n value: Transaction.bigNumberify(transaction.value, transaction.blockchain),\n gasLimit: _optionalChain$x([gas, 'optionalAccess', function (_9) {\n return _9.toHexString;\n }, 'call', function (_10) {\n return _10();\n }])\n });\n\n case 21:\n return _context19.abrupt(\"return\", _context19.sent);\n\n case 22:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, null, [[4, 11]]);\n }));\n\n return function submitContractInteraction$2(_x14) {\n return _ref22.apply(this, arguments);\n };\n}();\n\nvar submitSimpleTransfer$2 = function submitSimpleTransfer$2(_ref23) {\n var transaction = _ref23.transaction,\n signer = _ref23.signer;\n return signer.sendTransaction({\n to: transaction.to,\n value: Transaction.bigNumberify(transaction.value, transaction.blockchain)\n });\n};\n\nfunction _optionalChain$w(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value6;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return (_value6 = value).call.apply(_value6, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar WindowEthereum = /*#__PURE__*/function () {\n function WindowEthereum() {\n var _this8 = this;\n\n _classCallCheck(this, WindowEthereum);\n\n this.name = this.constructor.info.name;\n this.logo = this.constructor.info.logo;\n this.blockchains = this.constructor.info.blockchains;\n\n this.sendTransaction = function (transaction) {\n return sendTransaction$2({\n wallet: _this8,\n transaction: transaction\n });\n };\n }\n\n _createClass(WindowEthereum, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.ethereum;\n }\n }, {\n key: \"account\",\n value: function () {\n var _account2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20() {\n var accounts;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n if (this.getProvider()) {\n _context20.next = 2;\n break;\n }\n\n return _context20.abrupt(\"return\", undefined);\n\n case 2:\n _context20.next = 4;\n return this.getProvider().request({\n method: 'eth_accounts'\n });\n\n case 4:\n accounts = _context20.sent.map(function (address) {\n return ethers.utils.getAddress(address);\n });\n return _context20.abrupt(\"return\", accounts[0]);\n\n case 6:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, this);\n }));\n\n function account() {\n return _account2.apply(this, arguments);\n }\n\n return account;\n }()\n }, {\n key: \"connect\",\n value: function () {\n var _connect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21() {\n var accounts;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n if (this.getProvider()) {\n _context21.next = 2;\n break;\n }\n\n return _context21.abrupt(\"return\", undefined);\n\n case 2:\n _context21.next = 4;\n return this.getProvider().request({\n method: 'eth_requestAccounts'\n });\n\n case 4:\n accounts = _context21.sent.map(function (address) {\n return ethers.utils.getAddress(address);\n });\n return _context21.abrupt(\"return\", accounts[0]);\n\n case 6:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, this);\n }));\n\n function connect() {\n return _connect2.apply(this, arguments);\n }\n\n return connect;\n }()\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var internalCallback;\n\n switch (event) {\n case 'account':\n internalCallback = function internalCallback(accounts) {\n return callback(ethers.utils.getAddress(accounts[0]));\n };\n\n this.getProvider().on('accountsChanged', internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"off\",\n value: function off(event, internalCallback) {\n switch (event) {\n case 'account':\n this.getProvider().removeListener('accountsChanged', internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"connectedTo\",\n value: function () {\n var _connectedTo2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(input) {\n var blockchain;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n _context22.t0 = Blockchains;\n _context22.next = 3;\n return this.getProvider().request({\n method: 'eth_chainId'\n });\n\n case 3:\n _context22.t1 = _context22.sent;\n blockchain = _context22.t0.findById.call(_context22.t0, _context22.t1);\n\n if (blockchain) {\n _context22.next = 7;\n break;\n }\n\n return _context22.abrupt(\"return\", false);\n\n case 7:\n if (!input) {\n _context22.next = 11;\n break;\n }\n\n return _context22.abrupt(\"return\", input === blockchain.name);\n\n case 11:\n return _context22.abrupt(\"return\", blockchain.name);\n\n case 12:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this);\n }));\n\n function connectedTo(_x15) {\n return _connectedTo2.apply(this, arguments);\n }\n\n return connectedTo;\n }()\n }, {\n key: \"addNetwork\",\n value: function addNetwork(blockchainName) {\n var _this9 = this;\n\n return new Promise(function (resolve, reject) {\n var blockchain = Blockchains.findByName(blockchainName);\n\n _this9.getProvider().request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: blockchain.id,\n chainName: blockchain.fullName,\n nativeCurrency: {\n name: blockchain.currency.name,\n symbol: blockchain.currency.symbol,\n decimals: blockchain.currency.decimals\n },\n rpcUrls: [blockchain.rpc],\n blockExplorerUrls: [blockchain.explorer],\n iconUrls: [blockchain.logo]\n }]\n }).then(resolve).catch(reject);\n });\n }\n }, {\n key: \"switchTo\",\n value: function switchTo(blockchainName) {\n var _this10 = this;\n\n return new Promise(function (resolve, reject) {\n var blockchain = Blockchains.findByName(blockchainName);\n\n _this10.getProvider().request({\n method: 'wallet_switchEthereumChain',\n params: [{\n chainId: blockchain.id\n }]\n }).then(resolve).catch(function (error) {\n if (error.code === 4902) {\n // chain not yet added\n _this10.addNetwork(blockchainName).then(function () {\n return _this10.switchTo(blockchainName).then(resolve);\n }).catch(reject);\n } else {\n reject(error);\n }\n });\n });\n }\n }, {\n key: \"transactionCount\",\n value: function transactionCount(_ref24) {\n var blockchain = _ref24.blockchain,\n address = _ref24.address;\n return request({\n blockchain: blockchain,\n method: 'transactionCount',\n address: address\n });\n }\n }, {\n key: \"sign\",\n value: function () {\n var _sign3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(message) {\n var provider, account, signature, _provider, signer, _signature;\n\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n if (!(_typeof(message) === 'object')) {\n _context23.next = 16;\n break;\n }\n\n provider = this.getProvider();\n _context23.next = 4;\n return this.account();\n\n case 4:\n account = _context23.sent;\n _context23.next = 7;\n return this.connectedTo(Blockchains.findByNetworkId(message.domain.chainId).name);\n\n case 7:\n _context23.t0 = _context23.sent;\n\n if (!(_context23.t0 === false)) {\n _context23.next = 10;\n break;\n }\n\n throw {\n code: 'WRONG_NETWORK'\n };\n\n case 10:\n _context23.next = 12;\n return provider.request({\n method: 'eth_signTypedData_v4',\n params: [account, message],\n from: account\n });\n\n case 12:\n signature = _context23.sent;\n return _context23.abrupt(\"return\", signature);\n\n case 16:\n if (!(typeof message === 'string')) {\n _context23.next = 25;\n break;\n }\n\n _context23.next = 19;\n return this.account();\n\n case 19:\n _provider = new ethers.providers.Web3Provider(this.getProvider(), 'any');\n signer = _provider.getSigner(0);\n _context23.next = 23;\n return signer.signMessage(message);\n\n case 23:\n _signature = _context23.sent;\n return _context23.abrupt(\"return\", _signature);\n\n case 25:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this);\n }));\n\n function sign(_x16) {\n return _sign3.apply(this, arguments);\n }\n\n return sign;\n }()\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Ethereum Wallet',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0NDYuNCAzNzYuOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQ2LjQgMzc2Ljg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojODI4NDg3O30KCS5zdDF7ZmlsbDojMzQzNDM0O30KCS5zdDJ7ZmlsbDojOEM4QzhDO30KCS5zdDN7ZmlsbDojM0MzQzNCO30KCS5zdDR7ZmlsbDojMTQxNDE0O30KCS5zdDV7ZmlsbDojMzkzOTM5O30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTM4MS43LDExMC4yaDY0LjdWNDYuNWMwLTI1LjctMjAuOC00Ni41LTQ2LjUtNDYuNUg0Ni41QzIwLjgsMCwwLDIwLjgsMCw0Ni41djY1LjFoMzUuN2wyNi45LTI2LjkKCWMxLjUtMS41LDMuNi0yLjUsNS43LTIuN2wwLDBoMC40aDc4LjZjNS4zLTI1LjUsMzAuMi00Miw1NS43LTM2LjdjMjUuNSw1LjMsNDIsMzAuMiwzNi43LDU1LjdjLTEuNiw3LjUtNC45LDE0LjYtOS44LDIwLjUKCWMtMC45LDEuMS0xLjksMi4yLTMsMy4zYy0xLjEsMS4xLTIuMiwyLjEtMy4zLDNjLTIwLjEsMTYuNi00OS45LDEzLjgtNjYuNS02LjNjLTQuOS01LjktOC4zLTEzLTkuOC0yMC42SDczLjJsLTI2LjksMjYuOAoJYy0xLjUsMS41LTMuNiwyLjUtNS43LDIuN2wwLDBoLTAuNGgtMC4xaC0wLjVIMHY3NGgyOC44bDE4LjItMTguMmMxLjUtMS42LDMuNi0yLjUsNS43LTIuN2wwLDBoMC40aDI5LjkKCWM1LjItMjUuNSwzMC4yLTQxLjksNTUuNy0zNi43czQxLjksMzAuMiwzNi43LDU1LjdzLTMwLjIsNDEuOS01NS43LDM2LjdjLTE4LjUtMy44LTMyLjktMTguMi0zNi43LTM2LjdINTcuN2wtMTguMiwxOC4zCgljLTEuNSwxLjUtMy42LDIuNS01LjcsMi43bDAsMGgtMC40SDB2MzQuMmg1Ni4zYzAuMiwwLDAuMywwLDAuNSwwaDAuMWgwLjRsMCwwYzIuMiwwLjIsNC4yLDEuMiw1LjgsMi44bDI4LDI4aDU3LjcKCWM1LjMtMjUuNSwzMC4yLTQyLDU1LjctMzYuN3M0MiwzMC4yLDM2LjcsNTUuN2MtMS43LDguMS01LjUsMTUuNy0xMSwyMS45Yy0wLjYsMC43LTEuMiwxLjMtMS45LDJzLTEuMywxLjMtMiwxLjkKCWMtMTkuNSwxNy4zLTQ5LjMsMTUuNi02Ni43LTMuOWMtNS41LTYuMi05LjMtMTMuNy0xMS0yMS45SDg3LjFjLTEuMSwwLTIuMS0wLjItMy4xLTAuNWgtMC4xbC0wLjMtMC4xbC0wLjItMC4xbC0wLjItMC4xbC0wLjMtMC4xCgloLTAuMWMtMC45LTAuNS0xLjgtMS4xLTIuNi0xLjhsLTI4LTI4SDB2NTMuNWMwLjEsMjUuNywyMC45LDQ2LjQsNDYuNSw0Ni40aDM1My4zYzI1LjcsMCw0Ni41LTIwLjgsNDYuNS00Ni41di02My42aC02NC43CgljLTQzLjIsMC03OC4yLTM1LTc4LjItNzguMmwwLDBDMzAzLjUsMTQ1LjIsMzM4LjUsMTEwLjIsMzgxLjcsMTEwLjJ6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMjAuOSwyOTguMWMwLTE0LjQtMTEuNi0yNi0yNi0yNnMtMjYsMTEuNi0yNiwyNnMxMS42LDI2LDI2LDI2UzIyMC45LDMxMi40LDIyMC45LDI5OC4xTDIyMC45LDI5OC4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjE5LjYsOTEuNWMwLTE0LjQtMTEuNi0yNi0yNi0yNnMtMjYsMTEuNi0yNiwyNnMxMS42LDI2LDI2LDI2UzIxOS42LDEwNS44LDIxOS42LDkxLjV6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zODIuMiwxMjguOGgtMC41Yy0zMi45LDAtNTkuNiwyNi43LTU5LjYsNTkuNmwwLDBsMCwwYzAsMzIuOSwyNi43LDU5LjYsNTkuNiw1OS42bDAsMGgwLjUKCWMzMi45LDAsNTkuNi0yNi43LDU5LjYtNTkuNmwwLDBDNDQxLjgsMTU1LjQsNDE1LjEsMTI4LjgsMzgyLjIsMTI4Ljh6IE0zOTYuNiwyMTkuNGgtMzFsOC45LTMyLjVjLTcuNy0zLjctMTEtMTIuOS03LjQtMjAuNgoJYzMuNy03LjcsMTIuOS0xMSwyMC42LTcuNGM3LjcsMy43LDExLDEyLjksNy40LDIwLjZjLTEuNSwzLjItNC4xLDUuOC03LjQsNy40TDM5Ni42LDIxOS40eiIvPgo8ZyBpZD0iTGF5ZXJfeDAwMjBfMSI+Cgk8ZyBpZD0iXzE0MjEzOTQzNDI0MDAiPgoJCTxnPgoJCQk8cG9seWdvbiBjbGFzcz0ic3QxIiBwb2ludHM9IjEyOSwxNjYuMiAxMjguNywxNjcuMyAxMjguNywyMDEuNCAxMjksMjAxLjcgMTQ0LjgsMTkyLjQgCQkJIi8+CgkJCTxwb2x5Z29uIGNsYXNzPSJzdDIiIHBvaW50cz0iMTI5LDE2Ni4yIDExMy4yLDE5Mi40IDEyOSwyMDEuNyAxMjksMTg1LjIgCQkJIi8+CgkJCTxwb2x5Z29uIGNsYXNzPSJzdDMiIHBvaW50cz0iMTI5LDIwNC43IDEyOC44LDIwNC45IDEyOC44LDIxNyAxMjksMjE3LjYgMTQ0LjgsMTk1LjQgCQkJIi8+CgkJCTxwb2x5Z29uIGNsYXNzPSJzdDIiIHBvaW50cz0iMTI5LDIxNy42IDEyOSwyMDQuNyAxMTMuMiwxOTUuNCAJCQkiLz4KCQkJPHBvbHlnb24gY2xhc3M9InN0NCIgcG9pbnRzPSIxMjksMjAxLjcgMTQ0LjgsMTkyLjQgMTI5LDE4NS4yIAkJCSIvPgoJCQk8cG9seWdvbiBjbGFzcz0ic3Q1IiBwb2ludHM9IjExMy4yLDE5Mi40IDEyOSwyMDEuNyAxMjksMTg1LjIgCQkJIi8+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24() {\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n return _context24.abrupt(\"return\", _optionalChain$w([window, 'optionalAccess', function (_38) {\n return _38.ethereum;\n }]) && // not MetaMask\n !(_optionalChain$w([window, 'optionalAccess', function (_39) {\n return _39.ethereum;\n }, 'optionalAccess', function (_40) {\n return _40.isMetaMask;\n }]) && Object.keys(window.ethereum).filter(function (key) {\n return key.match(/^is(?!Connected)(?!PocketUniverse)(?!RevokeCash)/);\n }).length == 1) && // not Coin98\n !_optionalChain$w([window, 'optionalAccess', function (_41) {\n return _41.coin98;\n }]) && // not Trust Wallet\n !(_optionalChain$w([window, 'optionalAccess', function (_42) {\n return _42.ethereum;\n }, 'optionalAccess', function (_43) {\n return _43.isTrust;\n }]) || _optionalChain$w([window, 'optionalAccess', function (_44) {\n return _44.ethereum;\n }, 'optionalAccess', function (_45) {\n return _45.isTrustWallet;\n }])) && // not crypto.com\n !_optionalChain$w([window, 'optionalAccess', function (_46) {\n return _46.ethereum;\n }, 'optionalAccess', function (_47) {\n return _47.isDeficonnectProvider;\n }]) && // not HyperPay\n !_optionalChain$w([window, 'optionalAccess', function (_48) {\n return _48.ethereum;\n }, 'optionalAccess', function (_49) {\n return _49.isHyperPay;\n }]) && // not Phantom\n !(window.phantom && !window.glow && !_optionalChain$w([window, 'optionalAccess', function (_50) {\n return _50.solana;\n }, 'optionalAccess', function (_51) {\n return _51.isGlow;\n }]) && !['isBitKeep'].some(function (identifier) {\n return window.solana && window.solana[identifier];\n })) && // not Rabby\n !_optionalChain$w([window, 'optionalAccess', function (_52) {\n return _52.ethereum;\n }, 'optionalAccess', function (_53) {\n return _53.isRabby;\n }]) && // not Backpack\n !_optionalChain$w([window, 'optionalAccess', function (_54) {\n return _54.backpack;\n }, 'optionalAccess', function (_55) {\n return _55.isBackpack;\n }]) && // not TokenPocket\n !_optionalChain$w([window, 'optionalAccess', function (_56) {\n return _56.ethereum;\n }, 'optionalAccess', function (_57) {\n return _57.isTokenPocket;\n }]) && // not BitKeep\n !_optionalChain$w([window, 'optionalAccess', function (_58) {\n return _58.ethereum;\n }, 'optionalAccess', function (_59) {\n return _59.isBitKeep;\n }]) && // not Coinbase\n !(_optionalChain$w([window, 'optionalAccess', function (_60) {\n return _60.ethereum;\n }, 'optionalAccess', function (_61) {\n return _61.isCoinbaseWallet;\n }]) || _optionalChain$w([window, 'optionalAccess', function (_62) {\n return _62.ethereum;\n }, 'optionalAccess', function (_63) {\n return _63.isWalletLink;\n }])) && // MetaMask through ProviderMap\n !_optionalChain$w([window, 'optionalAccess', function (_64) {\n return _64.ethereum;\n }, 'optionalAccess', function (_65) {\n return _65.providerMap;\n }, 'optionalAccess', function (_66) {\n return _66.has;\n }, 'call', function (_67) {\n return _67('MetaMask');\n }]) && // Brave Wallet\n !_optionalChain$w([window, 'optionalAccess', function (_68) {\n return _68.ethereum;\n }, 'optionalAccess', function (_69) {\n return _69.isBraveWallet;\n }]) && // Uniswap Wallet\n !_optionalChain$w([window, 'optionalAccess', function (_70) {\n return _70.ethereum;\n }, 'optionalAccess', function (_71) {\n return _71.isUniswapWallet;\n }]) && // Rainbow\n !_optionalChain$w([window, 'optionalAccess', function (_72) {\n return _72.ethereum;\n }, 'optionalAccess', function (_73) {\n return _73.isRainbow;\n }]) && // OKX Wallet\n !_optionalChain$w([window, 'optionalAccess', function (_74) {\n return _74.okxwallet;\n }]));\n\n case 1:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24);\n }));\n }\n }]);\n\n return WindowEthereum;\n}();\n\nWindowEthereum.__initStatic();\n\nWindowEthereum.__initStatic2();\n\nfunction _optionalChain$v(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value7;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return (_value7 = value).call.apply(_value7, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Binance = /*#__PURE__*/function (_WindowEthereum) {\n _inherits(Binance, _WindowEthereum);\n\n var _super2 = _createSuper(Binance);\n\n function Binance() {\n _classCallCheck(this, Binance);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Binance, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.BinanceChain;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Binance Wallet',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgMTkzLjY4Ij48cmVjdCB3aWR0aD0iMTkyIiBoZWlnaHQ9IjE5My42OCIgZmlsbD0iIzFlMjAyNCIvPjxwYXRoIGQ9Im01Ni45Miw0Ni41M2wzOS4wOC0yMi41NCwzOS4wOCwyMi41NC0xNC4zNSw4LjM2LTI0LjczLTE0LjE4LTI0LjczLDE0LjE4LTE0LjM1LTguMzZabTc4LjE3LDI4LjUzbC0xNC4zNS04LjM2LTI0LjczLDE0LjI3LTI0LjczLTE0LjI3LTE0LjM1LDguMzZ2MTYuNzFsMjQuNzMsMTQuMTh2MjguNDVsMTQuMzUsOC4zNiwxNC4zNS04LjM2di0yOC40NWwyNC43My0xNC4yN3YtMTYuNjNabTAsNDUuMTZ2LTE2LjcxbC0xNC4zNSw4LjM2djE2LjcxbDE0LjM1LTguMzZabTEwLjIxLDUuODJsLTI0LjczLDE0LjI3djE2LjcxbDM5LjA4LTIyLjU0di00NS4yNWwtMTQuMzUsOC4zNnYyOC40NVptLTE0LjM1LTY1LjI1bDE0LjM1LDguMzZ2MTYuNzFsMTQuMzUtOC4zNnYtMTYuNzFsLTE0LjM1LTguMzYtMTQuMzUsOC4zNlptLTQ5LjMsODUuNnYxNi43MWwxNC4zNSw4LjM2LDE0LjM1LTguMzZ2LTE2LjcxbC0xNC4zNSw4LjM2LTE0LjM1LTguMzZabS0yNC43My0yNi4xN2wxNC4zNSw4LjM2di0xNi43MWwtMTQuMzUtOC4zNnYxNi43MVptMjQuNzMtNTkuNDNsMTQuMzUsOC4zNiwxNC4zNS04LjM2LTE0LjM1LTguMzYtMTQuMzUsOC4zNlptLTM0Ljk1LDguMzZsMTQuMzUtOC4zNi0xNC4zNS04LjM2LTE0LjM1LDguMzZ2MTYuNzFsMTQuMzUsOC4zNnYtMTYuNzFabTAsMjguNDVsLTE0LjM1LTguMzZ2NDUuMTZsMzkuMDgsMjIuNTR2LTE2LjcxbC0yNC43My0xNC4yN3MwLTI4LjM2LDAtMjguMzZaIiBmaWxsPSIjZjBiOTBiIi8+PC9zdmc+\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25() {\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n return _context25.abrupt(\"return\", _optionalChain$v([window, 'optionalAccess', function (_2) {\n return _2.BinanceChain;\n }]) && !window.coin98 && !window.trustwallet);\n\n case 1:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25);\n }));\n }\n }]);\n\n return Binance;\n}(WindowEthereum);\n\nBinance.__initStatic();\n\nBinance.__initStatic2();\n\nvar logos = {\n exodus: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0yOTguMjAzIDgzLjc2NDVMMTcwLjQ0OSAwVjQ2LjgzMzJMMjUyLjQwNSAxMDAuMDg5TDI0Mi43NjMgMTMwLjU5OEgxNzAuNDQ5VjE2OS40MDJIMjQyLjc2M0wyNTIuNDA1IDE5OS45MTFMMTcwLjQ0OSAyNTMuMTY3VjMwMEwyOTguMjAzIDIxNi41MDNMMjc3LjMxMyAxNTAuMTM0TDI5OC4yMDMgODMuNzY0NVoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xNjYxXzI5NSkiLz4KPHBhdGggZD0iTTU5LjMwMDcgMTY5LjQwMkgxMzEuMzQ2VjEzMC41OThINTkuMDMyOUw0OS42NTg5IDEwMC4wODlMMTMxLjM0NiA0Ni44MzMyVjBMMy41OTI1MyA4My43NjQ1TDI0LjQ4MzEgMTUwLjEzNEwzLjU5MjUzIDIxNi41MDNMMTMxLjYxNCAzMDBWMjUzLjE2N0w0OS42NTg5IDE5OS45MTFMNTkuMzAwNyAxNjkuNDAyWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzE2NjFfMjk1KSIvPgo8bWFzayBpZD0ibWFzazBfMTY2MV8yOTUiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjMiIHk9IjAiIHdpZHRoPSIyOTYiIGhlaWdodD0iMzAwIj4KPHBhdGggZD0iTTI5OC4yMDQgODMuNzY0NUwxNzAuNDUgMFY0Ni44MzMyTDI1Mi40MDUgMTAwLjA4OUwyNDIuNzYzIDEzMC41OThIMTcwLjQ1VjE2OS40MDJIMjQyLjc2M0wyNTIuNDA1IDE5OS45MTFMMTcwLjQ1IDI1My4xNjdWMzAwTDI5OC4yMDQgMjE2LjUwM0wyNzcuMzEzIDE1MC4xMzRMMjk4LjIwNCA4My43NjQ1WiIgZmlsbD0idXJsKCNwYWludDJfbGluZWFyXzE2NjFfMjk1KSIvPgo8cGF0aCBkPSJNNTkuMzAxIDE2OS40MDJIMTMxLjM0N1YxMzAuNTk4SDU5LjAzMzJMNDkuNjU5MiAxMDAuMDg5TDEzMS4zNDcgNDYuODMzMlYwTDMuNTkyNzcgODMuNzY0NUwyNC40ODM0IDE1MC4xMzRMMy41OTI3NyAyMTYuNTAzTDEzMS42MTUgMzAwVjI1My4xNjdMNDkuNjU5MiAxOTkuOTExTDU5LjMwMSAxNjkuNDAyWiIgZmlsbD0idXJsKCNwYWludDNfbGluZWFyXzE2NjFfMjk1KSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMTY2MV8yOTUpIj4KPHJlY3QgeD0iMy43NTAyNCIgd2lkdGg9IjI5Mi41IiBoZWlnaHQ9IjMwMCIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyXzE2NjFfMjk1KSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTY2MV8yOTUiIHgxPSIyNTYuODc1IiB5MT0iMzIwLjYyNSIgeDI9IjE3MS4zIiB5Mj0iLTMyLjk0NTkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzBCNDZGOSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNCQkZCRTAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDFfbGluZWFyXzE2NjFfMjk1IiB4MT0iMjU2Ljg3NSIgeTE9IjMyMC42MjUiIHgyPSIxNzEuMyIgeTI9Ii0zMi45NDU5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMwQjQ2RjkiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQkJGQkUwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl8xNjYxXzI5NSIgeDE9IjI1Ni44NzUiIHkxPSIzMjAuNjI1IiB4Mj0iMTcxLjMiIHkyPSItMzIuOTQ1OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMEI0NkY5Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0JCRkJFMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXJfMTY2MV8yOTUiIHgxPSIyNTYuODc1IiB5MT0iMzIwLjYyNSIgeDI9IjE3MS4zIiB5Mj0iLTMyLjk0NTkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzBCNDZGOSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNCQkZCRTAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDRfbGluZWFyXzE2NjFfMjk1IiB4MT0iMjIuNTAwMiIgeTE9IjY3LjUiIHgyPSIxNzAuNjI1IiB5Mj0iMTc4LjEyNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMTE5NzkyIiBzdG9wLWNvbG9yPSIjODk1MkZGIiBzdG9wLW9wYWNpdHk9IjAuODciLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREFCREZGIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n phantom: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMjggMTI4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMjggMTI4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0FCOUZGMjt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMy43LDEwOWMxMy42LDAsMjMuOS0xMS45LDMwLTIxLjJjLTAuNywyLjEtMS4yLDQuMS0xLjIsNi4xYzAsNS41LDMuMSw5LjQsOS4zLDkuNGM4LjUsMCwxNy42LTcuNSwyMi4zLTE1LjUKCWMtMC4zLDEuMi0wLjUsMi4yLTAuNSwzLjJjMCwzLjgsMi4xLDYuMiw2LjUsNi4yYzEzLjgsMCwyNy43LTI0LjUsMjcuNy00NS45YzAtMTYuNy04LjQtMzEuNC0yOS42LTMxLjQKCWMtMzcuMiwwLTc3LjMsNDUuNS03Ny4zLDc0LjhDMTEuMSwxMDYuMywxNy4zLDEwOSwyMy43LDEwOXogTTc1LjUsNDkuNWMwLTQuMSwyLjMtNy4xLDUuNy03LjFjMy4zLDAsNS42LDIuOSw1LjYsNy4xCgljMCw0LjEtMi4zLDcuMS01LjYsNy4xQzc3LjgsNTYuNyw3NS41LDUzLjcsNzUuNSw0OS41eiBNOTMuMiw0OS41YzAtNC4xLDIuMy03LjEsNS43LTcuMWMzLjMsMCw1LjYsMi45LDUuNiw3LjEKCWMwLDQuMS0yLjMsNy4xLTUuNiw3LjFDOTUuNSw1Ni43LDkzLjIsNTMuNyw5My4yLDQ5LjV6Ii8+Cjwvc3ZnPgo=\",\n coin98: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MC43IDQwIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA0MC43IDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsPSIjRDlCNDMyIiBkPSJtMzMuMyAwaC0yNS45Yy00LjEgMC03LjQgMy4zLTcuNCA3LjN2MjUuNGMwIDQgMy4zIDcuMyA3LjQgNy4zaDI1LjljNC4xIDAgNy40LTMuMyA3LjQtNy4zdi0yNS40YzAtNC0zLjMtNy4zLTcuNC03LjN6Ii8+CjxwYXRoIGZpbGw9IiMyNTI1MjUiIGQ9Im0zMy4zIDBoLTI1LjljLTQuMSAwLTcuNCAzLjMtNy40IDcuM3YyNS40YzAgNCAzLjMgNy4zIDcuNCA3LjNoMjUuOWM0LjEgMCA3LjQtMy4zIDcuNC03LjN2LTI1LjRjMC00LTMuMy03LjMtNy40LTcuM3ptLTYuMyAxMGMzIDAgNS41IDIuNCA1LjUgNS40IDAgMC45LTAuMiAxLjgtMC42IDIuNi0wLjctMC41LTEuNS0xLTIuMy0xLjMgMC4yLTAuNCAwLjMtMC45IDAuMy0xLjMgMC0xLjUtMS4zLTIuOC0yLjgtMi44LTEuNiAwLTIuOCAxLjMtMi44IDIuOCAwIDAuNSAwLjEgMC45IDAuMyAxLjMtMC44IDAuMy0xLjYgMC43LTIuMyAxLjMtMC41LTAuOC0wLjYtMS43LTAuNi0yLjYtMC4xLTMgMi4zLTUuNCA1LjMtNS40em0tMTMuMyAyMGMtMyAwLTUuNS0yLjQtNS41LTUuNGgyLjZjMCAxLjUgMS4zIDIuOCAyLjggMi44czIuOC0xLjMgMi44LTIuOGgyLjZjMC4yIDMtMi4zIDUuNC01LjMgNS40em0wLTcuNWMtMy41IDAtNi4zLTIuOC02LjMtNi4yczIuOC02LjMgNi4zLTYuMyA2LjQgMi44IDYuNCA2LjNjMCAzLjQtMi45IDYuMi02LjQgNi4yem0xMy4zIDcuNWMtMy41IDAtNi40LTIuOC02LjQtNi4yIDAtMy41IDIuOC02LjMgNi40LTYuMyAzLjUgMCA2LjMgMi44IDYuMyA2LjMgMC4xIDMuNC0yLjggNi4yLTYuMyA2LjJ6bTMuOC02LjNjMCAyLjEtMS43IDMuNy0zLjggMy43cy0zLjgtMS43LTMuOC0zLjdjMC0yLjEgMS43LTMuNyAzLjgtMy43IDIuMSAwLjEgMy44IDEuNyAzLjggMy43em0tMTMuNC03LjRjMCAyLjEtMS43IDMuNy0zLjggMy43cy0zLjgtMS43LTMuOC0zLjdjMC0yLjEgMS43LTMuNyAzLjgtMy43IDIuMiAwIDMuOCAxLjYgMy44IDMuN3oiLz4KPC9zdmc+Cg==\",\n coinbase: \"data:image/svg+xml;base64,PHN2ZyBpZD0nTGF5ZXJfMScgZGF0YS1uYW1lPSdMYXllciAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgNDg4Ljk2IDQ4OC45Nic+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50KTt9LmNscy0ye2ZpbGw6IzQzNjFhZDt9PC9zdHlsZT48bGluZWFyR3JhZGllbnQgaWQ9J2xpbmVhci1ncmFkaWVudCcgeDE9JzI1MCcgeTE9JzcuMzUnIHgyPScyNTAnIHkyPSc0OTYuMzInIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDUwMiknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyMzZDViYTknLz48c3RvcCBvZmZzZXQ9JzEnIHN0b3AtY29sb3I9JyM0ODY4YjEnLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00yNTAsNS42OEMxMTQuODcsNS42OCw1LjUyLDExNSw1LjUyLDI1MC4xN1MxMTQuODcsNDk0LjY1LDI1MCw0OTQuNjUsNDk0LjQ4LDM4NS4yOSw0OTQuNDgsMjUwLjE3LDM4NS4xMyw1LjY4LDI1MCw1LjY4Wm0wLDM4Ny41NEExNDMuMDYsMTQzLjA2LDAsMSwxLDM5My4wNSwyNTAuMTcsMTQzLjExLDE0My4xMSwwLDAsMSwyNTAsMzkzLjIyWicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLTUuNTIgLTUuNjgpJy8+PHBhdGggY2xhc3M9J2Nscy0yJyBkPSdNMjg0LjY5LDI5Ni4wOUgyMTUuMzFhMTEsMTEsMCwwLDEtMTAuOS0xMC45VjIxNS40OGExMSwxMSwwLDAsMSwxMC45LTEwLjkxSDI4NWExMSwxMSwwLDAsMSwxMC45LDEwLjkxdjY5LjcxQTExLjA3LDExLjA3LDAsMCwxLDI4NC42OSwyOTYuMDlaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtNS41MiAtNS42OCknLz48L3N2Zz4=\",\n trust: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI4LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzOTkuOCA0MTUuMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzk5LjggNDE1LjE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMDUwMEZGO30KCS5zdDF7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cjwvc3R5bGU+CjxnPgoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU1LjUsOTJsMTQ0LjQtNDd2MzI1Qzk2LjcsMzI2LjcsNTUuNSwyNDMuNiw1NS41LDE5Ni43TDU1LjUsOTJMNTUuNSw5MnoiLz4KCQoJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzA1Ljk5NTMiIHkxPSIxODQ2LjAwMDIiIHgyPSIxOTYuODc1MiIgeTI9IjIxODkuMzQwMyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgLTE4MjMuNzM5NykiPgoJCTxzdG9wICBvZmZzZXQ9IjIuMDAwMDAwZS0wMiIgc3R5bGU9InN0b3AtY29sb3I6IzAwMDBGRiIvPgoJCTxzdG9wICBvZmZzZXQ9IjguMDAwMDAwZS0wMiIgc3R5bGU9InN0b3AtY29sb3I6IzAwOTRGRiIvPgoJCTxzdG9wICBvZmZzZXQ9IjAuMTYiIHN0eWxlPSJzdG9wLWNvbG9yOiM0OEZGOTEiLz4KCQk8c3RvcCAgb2Zmc2V0PSIwLjQyIiBzdHlsZT0ic3RvcC1jb2xvcjojMDA5NEZGIi8+CgkJPHN0b3AgIG9mZnNldD0iMC42OCIgc3R5bGU9InN0b3AtY29sb3I6IzAwMzhGRiIvPgoJCTxzdG9wICBvZmZzZXQ9IjAuOSIgc3R5bGU9InN0b3AtY29sb3I6IzA1MDBGRiIvPgoJPC9saW5lYXJHcmFkaWVudD4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNDQuNCw5MkwxOTkuOSw0NXYzMjVjMTAzLjItNDMuMywxNDQuNS0xMjYuNCwxNDQuNS0xNzMuM1Y5MkwzNDQuNCw5MnoiLz4KPC9nPgo8L3N2Zz4K\",\n brave: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNTYgMzAxIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyNTYgMzAxIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoKCTxwYXRoIGZpbGw9IiNGMTVBMjIiIGQ9Im0yMzYgMTA1LjQtNy44LTIxLjIgNS40LTEyLjJjMC43LTEuNiAwLjMtMy40LTAuOC00LjZsLTE0LjgtMTQuOWMtNi41LTYuNS0xNi4xLTguOC0yNC44LTUuN2wtNC4xIDEuNC0yMi42LTI0LjUtMzguMi0wLjNoLTAuM2wtMzguNSAwLjMtMjIuNiAyNC43LTQtMS40Yy04LjgtMy4xLTE4LjUtMC44LTI1IDUuOGwtMTUgMTUuMmMtMSAxLTEuMyAyLjQtMC44IDMuN2w1LjcgMTIuNy03LjggMjEuMiA1LjEgMTkuMiAyMyA4Ny4yYzIuNiAxMCA4LjcgMTguOCAxNy4yIDI0LjkgMCAwIDI3LjggMTkuNyA1NS4zIDM3LjUgMi40IDEuNiA1IDIuNyA3LjcgMi43czUuMi0xLjEgNy43LTIuN2MzMC45LTIwLjIgNTUuMy0zNy41IDU1LjMtMzcuNSA4LjQtNi4xIDE0LjUtMTQuOCAxNy4xLTI0LjlsMjIuOC04Ny4yIDQuOC0xOS40eiIvPgoJPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0ibTEzMy4xIDE3OS40Yy0xLTAuNC0yLjEtMC44LTIuNC0wLjhoLTIuN2MtMC4zIDAtMS40IDAuMy0yLjQgMC44bC0xMSA0LjZjLTEgMC40LTIuNyAxLjItMy43IDEuN2wtMTYuNSA4LjZjLTEgMC41LTEuMSAxLjQtMC4yIDIuMWwxNC42IDEwLjNjMC45IDAuNyAyLjQgMS44IDMuMiAyLjVsNi41IDUuNmMwLjggMC44IDIuMiAxLjkgMyAyLjdsNi4yIDUuNmMwLjggMC44IDIuMiAwLjggMyAwbDYuNC01LjZjMC44LTAuOCAyLjItMS45IDMtMi43bDYuNS01LjdjMC44LTAuOCAyLjMtMS45IDMuMi0yLjVsMTQuNi0xMC40YzAuOS0wLjcgMC44LTEuNi0wLjItMi4xbC0xNi41LTguNGMtMS0wLjUtMi43LTEuMy0zLjctMS43bC0xMC45LTQuNnoiLz4KCTxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Im0yMTIuMiAxMDkuMmMwLjMtMS4xIDAuMy0xLjUgMC4zLTEuNSAwLTEuMS0wLjEtMy0wLjMtNGwtMC44LTIuNGMtMC41LTEtMS40LTIuNi0yLTMuNWwtOS41LTE0LjFjLTAuNi0wLjktMS43LTIuNC0yLjQtMy4zbC0xMi4zLTE1LjRjLTAuNy0wLjgtMS40LTEuNi0xLjQtMS41aC0wLjJzLTAuOSAwLjItMiAwLjNsLTE4LjggMy43Yy0xLjEgMC4zLTIuOSAwLjYtNCAwLjhsLTAuMyAwLjFjLTEuMSAwLjItMi45IDAuMS00LTAuM2wtMTUuOC01LjFjLTEuMS0wLjMtMi45LTAuOC0zLjktMS4xIDAgMC0zLjItMC44LTUuOC0wLjctMi42IDAtNS44IDAuNy01LjggMC43LTEuMSAwLjMtMi45IDAuOC0zLjkgMS4xbC0xNS44IDUuMWMtMS4xIDAuMy0yLjkgMC40LTQgMC4zbC0wLjMtMC4xYy0xLjEtMC4yLTIuOS0wLjYtNC0wLjhsLTE5LTMuNWMtMS4xLTAuMy0yLTAuMy0yLTAuM2gtMC4yYy0wLjEgMC0wLjggMC43LTEuNCAxLjVsLTEyLjMgMTUuMmMtMC43IDAuOC0xLjggMi40LTIuNCAzLjNsLTkuNSAxNC4xYy0wLjYgMC45LTEuNSAyLjUtMiAzLjVsLTAuOCAyLjRjLTAuMiAxLjEtMC4zIDMtMC4zIDQuMSAwIDAgMCAwLjMgMC4zIDEuNSAwLjYgMiAyIDMuOSAyIDMuOSAwLjcgMC44IDEuOSAyLjMgMi43IDNsMjcuOSAyOS43YzAuOCAwLjggMSAyLjQgMC42IDMuNGwtNS44IDEzLjhjLTAuNCAxLTAuNSAyLjctMC4xIDMuOGwxLjYgNC4zYzEuMyAzLjYgMy42IDYuOCA2LjcgOS4zbDUuNyA0LjZjMC44IDAuNyAyLjQgMC45IDMuNCAwLjRsMTcuOS04LjVjMS0wLjUgMi41LTEuNSAzLjQtMi4zbDEyLjgtMTEuNmMxLjktMS43IDEuOS00LjYgMC4zLTYuNGwtMjYuOS0xOC4xYy0wLjktMC42LTEuMy0xLjktMC44LTNsMTEuOC0yMi4zYzAuNS0xIDAuNi0yLjYgMC4yLTMuNmwtMS40LTMuM2MtMC40LTEtMS43LTIuMi0yLjctMi42bC0zNC45LTEzYy0xLTAuNC0xLTAuOCAwLjEtMC45bDIyLjQtMi4xYzEuMS0wLjEgMi45IDAuMSA0IDAuM2wxOS45IDUuNmMxLjEgMC4zIDEuOCAxLjQgMS42IDIuNWwtNyAzNy44Yy0wLjIgMS4xLTAuMiAyLjYgMC4xIDMuNXMxLjMgMS42IDIuNCAxLjlsMTMuOCAzYzEuMSAwLjMgMi45IDAuMyA0IDBsMTIuOS0zYzEuMS0wLjMgMi4yLTEuMSAyLjQtMS45IDAuMy0wLjggMC4zLTIuNCAwLjEtMy41bC02LjgtMzcuOWMtMC4yLTEuMSAwLjUtMi4zIDEuNi0yLjVsMTkuOS01LjZjMS4xLTAuMyAyLjktMC40IDQtMC4zbDIyLjQgMi4xYzEuMSAwLjEgMS4yIDAuNSAwLjEgMC45bC0zNC43IDEzLjJjLTEgMC40LTIuMyAxLjUtMi43IDIuNmwtMS40IDMuM2MtMC40IDEtMC40IDIuNyAwLjIgMy42bDExLjkgMjIuM2MwLjUgMSAwLjIgMi4zLTAuOCAzbC0yNi45IDE4LjJjLTEuOCAxLjgtMS42IDQuNyAwLjMgNi40bDEyLjggMTEuNmMwLjggMC44IDIuNCAxLjggMy40IDIuMmwxOCA4LjVjMSAwLjUgMi41IDAuMyAzLjQtMC40bDUuNy00LjZjMy0yLjQgNS4zLTUuNyA2LjYtOS4zbDEuNi00LjNjMC40LTEgMC4zLTIuOC0wLjEtMy44bC01LjgtMTMuOGMtMC40LTEtMC4yLTIuNSAwLjYtMy40bDI3LjktMjkuN2MwLjgtMC44IDEuOS0yLjIgMi43LTMtMC40LTAuMyAxLjEtMi4xIDEuNi00LjF6Ii8+Cgo8L3N2Zz4K\",\n magicEden: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjAwIDIwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cmVjdCB4PSIwIiBmaWxsPSIjRTQyNTc1IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIvPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTMxLjgsNzcuNWw4LjksMTAuNWMxLDEuMiwxLjksMi4xLDIuMywyLjdjMi43LDIuNyw0LjIsNi4yLDQuMiwxMGMtMC4zLDQuNC0zLjEsNy40LTUuOCwxMC42bC02LjMsNy4zCglsLTMuMywzLjhjLTAuMSwwLjEtMC4yLDAuMy0wLjIsMC41YzAsMC4yLDAsMC4zLDAuMSwwLjVjMC4xLDAuMiwwLjIsMC4zLDAuMywwLjRjMC4yLDAuMSwwLjMsMC4xLDAuNSwwLjFoMzIuNgoJYzUsMCwxMS4zLDQuMiwxMC45LDEwLjVjMCwyLjktMS4yLDUuNy0zLjMsNy43Yy0yLjEsMi00LjksMy4yLTcuOCwzLjJIMTE0Yy0zLjQsMC0xMi40LDAuNC0xNC45LTcuM2MtMC41LTEuNi0wLjYtMy4zLTAuMi01CgljMC43LTIuNCwxLjktNC43LDMuNC02LjhjMi42LTMuOCw1LjMtNy42LDguMS0xMS4zYzMuNS00LjgsNy4yLTkuNSwxMC43LTE0LjRjMC4xLTAuMiwwLjItMC40LDAuMi0wLjZjMC0wLjItMC4xLTAuNC0wLjItMC42CglsLTEzLTE1LjJjLTAuMS0wLjEtMC4yLTAuMi0wLjMtMC4zYy0wLjEtMC4xLTAuMy0wLjEtMC40LTAuMWMtMC4xLDAtMC4zLDAtMC40LDAuMWMtMC4xLDAuMS0wLjIsMC4yLTAuMywwLjMKCWMtMy41LDQuNi0xOC43LDI1LjEtMjEuOSwyOS4yYy0zLjIsNC4xLTExLjIsNC40LTE1LjcsMEw0OC44LDkzLjRjLTAuMS0wLjEtMC4zLTAuMi0wLjUtMC4zYy0wLjIsMC0wLjQsMC0wLjUsMC4xCgljLTAuMiwwLjEtMC4zLDAuMi0wLjQsMC4zYy0wLjEsMC4yLTAuMiwwLjMtMC4yLDAuNXYzOC42YzAsMi43LTAuOCw1LjQtMi40LDcuN2MtMS42LDIuMy0zLjgsNC02LjQsNC45Yy0xLjcsMC42LTMuNSwwLjctNS4yLDAuNQoJYy0xLjgtMC4yLTMuNC0wLjktNC45LTEuOWMtMS40LTEtMi42LTIuMy0zLjQtMy45Yy0wLjgtMS41LTEuMi0zLjMtMS4yLTVWNjUuNWMwLjEtMi41LDEtNC45LDIuNi02LjljMS42LTIsMy43LTMuNCw2LjItNC4xCgljMi4xLTAuNiw0LjMtMC41LDYuNCwwYzIuMSwwLjYsNCwxLjcsNS41LDMuMmwzMS4yLDMwLjhjMC4xLDAuMSwwLjIsMC4yLDAuMywwLjJjMC4xLDAsMC4zLDAuMSwwLjQsMC4xYzAuMSwwLDAuMy0wLjEsMC40LTAuMQoJYzAuMS0wLjEsMC4yLTAuMiwwLjMtMC4zbDIyLjItMzAuMmMxLTEuMiwyLjMtMi4yLDMuOC0yLjljMS41LTAuNywzLTEuMSw0LjctMS4xaDU3LjZjMS42LDAsMy4xLDAuMyw0LjYsMXMyLjcsMS42LDMuOCwyLjgKCWMxLDEuMiwxLjgsMi41LDIuMyw0YzAuNSwxLjUsMC42LDMuMSwwLjQsNC42Yy0wLjQsMi43LTEuOCw1LjEtMy45LDYuOXMtNC44LDIuNy03LjUsMi43aC0zMi4zYy0wLjIsMC0wLjMsMC4xLTAuNSwwLjEKCWMtMC4xLDAuMS0wLjIsMC4yLTAuMywwLjNjLTAuMSwwLjEtMC4xLDAuMy0wLjEsMC41UzEzMS43LDc3LjQsMTMxLjgsNzcuNXoiLz4KPC9zdmc+Cg==\",\n okx: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI4LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMzYuMSAzMzYuMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzM2LjEgMzM2LjE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPHBhdGggZD0iTTMxMy43LDBIMjIuNEMxMCwwLDAsMTAsMCwyMi40djI5MS4zYzAsMTIuNCwxMCwyMi40LDIyLjQsMjIuNGgyOTEuM2MxMi40LDAsMjIuNC0xMCwyMi40LTIyLjRWMjIuNAoJQzMzNi4xLDEwLDMyNi4xLDAsMzEzLjcsMHoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIwNC41LDEzMC43aC02NC43Yy0yLjcsMC01LDIuMi01LDV2NjQuN2MwLDIuNywyLjIsNSw1LDVoNjQuN2MyLjcsMCw1LTIuMiw1LTV2LTY0LjcKCUMyMDkuNSwxMzIuOSwyMDcuMiwxMzAuNywyMDQuNSwxMzAuN3oiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS44LDU2LjFINjUuMWMtMi43LDAtNSwyLjItNSw1djY0LjdjMCwyLjcsMi4yLDUsNSw1aDY0LjdjMi44LDAsNS0yLjIsNS01VjYxCglDMTM0LjgsNTguMywxMzIuNSw1Ni4xLDEyOS44LDU2LjF6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNzkuMSw1Ni4xaC02NC43Yy0yLjcsMC01LDIuMi01LDV2NjQuN2MwLDIuNywyLjIsNSw1LDVoNjQuN2MyLjcsMCw1LTIuMiw1LTVWNjEKCUMyODQuMSw1OC4zLDI4MS45LDU2LjEsMjc5LjEsNTYuMXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS44LDIwNS40SDY1LjFjLTIuNywwLTUsMi4yLTUsNXY2NC43YzAsMi43LDIuMiw1LDUsNWg2NC43YzIuOCwwLDUtMi4yLDUtNXYtNjQuNwoJQzEzNC44LDIwNy42LDEzMi41LDIwNS40LDEyOS44LDIwNS40eiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjc5LjEsMjA1LjRoLTY0LjdjLTIuNywwLTUsMi4yLTUsNXY2NC43YzAsMi43LDIuMiw1LDUsNWg2NC43YzIuNywwLDUtMi4yLDUtNXYtNjQuNwoJQzI4NC4xLDIwNy42LDI4MS45LDIwNS40LDI3OS4xLDIwNS40eiIvPgo8L3N2Zz4K\"\n};\n\nfunction _optionalChain$u(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value8;\n\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n return (_value8 = value).call.apply(_value8, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar BraveEVM = /*#__PURE__*/function (_WindowEthereum2) {\n _inherits(BraveEVM, _WindowEthereum2);\n\n var _super3 = _createSuper(BraveEVM);\n\n function BraveEVM() {\n _classCallCheck(this, BraveEVM);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(BraveEVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.ethereum;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Brave',\n logo: logos.brave,\n blockchains: supported$1.evm,\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26() {\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n return _context26.abrupt(\"return\", _optionalChain$u([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isBraveWallet;\n }]));\n\n case 1:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26);\n }));\n }\n }]);\n\n return BraveEVM;\n}(WindowEthereum);\n\nBraveEVM.__initStatic();\n\nBraveEVM.__initStatic2();\n\nfunction _optionalChain$t(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value9;\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n return (_value9 = value).call.apply(_value9, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar BraveSVM = /*#__PURE__*/function (_WindowSolana2) {\n _inherits(BraveSVM, _WindowSolana2);\n\n var _super4 = _createSuper(BraveSVM);\n\n function BraveSVM() {\n _classCallCheck(this, BraveSVM);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(BraveSVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.braveSolana;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Brave',\n logo: logos.brave,\n blockchains: supported$1.solana,\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27() {\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n return _context27.abrupt(\"return\", _optionalChain$t([window, 'optionalAccess', function (_3) {\n return _3.solana;\n }, 'optionalAccess', function (_4) {\n return _4.isBraveWallet;\n }]));\n\n case 1:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27);\n }));\n }\n }]);\n\n return BraveSVM;\n}(WindowSolana);\n\nBraveSVM.__initStatic();\n\nBraveSVM.__initStatic2();\n\nfunction _optionalChain$s(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value10;\n\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n return (_value10 = value).call.apply(_value10, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Coin98EVM = /*#__PURE__*/function (_WindowEthereum3) {\n _inherits(Coin98EVM, _WindowEthereum3);\n\n var _super5 = _createSuper(Coin98EVM);\n\n function Coin98EVM() {\n _classCallCheck(this, Coin98EVM);\n\n return _super5.apply(this, arguments);\n }\n\n _createClass(Coin98EVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.coin98.provider;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Coin98',\n logo: logos.coin98,\n blockchains: supported$1.evm,\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28() {\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n return _context28.abrupt(\"return\", _optionalChain$s([window, 'optionalAccess', function (_2) {\n return _2.coin98;\n }]));\n\n case 1:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28);\n }));\n }\n }]);\n\n return Coin98EVM;\n}(WindowEthereum);\n\nCoin98EVM.__initStatic();\n\nCoin98EVM.__initStatic2();\n\nfunction _optionalChain$r(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value11;\n\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n return (_value11 = value).call.apply(_value11, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Coin98SVM = /*#__PURE__*/function (_WindowSolana3) {\n _inherits(Coin98SVM, _WindowSolana3);\n\n var _super6 = _createSuper(Coin98SVM);\n\n function Coin98SVM() {\n _classCallCheck(this, Coin98SVM);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(Coin98SVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.coin98.sol;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Coin98',\n logo: logos.coin98,\n blockchains: supported$1.solana,\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29() {\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n return _context29.abrupt(\"return\", _optionalChain$r([window, 'optionalAccess', function (_3) {\n return _3.coin98;\n }, 'optionalAccess', function (_4) {\n return _4.sol;\n }]));\n\n case 1:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29);\n }));\n }\n }]);\n\n return Coin98SVM;\n}(WindowSolana);\n\nCoin98SVM.__initStatic();\n\nCoin98SVM.__initStatic2();\n\nfunction _optionalChain$q(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value12;\n\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n\n return (_value12 = value).call.apply(_value12, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar CoinbaseEVM = /*#__PURE__*/function (_WindowEthereum4) {\n _inherits(CoinbaseEVM, _WindowEthereum4);\n\n var _super7 = _createSuper(CoinbaseEVM);\n\n function CoinbaseEVM() {\n _classCallCheck(this, CoinbaseEVM);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(CoinbaseEVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n if (_optionalChain$q([window, 'optionalAccess', function (_9) {\n return _9.ethereum;\n }, 'optionalAccess', function (_10) {\n return _10.providerMap;\n }, 'optionalAccess', function (_11) {\n return _11.has;\n }, 'call', function (_12) {\n return _12('CoinbaseWallet');\n }])) {\n return _optionalChain$q([window, 'optionalAccess', function (_13) {\n return _13.ethereum;\n }, 'optionalAccess', function (_14) {\n return _14.providerMap;\n }, 'optionalAccess', function (_15) {\n return _15.get;\n }, 'call', function (_16) {\n return _16('CoinbaseWallet');\n }]);\n } else {\n return window.ethereum;\n }\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Coinbase',\n logo: logos.coinbase,\n blockchains: supported$1.evm,\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee30() {\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n return _context30.abrupt(\"return\", _optionalChain$q([window, 'optionalAccess', function (_17) {\n return _17.ethereum;\n }, 'optionalAccess', function (_18) {\n return _18.isCoinbaseWallet;\n }]) || _optionalChain$q([window, 'optionalAccess', function (_19) {\n return _19.ethereum;\n }, 'optionalAccess', function (_20) {\n return _20.isWalletLink;\n }]) || _optionalChain$q([window, 'optionalAccess', function (_21) {\n return _21.ethereum;\n }, 'optionalAccess', function (_22) {\n return _22.providerMap;\n }, 'optionalAccess', function (_23) {\n return _23.has;\n }, 'call', function (_24) {\n return _24('CoinbaseWallet');\n }]));\n\n case 1:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30);\n }));\n }\n }]);\n\n return CoinbaseEVM;\n}(WindowEthereum);\n\nCoinbaseEVM.__initStatic();\n\nCoinbaseEVM.__initStatic2();\n\nvar CoinbaseSVM = /*#__PURE__*/function (_WindowSolana4) {\n _inherits(CoinbaseSVM, _WindowSolana4);\n\n var _super8 = _createSuper(CoinbaseSVM);\n\n function CoinbaseSVM() {\n _classCallCheck(this, CoinbaseSVM);\n\n return _super8.apply(this, arguments);\n }\n\n _createClass(CoinbaseSVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.coinbaseSolana;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Coinbase',\n logo: logos.coinbase,\n blockchains: supported$1.solana,\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee31() {\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n return _context31.abrupt(\"return\", !!window.coinbaseSolana);\n\n case 1:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31);\n }));\n }\n }]);\n\n return CoinbaseSVM;\n}(WindowSolana);\n\nCoinbaseSVM.__initStatic();\n\nCoinbaseSVM.__initStatic2();\n\nfunction _optionalChain$p(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value13;\n\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n\n return (_value13 = value).call.apply(_value13, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar CryptoCom = /*#__PURE__*/function (_WindowEthereum5) {\n _inherits(CryptoCom, _WindowEthereum5);\n\n var _super9 = _createSuper(CryptoCom);\n\n function CryptoCom() {\n _classCallCheck(this, CryptoCom);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(CryptoCom, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Crypto.com | DeFi Wallet',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4OS45IDEwMi44IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA4OS45IDEwMi44IiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNGRkZGRkY7fQoJLnN0MXtmaWxsOiMwMzMxNkM7fQo8L3N0eWxlPgoKPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMzc1MSAtMTEzLjYxKSI+Cgk8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMzE3OTQgMCAwIC4zMTQ2NSAtMS4wNDczIDMwLjQ0NykiPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Im0xNjEuNiAyNjQuMy0xNDEuNCA4MS42djE2My4zbDE0MS40IDgxLjYgMTQxLjQtODEuNnYtMTYzLjNsLTE0MS40LTgxLjZ6bTAgMC0xNDEuNCA4MS42djE2My4zbDE0MS40IDgxLjYgMTQxLjQtODEuNnYtMTYzLjNsLTE0MS40LTgxLjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0ibTIxNy41IDUyNy4xaC0yMC4xbC0yNC4xLTIyLjF2LTExLjNsMjQuOS0yMy44di0zNy43bDMyLjYtMjEuMyAzNy4xIDI4LjEtNTAuNCA4OC4xem0tODMuMy01OS42IDMuNy0zNS40LTEyLjItMzEuN2g3MmwtMTEuOSAzMS43IDMuNCAzNS40aC01NXptMTYuNCAzNy41LTI0LjEgMjIuNGgtMjAuNGwtNTAuNy04OC40IDM3LjQtMjcuOCAzMi45IDIxdjM3LjdsMjQuOSAyMy44djExLjN6bS00NC44LTE3MC4xaDExMS40bDEzLjMgNTYuN2gtMTM3LjdsMTMtNTYuN3ptNTUuOC03MC42LTE0MS40IDgxLjZ2MTYzLjNsMTQxLjQgODEuNiAxNDEuNC04MS42di0xNjMuM2wtMTQxLjQtODEuNnoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee32() {\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n return _context32.abrupt(\"return\", _optionalChain$p([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isDeficonnectProvider;\n }]));\n\n case 1:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }));\n }\n }]);\n\n return CryptoCom;\n}(WindowEthereum);\n\nCryptoCom.__initStatic();\n\nCryptoCom.__initStatic2();\n\nfunction _optionalChain$o(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value14;\n\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n\n return (_value14 = value).call.apply(_value14, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar ExodusEVM = /*#__PURE__*/function (_WindowEthereum6) {\n _inherits(ExodusEVM, _WindowEthereum6);\n\n var _super10 = _createSuper(ExodusEVM);\n\n function ExodusEVM() {\n _classCallCheck(this, ExodusEVM);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(ExodusEVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Exodus',\n logo: logos.exodus,\n blockchains: supported$1.evm,\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee33() {\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n return _context33.abrupt(\"return\", _optionalChain$o([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isExodus;\n }]));\n\n case 1:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33);\n }));\n }\n }]);\n\n return ExodusEVM;\n}(WindowEthereum);\n\nExodusEVM.__initStatic();\n\nExodusEVM.__initStatic2();\n\nfunction _optionalChain$n(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value15;\n\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n\n return (_value15 = value).call.apply(_value15, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar ExodusSVM = /*#__PURE__*/function (_WindowSolana5) {\n _inherits(ExodusSVM, _WindowSolana5);\n\n var _super11 = _createSuper(ExodusSVM);\n\n function ExodusSVM() {\n _classCallCheck(this, ExodusSVM);\n\n return _super11.apply(this, arguments);\n }\n\n _createClass(ExodusSVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Exodus',\n logo: logos.exodus,\n blockchains: supported$1.solana,\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee34() {\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n return _context34.abrupt(\"return\", _optionalChain$n([window, 'optionalAccess', function (_3) {\n return _3.solana;\n }, 'optionalAccess', function (_4) {\n return _4.isExodus;\n }]));\n\n case 1:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34);\n }));\n }\n }]);\n\n return ExodusSVM;\n}(WindowSolana);\n\nExodusSVM.__initStatic();\n\nExodusSVM.__initStatic2();\n\nvar Glow = /*#__PURE__*/function (_WindowSolana6) {\n _inherits(Glow, _WindowSolana6);\n\n var _super12 = _createSuper(Glow);\n\n function Glow() {\n _classCallCheck(this, Glow);\n\n return _super12.apply(this, arguments);\n }\n\n _createClass(Glow, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Glow',\n logo: 'data:image/webp;base64,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',\n blockchains: ['solana']\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee35() {\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n return _context35.abrupt(\"return\", window.solana && window.solana.isGlow);\n\n case 1:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35);\n }));\n }\n }]);\n\n return Glow;\n}(WindowSolana);\n\nGlow.__initStatic();\n\nGlow.__initStatic2();\n\nfunction _optionalChain$m(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value16;\n\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n\n return (_value16 = value).call.apply(_value16, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar HyperPay = /*#__PURE__*/function (_WindowEthereum7) {\n _inherits(HyperPay, _WindowEthereum7);\n\n var _super13 = _createSuper(HyperPay);\n\n function HyperPay() {\n _classCallCheck(this, HyperPay);\n\n return _super13.apply(this, arguments);\n }\n\n _createClass(HyperPay, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'HyperPay',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjA0LjcgMjAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMDQuNyAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZmlsbD0iIzFBNzJGRSIgZD0iTTEwMi41LDUuMkM1MC44LDUuMiw4LjgsNDcuMiw4LjgsOTlzNDIsOTMuNSw5My44LDkzLjVzOTMuOC00Miw5My44LTkzLjhTMTU0LjIsNS4yLDEwMi41LDUuMnogTTEyNy4yLDExOS4yCgljLTYuMiwwLTIxLjcsMC4zLTIxLjcsMC4zbC03LDI3aC0yOWw2LjgtMjYuNUgzMWw3LjItMjEuOGMwLDAsNzguOCwwLjIsODUuMiwwYzYuNS0wLjIsMTYuNS0xLjgsMTYuOC0xNC44YzAuMy0xNy44LTI3LTE2LjgtMjkuMi0xCgljLTEuNSwxMC0xLjUsMTIuNS0xLjUsMTIuNUg4My44bDUtMjMuNUg0N2w2LjMtMjJjMCwwLDYxLjIsMC4yLDcyLjgsMC4yczQyLjIsMyw0Mi4yLDMxLjJDMTY4LjIsMTEyLDEzOC41LDExOS4zLDEyNy4yLDExOS4yCglMMTI3LjIsMTE5LjJ6Ii8+Cjwvc3ZnPgo=\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee36() {\n return _regeneratorRuntime.wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n return _context36.abrupt(\"return\", _optionalChain$m([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isHyperPay;\n }]));\n\n case 1:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36);\n }));\n }\n }]);\n\n return HyperPay;\n}(WindowEthereum);\n\nHyperPay.__initStatic();\n\nHyperPay.__initStatic2();\n\nfunction _optionalChain$l(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value17;\n\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n\n return (_value17 = value).call.apply(_value17, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar MagicEdenEVM = /*#__PURE__*/function (_WindowEthereum8) {\n _inherits(MagicEdenEVM, _WindowEthereum8);\n\n var _super14 = _createSuper(MagicEdenEVM);\n\n function MagicEdenEVM() {\n _classCallCheck(this, MagicEdenEVM);\n\n return _super14.apply(this, arguments);\n }\n\n _createClass(MagicEdenEVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Magic Eden',\n logo: logos.magicEden,\n blockchains: ['ethereum', 'polygon'],\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee37() {\n return _regeneratorRuntime.wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n return _context37.abrupt(\"return\", _optionalChain$l([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isMagicEden;\n }]));\n\n case 1:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37);\n }));\n }\n }]);\n\n return MagicEdenEVM;\n}(WindowEthereum);\n\nMagicEdenEVM.__initStatic();\n\nMagicEdenEVM.__initStatic2();\n\nfunction _optionalChain$k(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value18;\n\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n\n return (_value18 = value).call.apply(_value18, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar MagicEdenSVM = /*#__PURE__*/function (_WindowSolana7) {\n _inherits(MagicEdenSVM, _WindowSolana7);\n\n var _super15 = _createSuper(MagicEdenSVM);\n\n function MagicEdenSVM() {\n _classCallCheck(this, MagicEdenSVM);\n\n return _super15.apply(this, arguments);\n }\n\n _createClass(MagicEdenSVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Magic Eden',\n logo: logos.magicEden,\n blockchains: ['solana'],\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee38() {\n return _regeneratorRuntime.wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n return _context38.abrupt(\"return\", _optionalChain$k([window, 'optionalAccess', function (_3) {\n return _3.solana;\n }, 'optionalAccess', function (_4) {\n return _4.isMagicEden;\n }]));\n\n case 1:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38);\n }));\n }\n }]);\n\n return MagicEdenSVM;\n}(WindowSolana);\n\nMagicEdenSVM.__initStatic();\n\nMagicEdenSVM.__initStatic2();\n\nfunction _optionalChain$j(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value19;\n\n for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n args[_key19] = arguments[_key19];\n }\n\n return (_value19 = value).call.apply(_value19, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar MetaMask = /*#__PURE__*/function (_WindowEthereum9) {\n _inherits(MetaMask, _WindowEthereum9);\n\n var _super16 = _createSuper(MetaMask);\n\n function MetaMask() {\n _classCallCheck(this, MetaMask);\n\n return _super16.apply(this, arguments);\n }\n\n _createClass(MetaMask, [{\n key: \"getProvider\",\n value: function getProvider() {\n return MetaMask.getEip6963Provider() || MetaMask.isMetaMask(_optionalChain$j([window, 'optionalAccess', function (_5) {\n return _5.ethereum;\n }])) && _optionalChain$j([window, 'optionalAccess', function (_6) {\n return _6.ethereum;\n }]);\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'MetaMask',\n logo: \"data:image/svg+xml;base64,PHN2ZyBpZD0nTGF5ZXJfMScgZGF0YS1uYW1lPSdMYXllciAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0ODUuOTMgNDUwLjU2Jz48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzgyODQ4Nzt9LmNscy0ye2ZpbGw6I2UyNzcyNjtzdHJva2U6I2UyNzcyNjt9LmNscy0xMCwuY2xzLTExLC5jbHMtMiwuY2xzLTMsLmNscy00LC5jbHMtNSwuY2xzLTYsLmNscy03LC5jbHMtOCwuY2xzLTl7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTN7ZmlsbDojZTM3NzI1O3N0cm9rZTojZTM3NzI1O30uY2xzLTR7ZmlsbDojZDZjMGIzO3N0cm9rZTojZDZjMGIzO30uY2xzLTV7ZmlsbDojMjQzNDQ3O3N0cm9rZTojMjQzNDQ3O30uY2xzLTZ7ZmlsbDojY2Q2MzI4O3N0cm9rZTojY2Q2MzI4O30uY2xzLTd7ZmlsbDojZTM3NTI1O3N0cm9rZTojZTM3NTI1O30uY2xzLTh7ZmlsbDojZjY4NTFmO3N0cm9rZTojZjY4NTFmO30uY2xzLTl7ZmlsbDojYzFhZTllO3N0cm9rZTojYzFhZTllO30uY2xzLTEwe2ZpbGw6IzE3MTcxNztzdHJva2U6IzE3MTcxNzt9LmNscy0xMXtmaWxsOiM3NjNlMWE7c3Ryb2tlOiM3NjNlMWE7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTI0Ny45MSwzNTYuMjlhMjYsMjYsMCwxLDAtMjYsMjZBMjYsMjYsMCwwLDAsMjQ3LjkxLDM1Ni4yOVonIHRyYW5zZm9ybT0ndHJhbnNsYXRlKC03Ljk3IC0yMS4zMyknLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00yNDYuNTUsMTQ5LjcxYTI2LDI2LDAsMSwwLTI2LDI2QTI2LDI2LDAsMCwwLDI0Ni41NSwxNDkuNzFaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtNy45NyAtMjEuMzMpJy8+PGNpcmNsZSBjbGFzcz0nY2xzLTEnIGN4PScxNDguNCcgY3k9JzIzMC4wNScgcj0nMjUuOTknLz48cG9seWdvbiBjbGFzcz0nY2xzLTInIHBvaW50cz0nNDYxLjI4IDAuNSAyNzIuMDYgMTQxLjAzIDMwNy4wNSA1OC4xMiA0NjEuMjggMC41Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy0zJyBwb2ludHM9JzI0LjQ2IDAuNSAyMTIuMTYgMTQyLjM3IDE3OC44OCA1OC4xMiAyNC40NiAwLjUnLz48cG9seWdvbiBjbGFzcz0nY2xzLTMnIHBvaW50cz0nMzkzLjIgMzI2LjI2IDM0Mi44MSA0MDMuNDcgNDUwLjYzIDQzMy4xNCA0ODEuNjMgMzI3Ljk3IDM5My4yIDMyNi4yNicvPjxwb2x5Z29uIGNsYXNzPSdjbHMtMycgcG9pbnRzPSc0LjQ5IDMyNy45NyAzNS4zIDQzMy4xNCAxNDMuMTMgNDAzLjQ3IDkyLjczIDMyNi4yNiA0LjQ5IDMyNy45NycvPjxwb2x5Z29uIGNsYXNzPSdjbHMtMycgcG9pbnRzPScxMzcuMDQgMTk1LjggMTA3IDI0MS4yNSAyMTQuMDYgMjQ2LjAxIDIxMC4yNiAxMzAuOTYgMTM3LjA0IDE5NS44Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy0zJyBwb2ludHM9JzM0OC43IDE5NS44IDI3NC41MyAxMjkuNjMgMjcyLjA2IDI0Ni4wMSAzNzguOTQgMjQxLjI1IDM0OC43IDE5NS44Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy0zJyBwb2ludHM9JzE0My4xMyA0MDMuNDcgMjA3LjQxIDM3Mi4wOSAxNTEuODggMzI4LjczIDE0My4xMyA0MDMuNDcnLz48cG9seWdvbiBjbGFzcz0nY2xzLTMnIHBvaW50cz0nMjc4LjM0IDM3Mi4wOSAzNDIuODEgNDAzLjQ3IDMzMy44NyAzMjguNzMgMjc4LjM0IDM3Mi4wOScvPjxwb2x5Z29uIGNsYXNzPSdjbHMtNCcgcG9pbnRzPSczNDIuODEgNDAzLjQ3IDI3OC4zNCAzNzIuMDkgMjgzLjQ3IDQxNC4xMiAyODIuOSA0MzEuODEgMzQyLjgxIDQwMy40NycvPjxwb2x5Z29uIGNsYXNzPSdjbHMtNCcgcG9pbnRzPScxNDMuMTMgNDAzLjQ3IDIwMy4wMyA0MzEuODEgMjAyLjY1IDQxNC4xMiAyMDcuNDEgMzcyLjA5IDE0My4xMyA0MDMuNDcnLz48cG9seWdvbiBjbGFzcz0nY2xzLTUnIHBvaW50cz0nMjAzLjk4IDMwMC45NyAxNTAuMzUgMjg1LjE4IDE4OC4yIDI2Ny44OCAyMDMuOTggMzAwLjk3Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy01JyBwb2ludHM9JzI4MS43NiAzMDAuOTcgMjk3LjU1IDI2Ny44OCAzMzUuNTggMjg1LjE4IDI4MS43NiAzMDAuOTcnLz48cG9seWdvbiBjbGFzcz0nY2xzLTYnIHBvaW50cz0nMTQzLjEzIDQwMy40NyAxNTIuMjUgMzI2LjI2IDkyLjczIDMyNy45NyAxNDMuMTMgNDAzLjQ3Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy02JyBwb2ludHM9JzMzMy42OCAzMjYuMjYgMzQyLjgxIDQwMy40NyAzOTMuMiAzMjcuOTcgMzMzLjY4IDMyNi4yNicvPjxwb2x5Z29uIGNsYXNzPSdjbHMtNicgcG9pbnRzPSczNzguOTQgMjQxLjI1IDI3Mi4wNiAyNDYuMDEgMjgxLjk1IDMwMC45NyAyOTcuNzQgMjY3Ljg4IDMzNS43NyAyODUuMTggMzc4Ljk0IDI0MS4yNScvPjxwb2x5Z29uIGNsYXNzPSdjbHMtNicgcG9pbnRzPScxNTAuMzUgMjg1LjE4IDE4OC4zOSAyNjcuODggMjAzLjk4IDMwMC45NyAyMTQuMDYgMjQ2LjAxIDEwNyAyNDEuMjUgMTUwLjM1IDI4NS4xOCcvPjxwb2x5Z29uIGNsYXNzPSdjbHMtNycgcG9pbnRzPScxMDcgMjQxLjI1IDE1MS44OCAzMjguNzMgMTUwLjM1IDI4NS4xOCAxMDcgMjQxLjI1Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy03JyBwb2ludHM9JzMzNS43NyAyODUuMTggMzMzLjg3IDMyOC43MyAzNzguOTQgMjQxLjI1IDMzNS43NyAyODUuMTgnLz48cG9seWdvbiBjbGFzcz0nY2xzLTcnIHBvaW50cz0nMjE0LjA2IDI0Ni4wMSAyMDMuOTggMzAwLjk3IDIxNi41MyAzNjUuODIgMjE5LjM4IDI4MC40MyAyMTQuMDYgMjQ2LjAxJy8+PHBvbHlnb24gY2xhc3M9J2Nscy03JyBwb2ludHM9JzI3Mi4wNiAyNDYuMDEgMjY2LjkzIDI4MC4yNCAyNjkuMjEgMzY1LjgyIDI4MS45NSAzMDAuOTcgMjcyLjA2IDI0Ni4wMScvPjxwb2x5Z29uIGNsYXNzPSdjbHMtOCcgcG9pbnRzPScyODEuOTUgMzAwLjk3IDI2OS4yMSAzNjUuODIgMjc4LjM0IDM3Mi4wOSAzMzMuODcgMzI4LjczIDMzNS43NyAyODUuMTggMjgxLjk1IDMwMC45NycvPjxwb2x5Z29uIGNsYXNzPSdjbHMtOCcgcG9pbnRzPScxNTAuMzUgMjg1LjE4IDE1MS44OCAzMjguNzMgMjA3LjQxIDM3Mi4wOSAyMTYuNTMgMzY1LjgyIDIwMy45OCAzMDAuOTcgMTUwLjM1IDI4NS4xOCcvPjxwb2x5Z29uIGNsYXNzPSdjbHMtOScgcG9pbnRzPScyODIuOSA0MzEuODEgMjgzLjQ3IDQxNC4xMiAyNzguNzIgNDA5Ljk0IDIwNy4wMiA0MDkuOTQgMjAyLjY1IDQxNC4xMiAyMDMuMDMgNDMxLjgxIDE0My4xMyA0MDMuNDcgMTY0LjA1IDQyMC41OCAyMDYuNDUgNDUwLjA2IDI3OS4yOSA0NTAuMDYgMzIxLjg5IDQyMC41OCAzNDIuODEgNDAzLjQ3IDI4Mi45IDQzMS44MScvPjxwb2x5Z29uIGNsYXNzPSdjbHMtMTAnIHBvaW50cz0nMjc4LjM0IDM3Mi4wOSAyNjkuMjEgMzY1LjgyIDIxNi41MyAzNjUuODIgMjA3LjQxIDM3Mi4wOSAyMDIuNjUgNDE0LjEyIDIwNy4wMiA0MDkuOTQgMjc4LjcyIDQwOS45NCAyODMuNDcgNDE0LjEyIDI3OC4zNCAzNzIuMDknLz48cG9seWdvbiBjbGFzcz0nY2xzLTExJyBwb2ludHM9JzQ2OS4yNyAxNTAuMTYgNDg1LjQzIDcyLjU3IDQ2MS4yOCAwLjUgMjc4LjM0IDEzNi4yOCAzNDguNyAxOTUuOCA0NDguMTYgMjI0LjkgNDcwLjIyIDE5OS4yMyA0NjAuNzEgMTkyLjM4IDQ3NS45MiAxNzguNSA0NjQuMTMgMTY5LjM3IDQ3OS4zNSAxNTcuNzcgNDY5LjI3IDE1MC4xNicvPjxwb2x5Z29uIGNsYXNzPSdjbHMtMTEnIHBvaW50cz0nMC41IDcyLjU3IDE2LjY2IDE1MC4xNiA2LjM5IDE1Ny43NyAyMS42MSAxNjkuMzcgMTAuMDEgMTc4LjUgMjUuMjIgMTkyLjM4IDE1LjcxIDE5OS4yMyAzNy41OCAyMjQuOSAxMzcuMDQgMTk1LjggMjA3LjQxIDEzNi4yOCAyNC40NiAwLjUgMC41IDcyLjU3Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy04JyBwb2ludHM9JzQ0OC4xNiAyMjQuOSAzNDguNyAxOTUuOCAzNzguOTQgMjQxLjI1IDMzMy44NyAzMjguNzMgMzkzLjIgMzI3Ljk3IDQ4MS42MyAzMjcuOTcgNDQ4LjE2IDIyNC45Jy8+PHBvbHlnb24gY2xhc3M9J2Nscy04JyBwb2ludHM9JzEzNy4wNCAxOTUuOCAzNy41OCAyMjQuOSA0LjQ5IDMyNy45NyA5Mi43MyAzMjcuOTcgMTUxLjg4IDMyOC43MyAxMDcgMjQxLjI1IDEzNy4wNCAxOTUuOCcvPjxwb2x5Z29uIGNsYXNzPSdjbHMtOCcgcG9pbnRzPScyNzIuMDYgMjQ2LjAxIDI3OC4zNCAxMzYuMjggMzA3LjI0IDU4LjEyIDE3OC44OCA1OC4xMiAyMDcuNDEgMTM2LjI4IDIxNC4wNiAyNDYuMDEgMjE2LjM0IDI4MC42MiAyMTYuNTMgMzY1LjgyIDI2OS4yMSAzNjUuODIgMjY5LjU5IDI4MC42MiAyNzIuMDYgMjQ2LjAxJy8+PC9zdmc+\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isMetaMask = function (provider) {\n return _optionalChain$j([provider, 'optionalAccess', function (_3) {\n return _3.isMetaMask;\n }]) && Object.keys(provider).filter(function (key) {\n return key.match(/^is(?!Connected)(?!PocketUniverse)(?!WalletGuard)(?!RevokeCash)/);\n }).length == 1;\n };\n }\n }, {\n key: \"__initStatic3\",\n value: function __initStatic3() {\n this.getEip6963Provider = function () {\n return window['_eip6963Providers'] ? Object.values(window['_eip6963Providers']).find(function (provider) {\n return MetaMask.isMetaMask(provider);\n }) : undefined;\n };\n }\n }, {\n key: \"__initStatic4\",\n value: function __initStatic4() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee39() {\n return _regeneratorRuntime.wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n return _context39.abrupt(\"return\", MetaMask.getEip6963Provider() || MetaMask.isMetaMask(_optionalChain$j([window, 'optionalAccess', function (_4) {\n return _4.ethereum;\n }])));\n\n case 1:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39);\n }));\n }\n }]);\n\n return MetaMask;\n}(WindowEthereum);\n\nMetaMask.__initStatic();\n\nMetaMask.__initStatic2();\n\nMetaMask.__initStatic3();\n\nMetaMask.__initStatic4();\n\nfunction _optionalChain$i(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value20;\n\n for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n args[_key20] = arguments[_key20];\n }\n\n return (_value20 = value).call.apply(_value20, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar OKXEVM = /*#__PURE__*/function (_WindowEthereum10) {\n _inherits(OKXEVM, _WindowEthereum10);\n\n var _super17 = _createSuper(OKXEVM);\n\n function OKXEVM() {\n _classCallCheck(this, OKXEVM);\n\n return _super17.apply(this, arguments);\n }\n\n _createClass(OKXEVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'OKX',\n logo: logos.okx,\n blockchains: supported$1.evm,\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee40() {\n return _regeneratorRuntime.wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n return _context40.abrupt(\"return\", _optionalChain$i([window, 'optionalAccess', function (_2) {\n return _2.okxwallet;\n }]));\n\n case 1:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40);\n }));\n }\n }]);\n\n return OKXEVM;\n}(WindowEthereum);\n\nOKXEVM.__initStatic();\n\nOKXEVM.__initStatic2();\n\nfunction _optionalChain$h(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value21;\n\n for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n args[_key21] = arguments[_key21];\n }\n\n return (_value21 = value).call.apply(_value21, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar OKXSVM = /*#__PURE__*/function (_WindowSolana8) {\n _inherits(OKXSVM, _WindowSolana8);\n\n var _super18 = _createSuper(OKXSVM);\n\n function OKXSVM() {\n _classCallCheck(this, OKXSVM);\n\n return _super18.apply(this, arguments);\n }\n\n _createClass(OKXSVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'OKX',\n logo: logos.okx,\n blockchains: ['solana'],\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee41() {\n return _regeneratorRuntime.wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n return _context41.abrupt(\"return\", _optionalChain$h([window, 'optionalAccess', function (_3) {\n return _3.solana;\n }, 'optionalAccess', function (_4) {\n return _4.isOkxWallet;\n }]));\n\n case 1:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41);\n }));\n }\n }]);\n\n return OKXSVM;\n}(WindowSolana);\n\nOKXSVM.__initStatic();\n\nOKXSVM.__initStatic2();\n\nfunction _optionalChain$g(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value22;\n\n for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n args[_key22] = arguments[_key22];\n }\n\n return (_value22 = value).call.apply(_value22, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Opera = /*#__PURE__*/function (_WindowEthereum11) {\n _inherits(Opera, _WindowEthereum11);\n\n var _super19 = _createSuper(Opera);\n\n function Opera() {\n _classCallCheck(this, Opera);\n\n return _super19.apply(this, arguments);\n }\n\n _createClass(Opera, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Opera',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA3NS42IDc1LjYiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMyAwIDAgLTEuMzMzMyAwIDEwNy4yKSI+CiAgCiAgPGxpbmVhckdyYWRpZW50IGlkPSJvcGVyYUxvZ28wMDAwMDAxMjM1MTEiIHgxPSItMTA3LjM0IiB4Mj0iLTEwNi4zNCIgeTE9Ii0xMzcuODUiIHkyPSItMTM3Ljg1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAgLTczLjI1NyAtNzMuMjU3IDAgLTEwMDc1IC03Nzg0LjEpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkYxQjJEIiBvZmZzZXQ9IjAiLz4KICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjFCMkQiIG9mZnNldD0iLjMiLz4KICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjFCMkQiIG9mZnNldD0iLjYxNCIvPgogICAgPHN0b3Agc3RvcC1jb2xvcj0iI0E3MDAxNCIgb2Zmc2V0PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICAKICA8cGF0aCBmaWxsPSJ1cmwoI29wZXJhTG9nbzAwMDAwMDEyMzUxMSkiIGQ9Im0yOC4zIDgwLjRjLTE1LjYgMC0yOC4zLTEyLjctMjguMy0yOC4zIDAtMTUuMiAxMi0yNy42IDI3LTI4LjNoMS40YzcuMyAwIDEzLjkgMi43IDE4LjkgNy4yLTMuMy0yLjItNy4yLTMuNS0xMS40LTMuNS02LjggMC0xMi44IDMuMy0xNi45IDguNi0zLjEgMy43LTUuMiA5LjItNS4zIDE1LjN2MS4zYzAuMSA2LjEgMi4yIDExLjYgNS4zIDE1LjMgNC4xIDUuMyAxMC4xIDguNiAxNi45IDguNiA0LjIgMCA4LTEuMyAxMS40LTMuNS01IDQuNS0xMS42IDcuMi0xOC44IDcuMi0wLjEgMC4xLTAuMSAwLjEtMC4yIDAuMXoiLz4KICAKICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ii0xMDcuMDYiIHgyPSItMTA2LjA2IiB5MT0iLTEzOC4wNCIgeTI9Ii0xMzguMDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCAtNjQuNzkyIC02NC43OTIgMCAtODkwNi4yIC02ODYwLjQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICA8c3RvcCBzdG9wLWNvbG9yPSIjOUMwMDAwIiBvZmZzZXQ9IjAiLz4KICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjRCNEIiIG9mZnNldD0iLjciLz4KICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGRjRCNEIiIG9mZnNldD0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHBhdGggZD0ibTE5IDY4YzIuNiAzLjEgNiA0LjkgOS42IDQuOSA4LjMgMCAxNC45LTkuNCAxNC45LTIwLjlzLTYuNy0yMC45LTE0LjktMjAuOWMtMy43IDAtNyAxLjktOS42IDQuOSA0LjEtNS4zIDEwLjEtOC42IDE2LjktOC42IDQuMiAwIDggMS4zIDExLjQgMy41IDUuOCA1LjIgOS41IDEyLjcgOS41IDIxLjFzLTMuNyAxNS45LTkuNSAyMS4xYy0zLjMgMi4yLTcuMiAzLjUtMTEuNCAzLjUtNi44IDAuMS0xMi44LTMuMy0xNi45LTguNiIgZmlsbD0idXJsKCNiKSIvPgo8L2c+Cjwvc3ZnPgo=\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee42() {\n return _regeneratorRuntime.wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n return _context42.abrupt(\"return\", _optionalChain$g([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isOpera;\n }]));\n\n case 1:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42);\n }));\n }\n }]);\n\n return Opera;\n}(WindowEthereum);\n\nOpera.__initStatic();\n\nOpera.__initStatic2();\n\nfunction _optionalChain$f(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value23;\n\n for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n args[_key23] = arguments[_key23];\n }\n\n return (_value23 = value).call.apply(_value23, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar PhantomEVM = /*#__PURE__*/function (_WindowEthereum12) {\n _inherits(PhantomEVM, _WindowEthereum12);\n\n var _super20 = _createSuper(PhantomEVM);\n\n function PhantomEVM() {\n _classCallCheck(this, PhantomEVM);\n\n return _super20.apply(this, arguments);\n }\n\n _createClass(PhantomEVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return _optionalChain$f([window, 'optionalAccess', function (_7) {\n return _7.phantom;\n }, 'optionalAccess', function (_8) {\n return _8.ethereum;\n }]) || window.ethereum;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Phantom',\n logo: logos.phantom,\n blockchains: ['ethereum', 'polygon'],\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee43() {\n return _regeneratorRuntime.wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n return _context43.abrupt(\"return\", window.phantom && window.phantom.ethereum && !_optionalChain$f([window, 'optionalAccess', function (_4) {\n return _4.ethereum;\n }, 'optionalAccess', function (_5) {\n return _5.isMagicEden;\n }]) && !_optionalChain$f([window, 'optionalAccess', function (_6) {\n return _6.okxwallet;\n }]));\n\n case 1:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43);\n }));\n }\n }]);\n\n return PhantomEVM;\n}(WindowEthereum);\n\nPhantomEVM.__initStatic();\n\nPhantomEVM.__initStatic2();\n\nfunction _optionalChain$e(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value24;\n\n for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n args[_key24] = arguments[_key24];\n }\n\n return (_value24 = value).call.apply(_value24, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar PhantomSVM = /*#__PURE__*/function (_WindowSolana9) {\n _inherits(PhantomSVM, _WindowSolana9);\n\n var _super21 = _createSuper(PhantomSVM);\n\n function PhantomSVM() {\n _classCallCheck(this, PhantomSVM);\n\n return _super21.apply(this, arguments);\n }\n\n _createClass(PhantomSVM, [{\n key: \"getProvider\",\n value: function getProvider() {\n return _optionalChain$e([window, 'optionalAccess', function (_15) {\n return _15.phantom;\n }, 'optionalAccess', function (_16) {\n return _16.solana;\n }]) || window.solana;\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Phantom',\n logo: logos.phantom,\n blockchains: supported$1.solana,\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee44() {\n return _regeneratorRuntime.wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n return _context44.abrupt(\"return\", window.phantom && !window.glow && !_optionalChain$e([window, 'optionalAccess', function (_8) {\n return _8.solana;\n }, 'optionalAccess', function (_9) {\n return _9.isGlow;\n }]) && !_optionalChain$e([window, 'optionalAccess', function (_10) {\n return _10.solana;\n }, 'optionalAccess', function (_11) {\n return _11.isExodus;\n }]) && !_optionalChain$e([window, 'optionalAccess', function (_12) {\n return _12.ethereum;\n }, 'optionalAccess', function (_13) {\n return _13.isMagicEden;\n }]) && !_optionalChain$e([window, 'optionalAccess', function (_14) {\n return _14.okxwallet;\n }]) && !['isBitKeep'].some(function (identifier) {\n return window.solana && window.solana[identifier];\n }));\n\n case 1:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44);\n }));\n }\n }]);\n\n return PhantomSVM;\n}(WindowSolana);\n\nPhantomSVM.__initStatic();\n\nPhantomSVM.__initStatic2();\n\nfunction _optionalChain$d(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value25;\n\n for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n args[_key25] = arguments[_key25];\n }\n\n return (_value25 = value).call.apply(_value25, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Rabby = /*#__PURE__*/function (_WindowEthereum13) {\n _inherits(Rabby, _WindowEthereum13);\n\n var _super22 = _createSuper(Rabby);\n\n function Rabby() {\n _classCallCheck(this, Rabby);\n\n return _super22.apply(this, arguments);\n }\n\n _createClass(Rabby, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Rabby',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9ImthdG1hbl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjA0IDE1MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjA0IDE1MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjU1ZHSURfMV8pO30KCS5zdDF7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTE4MzY5MTkwNjY5MjcyNDcwNjgwMDAwMDE1NjE0NDY3MTMxNjE1Mjc5NDkxXyk7fQoJLnN0MntmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOnVybCgjU1ZHSURfMDAwMDAwNjU3Nzc0NTQ3NDc4MDEzNzcwNTAwMDAwMDcwMDM5OTUyODQ2NDY5NTk3NzVfKTt9Cgkuc3Qze2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDA5MTY5NjU3NTkzMjA0MzQxNTM5MDAwMDAwMTAyMTU2NDM5MjA1MDA3ODg1Nl8pO30KPC9zdHlsZT4KPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI3MS4zNDE4IiB5MT0iNDE5LjA4NjkiIHgyPSIxNzUuMjg4MSIgeTI9IjQ0OC41NjQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMCAtMzQ2KSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojODc5N0ZGIi8+Cgk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQUFBOEZGIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzYuNCw4NS40YzUuOS0xMy4yLTIzLjMtNTAuMS01MS4yLTY1LjNDMTA3LjUsOC4xLDg5LjMsOS43LDg1LjUsMTVjLTguMSwxMS40LDI3LDIxLjMsNTAuNCwzMi41CgljLTUuMSwyLjItOS44LDYuMi0xMi41LDExLjFDMTE0LjcsNDksOTUuNSw0MC44LDczLDQ3LjVjLTE1LjIsNC40LTI3LjgsMTUuMS0zMi43LDMwLjljLTEuMS0wLjUtMi41LTAuOC0zLjgtMC44CgljLTUuMiwwLTkuNSw0LjMtOS41LDkuNWMwLDUuMiw0LjMsOS41LDkuNSw5LjVjMSwwLDQtMC42LDQtMC42bDQ4LjgsMC4zYy0xOS41LDMxLjEtMzUsMzUuNS0zNSw0MC45czE0LjcsNCwyMC4zLDEuOQoJYzI2LjYtOS41LDU1LjItMzkuNSw2MC4xLTQ4LjFDMTU1LjMsOTMuOCwxNzIuNSw5My45LDE3Ni40LDg1LjR6Ii8+CjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAwMzg0MDY0NTAzNDY5MjQ4NjkzNTAwMDAwMDA5NDQzOTczMDQwMTQ3OTk1NDdfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE1My45OTAyIiB5MT0iNDIxLjM0NzQiIHgyPSI3OC45ODgzIiB5Mj0iMzQ2LjE2MTgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIC0zNDYpIj4KCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMzQjIyQTAiLz4KCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiM1MTU2RDg7c3RvcC1vcGFjaXR5OjAiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBhdGggc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDAzODQwNjQ1MDM0NjkyNDg2OTM1MDAwMDAwMDk0NDM5NzMwNDAxNDc5OTU0N18pOyIgZD0iCglNMTM2LjEsNDcuNUwxMzYuMSw0Ny41YzEuMS0wLjUsMS0yLjEsMC42LTMuM2MtMC42LTIuOS0xMi41LTE0LjYtMjMuNi0xOS44Yy0xNS4yLTcuMS0yNi4zLTYuOC0yNy45LTMuNWMzLDYuMywxNy40LDEyLjIsMzIuNCwxOC42CglDMTIzLjcsNDEuOSwxMzAuMiw0NC42LDEzNi4xLDQ3LjVMMTM2LjEsNDcuNXoiLz4KPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE0NzIyMDY3MjYxNTU0Nzk0MjI0MDAwMDAxMTg5NDM0ODEwNDAwNzM1NDA0NF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTE4Ljc4NjUiIHkxPSI0NTkuOTQ1OSIgeDI9IjQ2LjczODgiIHkyPSI0MTguNTIzNiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgLTM0NikiPgoJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzNCMUU4RiIvPgoJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzZBNkZGQjtzdG9wLW9wYWNpdHk6MCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cGF0aCBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTQ3MjIwNjcyNjE1NTQ3OTQyMjQwMDAwMDExODk0MzQ4MTA0MDA3MzU0MDQ0Xyk7IiBkPSIKCU0xMTYuNywxMTEuMmMtMy0xLjEtNi41LTIuMi0xMC41LTMuMmM0LjEtNy41LDUuMS0xOC43LDEuMS0yNS43Yy01LjYtOS44LTEyLjUtMTUuMS0yOC45LTE1LjFjLTguOSwwLTMzLDMtMzMuNSwyMy4yCgljMCwyLjEsMCw0LDAuMiw1LjlsNDQuMSwwYy01LjksOS40LTExLjQsMTYuMy0xNi4zLDIxLjZjNS45LDEuNCwxMC42LDIuNywxNS4xLDRjNC4xLDEuMSw4LjEsMi4xLDEyLjEsMy4yCglDMTA2LjEsMTIwLjYsMTExLjgsMTE1LjgsMTE2LjcsMTExLjJ6Ii8+CjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMjg0NzQ1MTgwNjUxMjc5MDc2OTAwMDAwMDg3OTM1NDY5MjM0OTg1OTA4NjFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjY2LjM2MDQiIHkxPSI0MjcuNjAyIiB4Mj0iMTE1LjA1OTMiIHkyPSI0ODkuNDc5MiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgLTM0NikiPgoJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6Izg4OThGRiIvPgoJPHN0b3AgIG9mZnNldD0iMC45ODM5IiBzdHlsZT0ic3RvcC1jb2xvcjojNUY0N0YxIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfMDAwMDAxMjg0NzQ1MTgwNjUxMjc5MDc2OTAwMDAwMDg3OTM1NDY5MjM0OTg1OTA4NjFfKTsiIGQ9Ik0zOS43LDkzLjljMS43LDE1LjIsMTAuNSwyMS4zLDI4LjIsMjMKCWMxNy44LDEuNywyNy45LDAuNiw0MS40LDEuN2MxMS4zLDEsMjEuNCw2LjgsMjUuMSw0LjhjMy4zLTEuNywxLjQtOC4yLTMtMTIuNGMtNS45LTUuNC0xNC05LTI4LjEtMTAuNWMyLjktNy44LDIuMS0xOC43LTIuNC0yNC42CgljLTYuMy04LjYtMTguMS0xMi40LTMzLTEwLjhDNTIuMyw2Ny4xLDM3LjQsNzQuOSwzOS43LDkzLjl6Ii8+Cjwvc3ZnPgo=\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee45() {\n return _regeneratorRuntime.wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n return _context45.abrupt(\"return\", _optionalChain$d([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isRabby;\n }]));\n\n case 1:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45);\n }));\n }\n }]);\n\n return Rabby;\n}(WindowEthereum);\n\nRabby.__initStatic();\n\nRabby.__initStatic2();\n\nfunction _optionalChain$c(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value26;\n\n for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n args[_key26] = arguments[_key26];\n }\n\n return (_value26 = value).call.apply(_value26, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Rainbow = /*#__PURE__*/function (_WindowEthereum14) {\n _inherits(Rainbow, _WindowEthereum14);\n\n var _super23 = _createSuper(Rainbow);\n\n function Rainbow() {\n _classCallCheck(this, Rainbow);\n\n return _super23.apply(this, arguments);\n }\n\n _createClass(Rainbow, [{\n key: \"getProvider\",\n value: function getProvider() {\n return Rainbow.getEip6963Provider() || _optionalChain$c([window, 'optionalAccess', function (_7) {\n return _7.rainbow;\n }]);\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Rainbow',\n logo: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEyMCAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNjJfMzI5KSIvPgo8cGF0aCBkPSJNMjAgMzhIMjZDNTYuOTI3OSAzOCA4MiA2My4wNzIxIDgyIDk0VjEwMEg5NEM5Ny4zMTM3IDEwMCAxMDAgOTcuMzEzNyAxMDAgOTRDMTAwIDUzLjEzMDkgNjYuODY5MSAyMCAyNiAyMEMyMi42ODYzIDIwIDIwIDIyLjY4NjMgMjAgMjZWMzhaIiBmaWxsPSJ1cmwoI3BhaW50MV9yYWRpYWxfNjJfMzI5KSIvPgo8cGF0aCBkPSJNODQgOTRIMTAwQzEwMCA5Ny4zMTM3IDk3LjMxMzcgMTAwIDk0IDEwMEg4NFY5NFoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl82Ml8zMjkpIi8+CjxwYXRoIGQ9Ik0yNiAyMEwyNiAzNkgyMEwyMCAyNkMyMCAyMi42ODYzIDIyLjY4NjMgMjAgMjYgMjBaIiBmaWxsPSJ1cmwoI3BhaW50M19saW5lYXJfNjJfMzI5KSIvPgo8cGF0aCBkPSJNMjAgMzZIMjZDNTguMDMyNSAzNiA4NCA2MS45Njc1IDg0IDk0VjEwMEg2NlY5NEM2NiA3MS45MDg2IDQ4LjA5MTQgNTQgMjYgNTRIMjBWMzZaIiBmaWxsPSJ1cmwoI3BhaW50NF9yYWRpYWxfNjJfMzI5KSIvPgo8cGF0aCBkPSJNNjggOTRIODRWMTAwSDY4Vjk0WiIgZmlsbD0idXJsKCNwYWludDVfbGluZWFyXzYyXzMyOSkiLz4KPHBhdGggZD0iTTIwIDUyTDIwIDM2TDI2IDM2TDI2IDUySDIwWiIgZmlsbD0idXJsKCNwYWludDZfbGluZWFyXzYyXzMyOSkiLz4KPHBhdGggZD0iTTIwIDYyQzIwIDY1LjMxMzcgMjIuNjg2MyA2OCAyNiA2OEM0MC4zNTk0IDY4IDUyIDc5LjY0MDYgNTIgOTRDNTIgOTcuMzEzNyA1NC42ODYzIDEwMCA1OCAxMDBINjhWOTRDNjggNzAuODA0IDQ5LjE5NiA1MiAyNiA1MkgyMFY2MloiIGZpbGw9InVybCgjcGFpbnQ3X3JhZGlhbF82Ml8zMjkpIi8+CjxwYXRoIGQ9Ik01MiA5NEg2OFYxMDBINThDNTQuNjg2MyAxMDAgNTIgOTcuMzEzNyA1MiA5NFoiIGZpbGw9InVybCgjcGFpbnQ4X3JhZGlhbF82Ml8zMjkpIi8+CjxwYXRoIGQ9Ik0yNiA2OEMyMi42ODYzIDY4IDIwIDY1LjMxMzcgMjAgNjJMMjAgNTJMMjYgNTJMMjYgNjhaIiBmaWxsPSJ1cmwoI3BhaW50OV9yYWRpYWxfNjJfMzI5KSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzYyXzMyOSIgeDE9IjYwIiB5MT0iMCIgeDI9IjYwIiB5Mj0iMTIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxNzQyOTkiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDAxRTU5Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQxX3JhZGlhbF82Ml8zMjkiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjYgOTQpIHJvdGF0ZSgtOTApIHNjYWxlKDc0KSI+CjxzdG9wIG9mZnNldD0iMC43NzAyNzciIHN0b3AtY29sb3I9IiNGRjQwMDAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjODc1NEM5Ii8+CjwvcmFkaWFsR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl82Ml8zMjkiIHgxPSI4MyIgeTE9Ijk3IiB4Mj0iMTAwIiB5Mj0iOTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0ZGNDAwMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NzU0QzkiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDNfbGluZWFyXzYyXzMyOSIgeDE9IjIzIiB5MT0iMjAiIHgyPSIyMyIgeTI9IjM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM4NzU0QzkiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkY0MDAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQ0X3JhZGlhbF82Ml8zMjkiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjYgOTQpIHJvdGF0ZSgtOTApIHNjYWxlKDU4KSI+CjxzdG9wIG9mZnNldD0iMC43MjM5MjkiIHN0b3AtY29sb3I9IiNGRkY3MDAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRkY5OTAxIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ1X2xpbmVhcl82Ml8zMjkiIHgxPSI2OCIgeTE9Ijk3IiB4Mj0iODQiIHkyPSI5NyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjRkZGNzAwIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGOTkwMSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Nl9saW5lYXJfNjJfMzI5IiB4MT0iMjMiIHkxPSI1MiIgeDI9IjIzIiB5Mj0iMzYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0ZGRjcwMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGRjk5MDEiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDdfcmFkaWFsXzYyXzMyOSIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgyNiA5NCkgcm90YXRlKC05MCkgc2NhbGUoNDIpIj4KPHN0b3Agb2Zmc2V0PSIwLjU5NTEzIiBzdG9wLWNvbG9yPSIjMDBBQUZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAxREE0MCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50OF9yYWRpYWxfNjJfMzI5IiBjeD0iMCIgY3k9IjAiIHI9IjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDUxIDk3KSBzY2FsZSgxNyA0NS4zMzMzKSI+CjxzdG9wIHN0b3AtY29sb3I9IiMwMEFBRkYiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDFEQTQwIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxyYWRpYWxHcmFkaWVudCBpZD0icGFpbnQ5X3JhZGlhbF82Ml8zMjkiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjMgNjkpIHJvdGF0ZSgtOTApIHNjYWxlKDE3IDMyMi4zNykiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMDBBQUZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAxREE0MCIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.getEip6963Provider = function () {\n return window['_eip6963Providers'] ? Object.values(window['_eip6963Providers']).find(function (provider) {\n return _optionalChain$c([provider, 'optionalAccess', function (_4) {\n return _4.isRainbow;\n }]);\n }) : undefined;\n };\n }\n }, {\n key: \"__initStatic3\",\n value: function __initStatic3() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee46() {\n return _regeneratorRuntime.wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n return _context46.abrupt(\"return\", Rainbow.getEip6963Provider() || _optionalChain$c([window, 'optionalAccess', function (_5) {\n return _5.rainbow;\n }, 'optionalAccess', function (_6) {\n return _6.isRainbow;\n }]));\n\n case 1:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46);\n }));\n }\n }]);\n\n return Rainbow;\n}(WindowEthereum);\n\nRainbow.__initStatic();\n\nRainbow.__initStatic2();\n\nRainbow.__initStatic3();\n\nfunction _optionalChain$b(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value27;\n\n for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n args[_key27] = arguments[_key27];\n }\n\n return (_value27 = value).call.apply(_value27, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar KEY$1 = '_DePayWeb3WalletsConnectedSolanaMobileWalletInstance';\n\nvar base64StringToPublicKey = function base64StringToPublicKey(base64String) {\n var binaryString = window.atob(base64String);\n var len = binaryString.length;\n var bytes = new Uint8Array(len);\n\n for (var i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n return new PublicKey(bytes);\n};\n\nvar getIdentity = function getIdentity() {\n return {\n name: document.title,\n uri: window.location.origin.toString(),\n icon: getFavicon()\n };\n};\n\nvar getFavicon = function getFavicon() {\n var favicon = 'favicon.ico';\n var nodeList = document.getElementsByTagName(\"link\");\n\n for (var i = 0; i < nodeList.length; i++) {\n if (nodeList[i].getAttribute(\"rel\") == \"icon\" || nodeList[i].getAttribute(\"rel\") == \"shortcut icon\") {\n favicon = nodeList[i].getAttribute(\"href\");\n }\n }\n\n var explodedPath = favicon.split('/');\n return explodedPath[explodedPath.length - 1];\n};\n\nvar authToken;\n\nvar SolanaMobileWalletAdapter = /*#__PURE__*/function () {\n function SolanaMobileWalletAdapter() {\n var _this11 = this;\n\n _classCallCheck(this, SolanaMobileWalletAdapter);\n\n this.name = localStorage[KEY$1 + '_name'] && localStorage[KEY$1 + '_name'] != undefined ? localStorage[KEY$1 + '_name'] : this.constructor.info.name;\n this.logo = localStorage[KEY$1 + '_logo'] && localStorage[KEY$1 + '_logo'] != undefined ? localStorage[KEY$1 + '_logo'] : this.constructor.info.logo;\n this.blockchains = this.constructor.info.blockchains;\n\n this.sendTransaction = function (transaction) {\n return sendTransaction$3({\n wallet: _this11,\n transaction: transaction\n });\n };\n }\n\n _createClass(SolanaMobileWalletAdapter, [{\n key: \"authorize\",\n value: function () {\n var _authorize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee47(wallet) {\n var authorization;\n return _regeneratorRuntime.wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n _context47.next = 2;\n return wallet.authorize({\n cluster: 'mainnet-beta',\n identity: getIdentity()\n });\n\n case 2:\n authorization = _context47.sent;\n\n if (!(!authorization || !authorization.auth_token || !authorization.accounts || authorization.accounts.length === 0)) {\n _context47.next = 5;\n break;\n }\n\n return _context47.abrupt(\"return\");\n\n case 5:\n authToken = authorization.auth_token;\n this._account = base64StringToPublicKey(authorization.accounts[0].address).toString();\n return _context47.abrupt(\"return\", authorization);\n\n case 8:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47, this);\n }));\n\n function authorize(_x17) {\n return _authorize.apply(this, arguments);\n }\n\n return authorize;\n }()\n }, {\n key: \"reauthorize\",\n value: function () {\n var _reauthorize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee48(wallet, authToken) {\n var authorization;\n return _regeneratorRuntime.wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n _context48.next = 2;\n return wallet.reauthorize({\n auth_token: authToken,\n identity: getIdentity()\n });\n\n case 2:\n authorization = _context48.sent;\n\n if (!(!authorization || !authorization.auth_token || !authorization.accounts || authorization.accounts.length === 0)) {\n _context48.next = 5;\n break;\n }\n\n return _context48.abrupt(\"return\");\n\n case 5:\n authToken = authorization.auth_token;\n this._account = base64StringToPublicKey(authorization.accounts[0].address).toString();\n return _context48.abrupt(\"return\", authorization);\n\n case 8:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48, this);\n }));\n\n function reauthorize(_x18, _x19) {\n return _reauthorize.apply(this, arguments);\n }\n\n return reauthorize;\n }()\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"account\",\n value: function () {\n var _account3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee49() {\n return _regeneratorRuntime.wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n return _context49.abrupt(\"return\", this._account);\n\n case 1:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49, this);\n }));\n\n function account() {\n return _account3.apply(this, arguments);\n }\n\n return account;\n }()\n }, {\n key: \"connect\",\n value: function () {\n var _connect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee51(options) {\n var _this12 = this;\n\n return _regeneratorRuntime.wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n _context51.next = 2;\n return transact( /*#__PURE__*/function () {\n var _ref48 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee50(wallet) {\n return _regeneratorRuntime.wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n _context50.next = 2;\n return _this12.authorize(wallet);\n\n case 2:\n if (_optionalChain$b([options, 'optionalAccess', function (_) {\n return _.name;\n }])) {\n localStorage[KEY$1 + '_name'] = _this12.name = options.name;\n }\n\n if (_optionalChain$b([options, 'optionalAccess', function (_2) {\n return _2.logo;\n }])) {\n localStorage[KEY$1 + '_logo'] = _this12.logo = options.logo;\n }\n\n case 4:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50);\n }));\n\n return function (_x21) {\n return _ref48.apply(this, arguments);\n };\n }());\n\n case 2:\n return _context51.abrupt(\"return\", this._account);\n\n case 3:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51, this);\n }));\n\n function connect(_x20) {\n return _connect3.apply(this, arguments);\n }\n\n return connect;\n }()\n }, {\n key: \"connectedTo\",\n value: function () {\n var _connectedTo3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee52(input) {\n return _regeneratorRuntime.wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n if (!input) {\n _context52.next = 4;\n break;\n }\n\n return _context52.abrupt(\"return\", input == 'solana');\n\n case 4:\n return _context52.abrupt(\"return\", 'solana');\n\n case 5:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52);\n }));\n\n function connectedTo(_x22) {\n return _connectedTo3.apply(this, arguments);\n }\n\n return connectedTo;\n }()\n }, {\n key: \"switchTo\",\n value: function switchTo(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"addNetwork\",\n value: function addNetwork(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"on\",\n value: function on(event, callback) {}\n }, {\n key: \"off\",\n value: function off(event, callback) {}\n }, {\n key: \"sign\",\n value: function () {\n var _sign4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee54(message) {\n var _this13 = this;\n\n var encodedMessage, signedMessage;\n return _regeneratorRuntime.wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n encodedMessage = new TextEncoder().encode(message);\n _context54.next = 3;\n return transact( /*#__PURE__*/function () {\n var _ref49 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee53(wallet) {\n var authorization, signedMessages;\n return _regeneratorRuntime.wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n _context53.next = 2;\n return _this13.reauthorize(wallet, authToken);\n\n case 2:\n authorization = _context53.sent;\n _context53.next = 5;\n return wallet.signMessages({\n addresses: [authorization.accounts[0].address],\n payloads: [encodedMessage]\n });\n\n case 5:\n signedMessages = _context53.sent;\n return _context53.abrupt(\"return\", signedMessages[0]);\n\n case 7:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53);\n }));\n\n return function (_x24) {\n return _ref49.apply(this, arguments);\n };\n }());\n\n case 3:\n signedMessage = _context54.sent;\n return _context54.abrupt(\"return\", signedMessage);\n\n case 5:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54);\n }));\n\n function sign(_x23) {\n return _sign4.apply(this, arguments);\n }\n\n return sign;\n }()\n }, {\n key: \"_sendTransaction\",\n value: function () {\n var _sendTransaction2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee56(transaction) {\n var _this14 = this;\n\n var signature;\n return _regeneratorRuntime.wrap(function _callee56$(_context56) {\n while (1) {\n switch (_context56.prev = _context56.next) {\n case 0:\n _context56.next = 2;\n return transact( /*#__PURE__*/function () {\n var _ref50 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee55(wallet) {\n var transactionSignatures;\n return _regeneratorRuntime.wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n _context55.next = 2;\n return _this14.reauthorize(wallet, authToken);\n\n case 2:\n _context55.next = 4;\n return wallet.signAndSendTransactions({\n transactions: [transaction]\n });\n\n case 4:\n transactionSignatures = _context55.sent;\n return _context55.abrupt(\"return\", transactionSignatures[0]);\n\n case 6:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55);\n }));\n\n return function (_x26) {\n return _ref50.apply(this, arguments);\n };\n }());\n\n case 2:\n signature = _context56.sent;\n return _context56.abrupt(\"return\", signature);\n\n case 4:\n case \"end\":\n return _context56.stop();\n }\n }\n }, _callee56);\n }));\n\n function _sendTransaction(_x25) {\n return _sendTransaction2.apply(this, arguments);\n }\n\n return _sendTransaction;\n }()\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Solana Mobile Wallet',\n logo: \"\",\n blockchains: ['solana']\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee57() {\n return _regeneratorRuntime.wrap(function _callee57$(_context57) {\n while (1) {\n switch (_context57.prev = _context57.next) {\n case 0:\n return _context57.abrupt(\"return\", authToken);\n\n case 1:\n case \"end\":\n return _context57.stop();\n }\n }\n }, _callee57);\n }));\n }\n }]);\n\n return SolanaMobileWalletAdapter;\n}();\n\nSolanaMobileWalletAdapter.__initStatic();\n\nSolanaMobileWalletAdapter.__initStatic2();\n\nfunction _optionalChain$a(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value28;\n\n for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {\n args[_key28] = arguments[_key28];\n }\n\n return (_value28 = value).call.apply(_value28, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Solflare = /*#__PURE__*/function (_WindowSolana10) {\n _inherits(Solflare, _WindowSolana10);\n\n var _super24 = _createSuper(Solflare);\n\n function Solflare() {\n _classCallCheck(this, Solflare);\n\n return _super24.apply(this, arguments);\n }\n\n _createClass(Solflare, [{\n key: \"getProvider\",\n value: function getProvider() {\n return window.solflare;\n }\n }, {\n key: \"_sendTransaction\",\n value: function _sendTransaction(transaction) {\n return this.getProvider().signTransaction(transaction);\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Solflare',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MCA1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDA0MTI1OTU5ODg4MjM0NDgzNTI5MDAwMDAxMjg1ODg4NTIyOTkwNzM1MjI0MF8pO30KPC9zdHlsZT4KPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMC43OTg4IiB5MT0iMzkuOTEwOCIgeDI9IjMyLjM5NzYiIHkyPSIyMC4zNTc4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTIpIj4KCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkMxMEIiLz4KCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQjNGMkUiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI1LjEsNDIuNGMwLjQsMCwwLjcsMC4zLDAuNywwLjdjMCwwLjQtMC4zLDAuNy0wLjcsMC43cy0wLjctMC4zLTAuNy0wLjdDMjQuNCw0Mi43LDI0LjcsNDIuNCwyNS4xLDQyLjR6CgkgTTI0LjMsOC4zYzAuNCwwLDAuNiwwLjMsMC43LDAuNmwwLjksNi4yYzAuMywyLjEsMi44LDMsNC4zLDEuNmw4LjYtNy44YzAuMi0wLjIsMC41LTAuMiwwLjcsMGMwLjIsMC4yLDAuMiwwLjUsMCwwLjdMMzIsMTguMgoJYy0xLjQsMS42LTAuNCw0LjEsMS43LDQuM2w2LjYsMC42YzAuMywwLDAuNiwwLjMsMC41LDAuNmMwLDAuMy0wLjIsMC41LTAuNSwwLjVsLTcsMS4xYy0yLDAuMy0yLjksMi43LTEuNiw0LjJsMi40LDIuOQoJYzAuMiwwLjIsMC4yLDAuNi0wLjEsMC44Yy0wLjIsMC4yLTAuNSwwLjItMC43LDBsLTMtMi4zYy0xLjYtMS4yLTQtMC4yLTQuMSwxLjhsLTAuNyw3LjljMCwwLjMtMC4zLDAuNi0wLjYsMC41CgljLTAuMywwLTAuNS0wLjItMC41LTAuNWwtMS4xLTcuNmMtMC4zLTIuMS0yLjgtMy00LjMtMS42TDEwLDM5LjljLTAuMiwwLjItMC41LDAuMi0wLjcsMGMtMC4yLTAuMi0wLjItMC40LDAtMC42bDgtOS4yCgljMS40LTEuNiwwLjQtNC4xLTEuNy00LjNsLTYuNi0wLjZjLTAuMywwLTAuNi0wLjMtMC41LTAuNmMwLTAuMywwLjItMC41LDAuNS0wLjVsNy0xLjFjMi0wLjMsMi45LTIuNywxLjYtNC4ybC0xLjctMgoJYy0wLjItMC4zLTAuMi0wLjcsMC4xLTFjMC4yLTAuMiwwLjYtMC4yLDAuOSwwbDIsMS41YzEuNiwxLjIsNCwwLjIsNC4xLTEuOGwwLjYtNi41QzIzLjUsOC41LDIzLjksOC4yLDI0LjMsOC4zeiBNNi43LDIzLjgKCWMwLjQsMCwwLjcsMC4zLDAuNywwLjdzLTAuMywwLjctMC43LDAuN2MtMC40LDAtMC43LTAuMy0wLjctMC43UzYuMywyMy44LDYuNywyMy44eiBNNDIuOSwyMy4xYzAuNCwwLDAuNywwLjMsMC43LDAuNwoJYzAsMC40LTAuMywwLjctMC43LDAuN2MtMC40LDAtMC43LTAuMy0wLjctMC43QzQyLjIsMjMuNCw0Mi41LDIzLjEsNDIuOSwyMy4xeiBNMjQuMiw2YzAuNCwwLDAuNywwLjMsMC43LDAuNwoJYzAsMC40LTAuMywwLjctMC43LDAuN2MtMC40LDAtMC43LTAuMy0wLjctMC43QzIzLjUsNi4zLDIzLjgsNiwyNC4yLDZ6Ii8+CjxyYWRpYWxHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMDAzNTM3NjAxMTAwMjExMTQ0NDAwMDAwMDg4MDc5Mzk1MzE2NjY5Njc5MzhfIiBjeD0iLTIwMS40OTc5IiBjeT0iMjg1LjIxMTkiIHI9IjAuNzU5NyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0Ljk5MjIgMTIuMDYzOSAxMi4xODExIC01LjA0MDcgLTI0NDUuMjIzNCAzODkwLjE2MzYpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZDMTBCIi8+Cgk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRkIzRjJFIi8+CjwvcmFkaWFsR3JhZGllbnQ+CjxwYXRoIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfMDAwMDAxMDAzNTM3NjAxMTAwMjExMTQ0NDAwMDAwMDg4MDc5Mzk1MzE2NjY5Njc5MzhfKTsiIGQ9Ik0yNC42LDMwLjljMy44LDAsNi44LTMsNi44LTYuNwoJYzAtMy43LTMuMS02LjctNi44LTYuN3MtNi44LDMtNi44LDYuN0MxNy44LDI3LjksMjAuOSwzMC45LDI0LjYsMzAuOXoiLz4KPC9zdmc+Cg==',\n blockchains: ['solana']\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee58() {\n return _regeneratorRuntime.wrap(function _callee58$(_context58) {\n while (1) {\n switch (_context58.prev = _context58.next) {\n case 0:\n return _context58.abrupt(\"return\", _optionalChain$a([window, 'optionalAccess', function (_2) {\n return _2.solflare;\n }]) && window.solflare.isSolflare);\n\n case 1:\n case \"end\":\n return _context58.stop();\n }\n }\n }, _callee58);\n }));\n }\n }]);\n\n return Solflare;\n}(WindowSolana);\n\nSolflare.__initStatic();\n\nSolflare.__initStatic2();\n\nfunction _optionalChain$9(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value29;\n\n for (var _len29 = arguments.length, args = new Array(_len29), _key29 = 0; _key29 < _len29; _key29++) {\n args[_key29] = arguments[_key29];\n }\n\n return (_value29 = value).call.apply(_value29, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar TokenPocket = /*#__PURE__*/function (_WindowEthereum15) {\n _inherits(TokenPocket, _WindowEthereum15);\n\n var _super25 = _createSuper(TokenPocket);\n\n function TokenPocket() {\n _classCallCheck(this, TokenPocket);\n\n return _super25.apply(this, arguments);\n }\n\n _createClass(TokenPocket, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'TP Wallet (TokenPocket)',\n logo: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNDA4XzIyNSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMjQiIGhlaWdodD0iMTAyNCI+CjxyZWN0IHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIGZpbGw9IiNDNEM0QzQiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzQwOF8yMjUpIj4KPHBhdGggZD0iTTEwNDEuNTIgMEgtMjdWMTAyNEgxMDQxLjUyVjBaIiBmaWxsPSIjMjk4MEZFIi8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF80MDhfMjI1KSI+CjxwYXRoIGQ9Ik00MDYuNzk2IDQzOC42NDNINDA2LjkyN0M0MDYuNzk2IDQzNy44NTcgNDA2Ljc5NiA0MzYuOTQgNDA2Ljc5NiA0MzYuMTU0VjQzOC42NDNaIiBmaWxsPSIjMjlBRUZGIi8+CjxwYXRoIGQ9Ik02NjcuNjAyIDQ2My41MzNINTIzLjI0OVY3MjQuMDc2QzUyMy4yNDkgNzM2LjM4OSA1MzMuMjA0IDc0Ni4zNDUgNTQ1LjUxNyA3NDYuMzQ1SDY0NS4zMzNDNjU3LjY0NyA3NDYuMzQ1IDY2Ny42MDIgNzM2LjM4OSA2NjcuNjAyIDcyNC4wNzZWNDYzLjUzM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00NTMuNTYzIDI3N0g0NDguNzE2SDE5MC4yNjlDMTc3Ljk1NSAyNzcgMTY4IDI4Ni45NTUgMTY4IDI5OS4yNjlWMzg5LjY1M0MxNjggNDAxLjk2NyAxNzcuOTU1IDQxMS45MjIgMTkwLjI2OSA0MTEuOTIySDI1MC45MThIMjc1LjAyMVY0MzguNjQ0VjcyNC43MzFDMjc1LjAyMSA3MzcuMDQ1IDI4NC45NzYgNzQ3IDI5Ny4yODkgNzQ3SDM5Mi4xMjhDNDA0LjQ0MSA3NDcgNDE0LjM5NiA3MzcuMDQ1IDQxNC4zOTYgNzI0LjczMVY0MzguNjQ0VjQzNi4xNTZWNDExLjkyMkg0MzguNDk5SDQ0OC4zMjNINDUzLjE3QzQ5MC4zNzIgNDExLjkyMiA1MjAuNjMxIDM4MS42NjMgNTIwLjYzMSAzNDQuNDYxQzUyMS4wMjQgMzA3LjI1OSA0OTAuNzY1IDI3NyA0NTMuNTYzIDI3N1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik02NjcuNzM1IDQ2My41MzNWNjQ1LjM1QzY3Mi43MTMgNjQ2LjUyOSA2NzcuODIxIDY0Ny40NDYgNjgzLjA2MSA2NDguMjMyQzY5MC4zOTcgNjQ5LjI4IDY5Ny45OTQgNjQ5LjkzNSA3MDUuNTkyIDY1MC4wNjZDNzA1Ljk4NSA2NTAuMDY2IDcwNi4zNzggNjUwLjA2NiA3MDYuOTAyIDY1MC4wNjZWNTA1LjQ1QzY4NS4wMjYgNTA0LjAwOSA2NjcuNzM1IDQ4NS44MDEgNjY3LjczNSA0NjMuNTMzWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQwOF8yMjUpIi8+CjxwYXRoIGQ9Ik03MDkuNzgxIDI3N0M2MDYuODIyIDI3NyA1MjMuMjQ5IDM2MC41NzMgNTIzLjI0OSA0NjMuNTMzQzUyMy4yNDkgNTUyLjA4NCA1ODQuOTQ2IDYyNi4yMjUgNjY3LjczMyA2NDUuMzVWNDYzLjUzM0M2NjcuNzMzIDQ0MC4zNDcgNjg2LjU5NiA0MjEuNDg0IDcwOS43ODEgNDIxLjQ4NEM3MzIuOTY3IDQyMS40ODQgNzUxLjgzIDQ0MC4zNDcgNzUxLjgzIDQ2My41MzNDNzUxLjgzIDQ4My4wNTEgNzM4LjYgNDk5LjQyNSA3MjAuNTIzIDUwNC4xNEM3MTcuMTE3IDUwNS4wNTcgNzEzLjQ0OSA1MDUuNTgxIDcwOS43ODEgNTA1LjU4MVY2NTAuMDY2QzcxMy40NDkgNjUwLjA2NiA3MTYuOTg2IDY0OS45MzUgNzIwLjUyMyA2NDkuODA0QzgxOC41MDUgNjQ0LjE3MSA4OTYuMzE0IDU2Mi45NTYgODk2LjMxNCA0NjMuNTMzQzg5Ni40NDUgMzYwLjU3MyA4MTIuODcyIDI3NyA3MDkuNzgxIDI3N1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03MDkuNzggNjUwLjA2NlY1MDUuNTgxQzcwOC43MzMgNTA1LjU4MSA3MDcuODE2IDUwNS41ODEgNzA2Ljc2OCA1MDUuNDVWNjUwLjA2NkM3MDcuODE2IDY1MC4wNjYgNzA4Ljg2NCA2NTAuMDY2IDcwOS43OCA2NTAuMDY2WiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNDA4XzIyNSIgeDE9IjcwOS44NDQiIHkxPSI1NTYuODI3IiB4Mj0iNjY3Ljc1MyIgeTI9IjU1Ni44MjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0id2hpdGUiLz4KPHN0b3Agb2Zmc2V0PSIwLjk2NjciIHN0b3AtY29sb3I9IndoaXRlIiBzdG9wLW9wYWNpdHk9IjAuMzIzMyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIiBzdG9wLW9wYWNpdHk9IjAuMyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzQwOF8yMjUiPgo8cmVjdCB3aWR0aD0iNzI4LjQ0OCIgaGVpZ2h0PSI0NzAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjggMjc3KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee59() {\n return _regeneratorRuntime.wrap(function _callee59$(_context59) {\n while (1) {\n switch (_context59.prev = _context59.next) {\n case 0:\n return _context59.abrupt(\"return\", _optionalChain$9([window, 'optionalAccess', function (_3) {\n return _3.ethereum;\n }, 'optionalAccess', function (_4) {\n return _4.isTokenPocket;\n }]));\n\n case 1:\n case \"end\":\n return _context59.stop();\n }\n }\n }, _callee59);\n }));\n }\n }]);\n\n return TokenPocket;\n}(WindowEthereum);\n\nTokenPocket.__initStatic();\n\nTokenPocket.__initStatic2();\n\nfunction _optionalChain$8(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value30;\n\n for (var _len30 = arguments.length, args = new Array(_len30), _key30 = 0; _key30 < _len30; _key30++) {\n args[_key30] = arguments[_key30];\n }\n\n return (_value30 = value).call.apply(_value30, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar TrustEVM = /*#__PURE__*/function (_WindowEthereum16) {\n _inherits(TrustEVM, _WindowEthereum16);\n\n var _super26 = _createSuper(TrustEVM);\n\n function TrustEVM() {\n _classCallCheck(this, TrustEVM);\n\n return _super26.apply(this, arguments);\n }\n\n _createClass(TrustEVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Trust Wallet',\n logo: logos.trust,\n blockchains: supported$1.evm,\n platform: 'evm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee60() {\n return _regeneratorRuntime.wrap(function _callee60$(_context60) {\n while (1) {\n switch (_context60.prev = _context60.next) {\n case 0:\n return _context60.abrupt(\"return\", (_optionalChain$8([window, 'optionalAccess', function (_5) {\n return _5.ethereum;\n }, 'optionalAccess', function (_6) {\n return _6.isTrust;\n }]) || _optionalChain$8([window, 'optionalAccess', function (_7) {\n return _7.ethereum;\n }, 'optionalAccess', function (_8) {\n return _8.isTrustWallet;\n }])) && Object.keys(window.ethereum).filter(function (key) {\n return key.match(/^is(?!Connected)(?!Debug)(?!TrustWallet)(?!MetaMask)(?!PocketUniverse)(?!RevokeCash)/);\n }).length == 1);\n\n case 1:\n case \"end\":\n return _context60.stop();\n }\n }\n }, _callee60);\n }));\n }\n }]);\n\n return TrustEVM;\n}(WindowEthereum);\n\nTrustEVM.__initStatic();\n\nTrustEVM.__initStatic2();\n\nfunction _optionalChain$7(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value31;\n\n for (var _len31 = arguments.length, args = new Array(_len31), _key31 = 0; _key31 < _len31; _key31++) {\n args[_key31] = arguments[_key31];\n }\n\n return (_value31 = value).call.apply(_value31, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar TrustSVM = /*#__PURE__*/function (_WindowSolana11) {\n _inherits(TrustSVM, _WindowSolana11);\n\n var _super27 = _createSuper(TrustSVM);\n\n function TrustSVM() {\n _classCallCheck(this, TrustSVM);\n\n return _super27.apply(this, arguments);\n }\n\n _createClass(TrustSVM, null, [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Trust Wallet',\n logo: logos.trust,\n blockchains: supported$1.solana,\n platform: 'svm'\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee61() {\n return _regeneratorRuntime.wrap(function _callee61$(_context61) {\n while (1) {\n switch (_context61.prev = _context61.next) {\n case 0:\n return _context61.abrupt(\"return\", _optionalChain$7([window, 'access', function (_3) {\n return _3.solana;\n }, 'optionalAccess', function (_4) {\n return _4.isTrustWallet;\n }]));\n\n case 1:\n case \"end\":\n return _context61.stop();\n }\n }\n }, _callee61);\n }));\n }\n }]);\n\n return TrustSVM;\n}(WindowSolana);\n\nTrustSVM.__initStatic();\n\nTrustSVM.__initStatic2();\n\nfunction _optionalChain$6(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value32;\n\n for (var _len32 = arguments.length, args = new Array(_len32), _key32 = 0; _key32 < _len32; _key32++) {\n args[_key32] = arguments[_key32];\n }\n\n return (_value32 = value).call.apply(_value32, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Uniswap = /*#__PURE__*/function (_WindowEthereum17) {\n _inherits(Uniswap, _WindowEthereum17);\n\n var _super28 = _createSuper(Uniswap);\n\n function Uniswap() {\n _classCallCheck(this, Uniswap);\n\n return _super28.apply(this, arguments);\n }\n\n _createClass(Uniswap, [{\n key: \"getProvider\",\n value: function getProvider() {\n return Uniswap.getEip6963Provider() || _optionalChain$6([window, 'optionalAccess', function (_7) {\n return _7.ethereum;\n }, 'optionalAccess', function (_8) {\n return _8.isUniswapWallet;\n }]) && _optionalChain$6([window, 'optionalAccess', function (_9) {\n return _9.ethereum;\n }]);\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Uniswap',\n logo: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQxIiBoZWlnaHQ9IjY0MCIgdmlld0JveD0iMCAwIDY0MSA2NDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0yMjQuNTM0IDEyMy4yMjZDMjE4LjY5MiAxMjIuMzIgMjE4LjQ0NSAxMjIuMjEzIDIyMS4xOTUgMTIxLjc5MUMyMjYuNDY0IDEyMC45OCAyMzguOTA1IDEyMi4wODUgMjQ3LjQ3OSAxMjQuMTIzQzI2Ny40OTQgMTI4Ljg4MSAyODUuNzA3IDE0MS4wNjkgMzA1LjE0OCAxNjIuNzE0TDMxMC4zMTMgMTY4LjQ2NUwzMTcuNzAxIDE2Ny4yNzdDMzQ4LjgyOCAxNjIuMjc1IDM4MC40OTMgMTY2LjI1IDQwNi45NzggMTc4LjQ4NUM0MTQuMjY0IDE4MS44NTEgNDI1Ljc1MiAxODguNTUyIDQyNy4xODcgMTkwLjI3NEM0MjcuNjQ1IDE5MC44MjIgNDI4LjQ4NSAxOTQuMzU1IDQyOS4wNTMgMTk4LjEyNEM0MzEuMDIgMjExLjE2NCA0MzAuMDM2IDIyMS4xNiA0MjYuMDQ3IDIyOC42MjVDNDIzLjg3NyAyMzIuNjg4IDQyMy43NTYgMjMzLjk3NSA0MjUuMjE1IDIzNy40NTJDNDI2LjM4IDI0MC4yMjcgNDI5LjYyNyAyNDIuMjggNDMyLjg0MyAyNDIuMjc2QzQzOS40MjUgMjQyLjI2NyA0NDYuNTA5IDIzMS42MjcgNDQ5Ljc5MSAyMTYuODIzTDQ1MS4wOTUgMjEwLjk0M0w0NTMuNjc4IDIxMy44NjhDNDY3Ljg0NiAyMjkuOTIgNDc4Ljk3NCAyNTEuODExIDQ4MC44ODUgMjY3LjM5M0w0ODEuMzgzIDI3MS40NTVMNDc5LjAwMiAyNjcuNzYyQzQ3NC45MDMgMjYxLjQwNyA0NzAuNzg1IDI1Ny4wOCA0NjUuNTEyIDI1My41OTFDNDU2LjAwNiAyNDcuMzAxIDQ0NS45NTUgMjQ1LjE2MSA0MTkuMzM3IDI0My43NThDMzk1LjI5NiAyNDIuNDkxIDM4MS42OSAyNDAuNDM4IDM2OC4xOTggMjM2LjAzOEMzNDUuMjQ0IDIyOC41NTQgMzMzLjY3MiAyMTguNTg3IDMwNi40MDUgMTgyLjgxMkMyOTQuMjk0IDE2Ni45MjMgMjg2LjgwOCAxNTguMTMxIDI3OS4zNjIgMTUxLjA1MUMyNjIuNDQyIDEzNC45NjQgMjQ1LjgxNiAxMjYuNTI3IDIyNC41MzQgMTIzLjIyNloiIGZpbGw9IiNGRjAwN0EiLz4KPHBhdGggZD0iTTQzMi42MSAxNTguNzA0QzQzMy4yMTUgMTQ4LjA1NyA0MzQuNjU5IDE0MS4wMzMgNDM3LjU2MiAxMzQuNjJDNDM4LjcxMSAxMzIuMDgxIDQzOS43ODggMTMwLjAwMyA0MzkuOTU0IDEzMC4wMDNDNDQwLjEyIDEzMC4wMDMgNDM5LjYyMSAxMzEuODc3IDQzOC44NDQgMTM0LjE2N0M0MzYuNzMzIDE0MC4zOTIgNDM2LjM4NyAxNDguOTA1IDQzNy44NCAxNTguODExQzQzOS42ODYgMTcxLjM3OSA0NDAuNzM1IDE3My4xOTIgNDU0LjAxOSAxODYuNzY5QzQ2MC4yNSAxOTMuMTM3IDQ2Ny40OTcgMjAxLjE2OCA0NzAuMTI0IDIwNC42MTZMNDc0LjkwMSAyMTAuODg2TDQ3MC4xMjQgMjA2LjQwNUM0NjQuMjgyIDIwMC45MjYgNDUwLjg0NyAxOTAuMjQgNDQ3Ljg3OSAxODguNzEyQzQ0NS44OSAxODcuNjg4IDQ0NS41OTQgMTg3LjcwNSA0NDQuMzY2IDE4OC45MjdDNDQzLjIzNSAxOTAuMDUzIDQ0Mi45OTcgMTkxLjc0NCA0NDIuODQgMTk5Ljc0MUM0NDIuNTk2IDIxMi4yMDQgNDQwLjg5NyAyMjAuMjA0IDQzNi43OTcgMjI4LjIwM0M0MzQuNTggMjMyLjUyOSA0MzQuMjMgMjMxLjYwNiA0MzYuMjM3IDIyNi43MjNDNDM3LjczNSAyMjMuMDc3IDQzNy44ODcgMjIxLjQ3NCA0MzcuODc2IDIwOS40MDhDNDM3Ljg1MyAxODUuMTY3IDQzNC45NzUgMTc5LjMzOSA0MTguMDk3IDE2OS4zNTVDNDEzLjgyMSAxNjYuODI2IDQwNi43NzYgMTYzLjE3OCA0MDIuNDQyIDE2MS4yNDlDMzk4LjEwNyAxNTkuMzIgMzk0LjY2NCAxNTcuNjM5IDM5NC43ODkgMTU3LjUxNEMzOTUuMjY3IDE1Ny4wMzggNDExLjcyNyAxNjEuODQyIDQxOC4zNTIgMTY0LjM5QzQyOC4yMDYgMTY4LjE4MSA0MjkuODMzIDE2OC42NzIgNDMxLjAzIDE2OC4yMTVDNDMxLjgzMiAxNjcuOTA5IDQzMi4yMiAxNjUuNTcyIDQzMi42MSAxNTguNzA0WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBkPSJNMjM1Ljg4MyAyMDAuMTc1QzIyNC4wMjIgMTgzLjg0NiAyMTYuNjg0IDE1OC44MDkgMjE4LjI3MiAxNDAuMDkzTDIxOC43NjQgMTM0LjMwMUwyMjEuNDYzIDEzNC43OTRDMjI2LjUzNCAxMzUuNzE5IDIzNS4yNzUgMTM4Ljk3MyAyMzkuMzY5IDE0MS40NTlDMjUwLjYwMiAxNDguMjgxIDI1NS40NjUgMTU3LjI2MyAyNjAuNDEzIDE4MC4zMjhDMjYxLjg2MiAxODcuMDgzIDI2My43NjMgMTk0LjcyOCAyNjQuNjM4IDE5Ny4zMTdDMjY2LjA0NyAyMDEuNDgzIDI3MS4zNjkgMjExLjIxNCAyNzUuNjk2IDIxNy41MzRDMjc4LjgxMyAyMjIuMDg1IDI3Ni43NDMgMjI0LjI0MiAyNjkuODUzIDIyMy42MkMyNTkuMzMxIDIyMi42NyAyNDUuMDc4IDIxMi44MzQgMjM1Ljg4MyAyMDAuMTc1WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBkPSJNNDE4LjIyMyAzMjEuNzA3QzM2Mi43OTMgMjk5LjM4OSAzNDMuMjcxIDI4MC4wMTcgMzQzLjI3MSAyNDcuMzMxQzM0My4yNzEgMjQyLjUyMSAzNDMuNDM3IDIzOC41ODUgMzQzLjYzOCAyMzguNTg1QzM0My44NCAyMzguNTg1IDM0NS45ODUgMjQwLjE3MyAzNDguNDA0IDI0Mi4xMTNDMzU5LjY0NCAyNTEuMTI4IDM3Mi4yMzEgMjU0Ljk3OSA0MDcuMDc2IDI2MC4wNjJDNDI3LjU4IDI2My4wNTQgNDM5LjExOSAyNjUuNDcgNDQ5Ljc2MyAyNjlDNDgzLjU5NSAyODAuMjIgNTA0LjUyNyAzMDIuOTkgNTA5LjUxOCAzMzQuMDA0QzUxMC45NjkgMzQzLjAxNiA1MTAuMTE4IDM1OS45MTUgNTA3Ljc2NiAzNjguODIyQzUwNS45MSAzNzUuODU3IDUwMC4yNDUgMzg4LjUzNyA0OTguNzQyIDM4OS4wMjNDNDk4LjMyNSAzODkuMTU4IDQ5Ny45MTcgMzg3LjU2MiA0OTcuODEgMzg1LjM4OUM0OTcuMjQgMzczLjc0NCA0OTEuMzU1IDM2Mi40MDYgNDgxLjQ3MiAzNTMuOTEzQzQ3MC4yMzUgMzQ0LjI1NyA0NTUuMTM3IDMzNi41NjkgNDE4LjIyMyAzMjEuNzA3WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBkPSJNMzc5LjMxIDMzMC45NzhDMzc4LjYxNSAzMjYuODQ2IDM3Ny40MTEgMzIxLjU2OCAzNzYuNjMzIDMxOS4yNUwzNzUuMjE5IDMxNS4wMzZMMzc3Ljg0NiAzMTcuOTg1QzM4MS40ODEgMzIyLjA2NSAzODQuMzU0IDMyNy4yODcgMzg2Ljc4OSAzMzQuMjQxQzM4OC42NDcgMzM5LjU0OSAzODguODU2IDM0MS4xMjcgMzg4Ljg0MiAzNDkuNzUzQzM4OC44MjggMzU4LjIyMSAzODguNTk2IDM1OS45OTYgMzg2Ljg4IDM2NC43NzNDMzg0LjE3NCAzNzIuMzA3IDM4MC44MTYgMzc3LjY0OSAzNzUuMTgxIDM4My4zODNDMzY1LjA1NiAzOTMuNjg4IDM1Mi4wMzggMzk5LjM5MyAzMzMuMjUzIDQwMS43NkMzMjkuOTg3IDQwMi4xNzEgMzIwLjQ3IDQwMi44NjQgMzEyLjEwMyA0MDMuMjk5QzI5MS4wMTYgNDA0LjM5NSAyNzcuMTM4IDQwNi42NjEgMjY0LjY2OCA0MTEuMDRDMjYyLjg3NSA0MTEuNjcgMjYxLjI3NCA0MTIuMDUyIDI2MS4xMTIgNDExLjg5QzI2MC42MDcgNDExLjM4OCAyNjkuMDk4IDQwNi4zMjYgMjc2LjExMSA0MDIuOTQ4QzI4NS45OTkgMzk4LjE4NSAyOTUuODQyIDM5NS41ODYgMzE3Ljg5NyAzOTEuOTEzQzMyOC43OTIgMzkwLjA5OCAzNDAuMDQzIDM4Ny44OTcgMzQyLjkgMzg3LjAyMUMzNjkuODggMzc4Ljc0OSAzODMuNzQ4IDM1Ny40MDIgMzc5LjMxIDMzMC45NzhaIiBmaWxsPSIjRkYwMDdBIi8+CjxwYXRoIGQ9Ik00MDQuNzE5IDM3Ni4xMDVDMzk3LjM1NSAzNjAuMjczIDM5NS42NjQgMzQ0Ljk4OCAzOTkuNjk4IDMzMC43MzJDNDAwLjEzIDMyOS4yMDkgNDAwLjgyNCAzMjcuOTYyIDQwMS4yNDIgMzI3Ljk2MkM0MDEuNjU5IDMyNy45NjIgNDAzLjM5NyAzMjguOTAyIDQwNS4xMDMgMzMwLjA1QzQwOC40OTcgMzMyLjMzNSA0MTUuMzAzIDMzNi4xODIgNDMzLjQzNyAzNDYuMDY5QzQ1Ni4wNjUgMzU4LjQwNiA0NjguOTY2IDM2Ny45NTkgNDc3Ljc0IDM3OC44NzNDNDg1LjQyMyAzODguNDMyIDQ5MC4xNzggMzk5LjMxOCA0OTIuNDY3IDQxMi41OTNDNDkzLjc2MiA0MjAuMTEzIDQ5My4wMDMgNDM4LjIwNiA0OTEuMDc0IDQ0NS43NzhDNDg0Ljk5IDQ2OS42NTMgNDcwLjg1IDQ4OC40MDYgNDUwLjY4MiA0OTkuMzQ5QzQ0Ny43MjcgNTAwLjk1MiA0NDUuMDc1IDUwMi4yNjkgNDQ0Ljc4OCA1MDIuMjc1QzQ0NC41MDEgNTAyLjI4IDQ0NS41NzcgNDk5LjU0MyA0NDcuMTggNDk2LjE5MUM0NTMuOTY1IDQ4Mi4wMDkgNDU0LjczNyA0NjguMjE0IDQ0OS42MDggNDUyLjg1OUM0NDYuNDY3IDQ0My40NTcgNDQwLjA2NCA0MzEuOTg1IDQyNy4xMzUgNDEyLjU5NkM0MTIuMTAzIDM5MC4wNTQgNDA4LjQxNyAzODQuMDU0IDQwNC43MTkgMzc2LjEwNVoiIGZpbGw9IiNGRjAwN0EiLz4KPHBhdGggZD0iTTE5Ni41MTkgNDYxLjUyNUMyMTcuMDg5IDQ0NC4xNTcgMjQyLjY4MiA0MzEuODE5IDI2NS45OTYgNDI4LjAzMkMyNzYuMDQzIDQyNi4zOTkgMjkyLjc4IDQyNy4wNDcgMzAyLjA4NCA0MjkuNDI4QzMxNi45OTggNDMzLjI0NSAzMzAuMzM4IDQ0MS43OTMgMzM3LjI3NiA0NTEuOTc4QzM0NC4wNTcgNDYxLjkzMiAzNDYuOTY2IDQ3MC42MDYgMzQ5Ljk5NSA0ODkuOTA2QzM1MS4xODkgNDk3LjUxOSAzNTIuNDg5IDUwNS4xNjQgMzUyLjg4MiA1MDYuODk1QzM1NS4xNTYgNTE2Ljg5NyAzNTkuNTgzIDUyNC44OTIgMzY1LjA2NyA1MjguOTA3QzM3My43NzkgNTM1LjI4MyAzODguNzggNTM1LjY4IDQwMy41MzYgNTI5LjkyNEM0MDYuMDQxIDUyOC45NDcgNDA4LjIxNSA1MjguMjcxIDQwOC4zNjggNTI4LjQyNEM0MDguOTAzIDUyOC45NTUgNDAxLjQ3MyA1MzMuOTMgMzk2LjIzIDUzNi41NDhDMzg5LjE3NyA1NDAuMDcxIDM4My41NjggNTQxLjQzNCAzNzYuMTE1IDU0MS40MzRDMzYyLjYgNTQxLjQzNCAzNTEuMzc5IDUzNC41NTggMzQyLjAxNiA1MjAuNTM5QzM0MC4xNzQgNTE3Ljc4IDMzNi4wMzIgNTA5LjUxNiAzMzIuODEzIDUwMi4xNzZDMzIyLjkyOCA0NzkuNjI4IDMxOC4wNDYgNDcyLjc1OSAzMDYuNTY4IDQ2NS4yNDJDMjk2LjU3OSA0NTguNzAxIDI4My42OTcgNDU3LjUzIDI3NC4wMDYgNDYyLjI4MkMyNjEuMjc2IDQ2OC41MjMgMjU3LjcyNCA0ODQuNzkxIDI2Ni44NDIgNDk1LjEwMUMyNzAuNDY1IDQ5OS4xOTggMjc3LjIyMyA1MDIuNzMyIDI4Mi43NDkgNTAzLjQxOUMyOTMuMDg2IDUwNC43MDUgMzAxLjk3IDQ5Ni44NDEgMzAxLjk3IDQ4Ni40MDRDMzAxLjk3IDQ3OS42MjcgMjk5LjM2NSA0NzUuNzYgMjkyLjgwOCA0NzIuODAxQzI4My44NTIgNDY4Ljc2IDI3NC4yMjYgNDczLjQ4MyAyNzQuMjcyIDQ4MS44OTdDMjc0LjI5MiA0ODUuNDg0IDI3NS44NTQgNDg3LjczNyAyNzkuNDUgNDg5LjM2NEMyODEuNzU3IDQ5MC40MDggMjgxLjgxMSA0OTAuNDkxIDI3OS45MjkgNDkwLjFDMjcxLjcxMiA0ODguMzk2IDI2OS43ODcgNDc4LjQ5IDI3Ni4zOTQgNDcxLjkxM0MyODQuMzI2IDQ2NC4wMTggMzAwLjcyOSA0NjcuNTAyIDMwNi4zNjIgNDc4LjI3OUMzMDguNzI4IDQ4Mi44MDUgMzA5LjAwMyA0OTEuODIgMzA2Ljk0IDQ5Ny4yNjRDMzAyLjMyMiA1MDkuNDQ4IDI4OC44NTkgNTE1Ljg1NSAyNzUuMjAxIDUxMi4zNjhDMjY1LjkwMyA1MDkuOTk0IDI2Mi4xMTcgNTA3LjQyNCAyNTAuOTA2IDQ5NS44NzZDMjMxLjQyNSA0NzUuODA5IDIyMy44NjIgNDcxLjkyIDE5NS43NzcgNDY3LjUzNkwxOTAuMzk1IDQ2Ni42OTZMMTk2LjUxOSA0NjEuNTI1WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ5LjYyMDIgMTIuMDAzMUMxMTQuNjc4IDkwLjk2MzggMjE0Ljk3NyAyMTMuOTAxIDIxOS45NTcgMjIwLjc4NEMyMjQuMDY4IDIyNi40NjcgMjIyLjUyMSAyMzEuNTc2IDIxNS40NzggMjM1LjU4QzIxMS41NjEgMjM3LjgwNyAyMDMuNTA4IDI0MC4wNjMgMTk5LjQ3NiAyNDAuMDYzQzE5NC45MTYgMjQwLjA2MyAxODkuNzc5IDIzNy44NjcgMTg2LjAzOCAyMzQuMzE4QzE4My4zOTMgMjMxLjgxIDE3Mi43MjEgMjE1Ljg3NCAxNDguMDg0IDE3Ny42NDZDMTI5LjIzMyAxNDguMzk2IDExMy40NTcgMTI0LjEzMSAxMTMuMDI3IDEyMy43MjVDMTEyLjAzMiAxMjIuNzg1IDExMi4wNDkgMTIyLjgxNyAxNDYuMTYyIDE4My44NTRDMTY3LjU4MiAyMjIuMTgxIDE3NC44MTMgMjM1LjczMSAxNzQuODEzIDIzNy41NDNDMTc0LjgxMyAyNDEuMjI5IDE3My44MDggMjQzLjE2NiAxNjkuMjYxIDI0OC4yMzhDMTYxLjY4MSAyNTYuNjk0IDE1OC4yOTMgMjY2LjE5NSAxNTUuODQ3IDI4NS44NTlDMTUzLjEwNCAzMDcuOTAyIDE0NS4zOTQgMzIzLjQ3MyAxMjQuMDI2IDM1MC4xMjJDMTExLjUxOCAzNjUuNzIyIDEwOS40NzEgMzY4LjU4MSAxMDYuMzE1IDM3NC44NjlDMTAyLjMzOSAzODIuNzg2IDEwMS4yNDYgMzg3LjIyMSAxMDAuODAzIDM5Ny4yMTlDMTAwLjMzNSA0MDcuNzkgMTAxLjI0NyA0MTQuNjE5IDEwNC40NzcgNDI0LjcyNkMxMDcuMzA0IDQzMy41NzUgMTEwLjI1NSA0MzkuNDE3IDExNy44IDQ1MS4xMDRDMTI0LjMxMSA0NjEuMTg4IDEyOC4wNjEgNDY4LjY4MyAxMjguMDYxIDQ3MS42MTRDMTI4LjA2MSA0NzMuOTQ3IDEyOC41MDYgNDczLjk1IDEzOC41OTYgNDcxLjY3MkMxNjIuNzQxIDQ2Ni4yMTkgMTgyLjM0OCA0NTYuNjI5IDE5My4zNzUgNDQ0Ljg3N0MyMDAuMTk5IDQzNy42MDMgMjAxLjgwMSA0MzMuNTg2IDIwMS44NTMgNDIzLjYxOEMyMDEuODg3IDQxNy4wOTggMjAxLjY1OCA0MTUuNzMzIDE5OS44OTYgNDExLjk4MkMxOTcuMDI3IDQwNS44NzcgMTkxLjgwNCA0MDAuODAxIDE4MC4yOTIgMzkyLjkzMkMxNjUuMjA5IDM4Mi42MjEgMTU4Ljc2NyAzNzQuMzIgMTU2Ljk4NyAzNjIuOTA0QzE1NS41MjcgMzUzLjUzNyAxNTcuMjIxIDM0Ni45MjggMTY1LjU2NSAzMjkuNDRDMTc0LjIwMiAzMTEuMzM4IDE3Ni4zNDIgMzAzLjYyNCAxNzcuNzkgMjg1LjM3OEMxNzguNzI1IDI3My41ODkgMTgwLjAyIDI2OC45NCAxODMuNDA3IDI2NS4yMDlDMTg2LjkzOSAyNjEuMzE3IDE5MC4xMTkgMjYwIDE5OC44NjEgMjU4LjgwNUMyMTMuMTEzIDI1Ni44NTggMjIyLjE4OCAyNTMuMTcxIDIyOS42NDggMjQ2LjI5N0MyMzYuMTE5IDI0MC4zMzQgMjM4LjgyNyAyMzQuNTg4IDIzOS4yNDMgMjI1LjkzOEwyMzkuNTU4IDIxOS4zODJMMjM1Ljk0MiAyMTUuMTY2QzIyMi44NDYgMTk5Ljg5NiA0MC44NSAwIDQwLjA0NCAwQzM5Ljg3MTkgMCA0NC4xODEzIDUuNDAxNzggNDkuNjIwMiAxMi4wMDMxWk0xMzUuNDEyIDQwOS4xOEMxMzguMzczIDQwMy45MzcgMTM2LjggMzk3LjE5NSAxMzEuODQ3IDM5My45MDJDMTI3LjE2NyAzOTAuNzkgMTE5Ljg5NyAzOTIuMjU2IDExOS44OTcgMzk2LjMxMUMxMTkuODk3IDM5Ny41NDggMTIwLjU4MiAzOTguNDQ5IDEyMi4xMjQgMzk5LjI0M0MxMjQuNzIgNDAwLjU3OSAxMjQuOTA5IDQwMi4wODEgMTIyLjg2NiA0MDUuMTUyQzEyMC43OTcgNDA4LjI2MiAxMjAuOTY0IDQxMC45OTYgMTIzLjMzNyA0MTIuODU0QzEyNy4xNjIgNDE1Ljg0OSAxMzIuNTc2IDQxNC4yMDIgMTM1LjQxMiA0MDkuMThaIiBmaWxsPSIjRkYwMDdBIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQ4LjU1MiAyNjIuMjQ0QzI0MS44NjIgMjY0LjI5OSAyMzUuMzU4IDI3MS4zOSAyMzMuMzQ0IDI3OC44MjZDMjMyLjExNiAyODMuMzYyIDIzMi44MTMgMjkxLjMxOSAyMzQuNjUzIDI5My43NzZDMjM3LjYyNSAyOTcuNzQ1IDI0MC40OTkgMjk4Ljc5MSAyNDguMjgyIDI5OC43MzZDMjYzLjUxOCAyOTguNjMgMjc2Ljc2NCAyOTIuMDk1IDI3OC4zMDQgMjgzLjkyNUMyNzkuNTY3IDI3Ny4yMjkgMjczLjc0OSAyNjcuOTQ4IDI2NS43MzYgMjYzLjg3NEMyNjEuNjAxIDI2MS43NzIgMjUyLjgwNyAyNjAuOTM4IDI0OC41NTIgMjYyLjI0NFpNMjY2LjM2NCAyNzYuMTcyQzI2OC43MTQgMjcyLjgzNCAyNjcuNjg2IDI2OS4yMjUgMjYzLjY5IDI2Ni43ODVDMjU2LjA4IDI2Mi4xMzggMjQ0LjU3MSAyNjUuOTgzIDI0NC41NzEgMjczLjE3M0MyNDQuNTcxIDI3Ni43NTIgMjUwLjU3MiAyODAuNjU2IDI1Ni4wNzQgMjgwLjY1NkMyNTkuNzM1IDI4MC42NTYgMjY0Ljc0NiAyNzguNDczIDI2Ni4zNjQgMjc2LjE3MloiIGZpbGw9IiNGRjAwN0EiLz4KPC9zdmc+Cg==\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.getEip6963Provider = function () {\n return window['_eip6963Providers'] ? Object.values(window['_eip6963Providers']).find(function (provider) {\n return _optionalChain$6([provider, 'optionalAccess', function (_4) {\n return _4.isUniswapWallet;\n }]);\n }) : undefined;\n };\n }\n }, {\n key: \"__initStatic3\",\n value: function __initStatic3() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee62() {\n return _regeneratorRuntime.wrap(function _callee62$(_context62) {\n while (1) {\n switch (_context62.prev = _context62.next) {\n case 0:\n return _context62.abrupt(\"return\", Uniswap.getEip6963Provider() || _optionalChain$6([window, 'optionalAccess', function (_5) {\n return _5.ethereum;\n }, 'optionalAccess', function (_6) {\n return _6.isUniswapWallet;\n }]));\n\n case 1:\n case \"end\":\n return _context62.stop();\n }\n }\n }, _callee62);\n }));\n }\n }]);\n\n return Uniswap;\n}(WindowEthereum);\n\nUniswap.__initStatic();\n\nUniswap.__initStatic2();\n\nUniswap.__initStatic3();\n\nvar transactionApiBlockchainNames = {\n 'ethereum': 'mainnet',\n 'bsc': 'bsc',\n 'polygon': 'polygon',\n 'arbitrum': 'arbitrum',\n 'base': 'base',\n 'avalanche': 'avalanche',\n 'gnosis': 'gnosis-chain',\n 'optimism': 'optimism',\n 'worldchain': 'optimism'\n};\nvar explorerBlockchainNames = {\n 'ethereum': 'eth',\n 'bsc': 'bnb',\n 'polygon': 'matic',\n 'arbitrum': 'arb1',\n 'base': 'base',\n 'avalanche': 'avax',\n 'gnosis': 'gno',\n 'optimism': 'oeth',\n 'worldchain': 'oeth'\n};\n\nvar Safe = /*#__PURE__*/function () {\n function Safe(_ref57) {\n var address = _ref57.address,\n blockchain = _ref57.blockchain;\n\n _classCallCheck(this, Safe);\n\n this.address = address;\n this.blockchain = blockchain;\n }\n\n _createClass(Safe, [{\n key: \"transactionCount\",\n value: function () {\n var _transactionCount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee63() {\n var transactionCount, jsonResult;\n return _regeneratorRuntime.wrap(function _callee63$(_context63) {\n while (1) {\n switch (_context63.prev = _context63.next) {\n case 0:\n _context63.next = 2;\n return fetch(\"https://safe-transaction-\".concat(transactionApiBlockchainNames[this.blockchain], \".safe.global/api/v1/safes/\").concat(this.address, \"/all-transactions/\")).then(function (response) {\n return response.json();\n }).catch(function (error) {\n console.error('Error:', error);\n });\n\n case 2:\n jsonResult = _context63.sent;\n\n if (!(jsonResult && jsonResult.results && jsonResult.results.length)) {\n _context63.next = 7;\n break;\n }\n\n transactionCount = jsonResult.results[0].nonce + 1;\n _context63.next = 12;\n break;\n\n case 7:\n _context63.t0 = parseInt;\n _context63.next = 10;\n return request({\n blockchain: this.blockchain,\n address: this.address,\n api: [{\n \"inputs\": [],\n \"name\": \"nonce\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }],\n method: 'nonce'\n });\n\n case 10:\n _context63.t1 = _context63.sent.toString();\n transactionCount = (0, _context63.t0)(_context63.t1, 10);\n\n case 12:\n return _context63.abrupt(\"return\", transactionCount);\n\n case 13:\n case \"end\":\n return _context63.stop();\n }\n }\n }, _callee63, this);\n }));\n\n function transactionCount() {\n return _transactionCount.apply(this, arguments);\n }\n\n return transactionCount;\n }()\n }, {\n key: \"retrieveTransaction\",\n value: function () {\n var _retrieveTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee64(_ref58) {\n var blockchain, tx, provider, jsonResult;\n return _regeneratorRuntime.wrap(function _callee64$(_context64) {\n while (1) {\n switch (_context64.prev = _context64.next) {\n case 0:\n blockchain = _ref58.blockchain, tx = _ref58.tx;\n _context64.next = 3;\n return getProvider(blockchain);\n\n case 3:\n provider = _context64.sent;\n _context64.next = 6;\n return fetch(\"https://safe-transaction-\".concat(transactionApiBlockchainNames[blockchain], \".safe.global/api/v1/multisig-transactions/\").concat(tx, \"/\")).then(function (response) {\n return response.json();\n }).catch(function (error) {\n console.error('Error:', error);\n });\n\n case 6:\n jsonResult = _context64.sent;\n\n if (!(jsonResult && jsonResult.isExecuted && jsonResult.transactionHash)) {\n _context64.next = 13;\n break;\n }\n\n _context64.next = 10;\n return provider.getTransaction(jsonResult.transactionHash);\n\n case 10:\n return _context64.abrupt(\"return\", _context64.sent);\n\n case 13:\n return _context64.abrupt(\"return\", undefined);\n\n case 14:\n case \"end\":\n return _context64.stop();\n }\n }\n }, _callee64);\n }));\n\n function retrieveTransaction(_x27) {\n return _retrieveTransaction.apply(this, arguments);\n }\n\n return retrieveTransaction;\n }()\n }, {\n key: \"explorerUrlFor\",\n value: function explorerUrlFor(_ref59) {\n var transaction = _ref59.transaction;\n\n if (transaction) {\n return \"https://app.safe.global/\".concat(explorerBlockchainNames[transaction.blockchain], \":\").concat(transaction.from, \"/transactions/tx?id=multisig_\").concat(transaction.from, \"_\").concat(transaction.id);\n }\n }\n }]);\n\n return Safe;\n}();\n\nvar isSmartContractWallet = /*#__PURE__*/function () {\n var _ref60 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee65(blockchain, address) {\n var provider, code;\n return _regeneratorRuntime.wrap(function _callee65$(_context65) {\n while (1) {\n switch (_context65.prev = _context65.next) {\n case 0:\n _context65.next = 2;\n return getProvider(blockchain);\n\n case 2:\n provider = _context65.sent;\n _context65.next = 5;\n return provider.getCode(address);\n\n case 5:\n code = _context65.sent;\n return _context65.abrupt(\"return\", code != '0x');\n\n case 7:\n case \"end\":\n return _context65.stop();\n }\n }\n }, _callee65);\n }));\n\n return function isSmartContractWallet(_x28, _x29) {\n return _ref60.apply(this, arguments);\n };\n}();\n\nvar identifySmartContractWallet = /*#__PURE__*/function () {\n var _ref61 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee66(blockchain, address) {\n var name;\n return _regeneratorRuntime.wrap(function _callee66$(_context66) {\n while (1) {\n switch (_context66.prev = _context66.next) {\n case 0:\n _context66.prev = 0;\n _context66.next = 3;\n return request({\n blockchain: blockchain,\n address: address,\n api: [{\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"NAME\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }],\n method: 'NAME'\n });\n\n case 3:\n name = _context66.sent;\n _context66.next = 8;\n break;\n\n case 6:\n _context66.prev = 6;\n _context66.t0 = _context66[\"catch\"](0);\n\n case 8:\n if (!(name == 'Default Callback Handler')) {\n _context66.next = 10;\n break;\n }\n\n return _context66.abrupt(\"return\", 'Safe');\n\n case 10:\n case \"end\":\n return _context66.stop();\n }\n }\n }, _callee66, null, [[0, 6]]);\n }));\n\n return function identifySmartContractWallet(_x30, _x31) {\n return _ref61.apply(this, arguments);\n };\n}();\n\nvar getSmartContractWallet = /*#__PURE__*/function () {\n var _ref62 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee67(blockchain, address) {\n var type;\n return _regeneratorRuntime.wrap(function _callee67$(_context67) {\n while (1) {\n switch (_context67.prev = _context67.next) {\n case 0:\n _context67.next = 2;\n return isSmartContractWallet(blockchain, address);\n\n case 2:\n if (_context67.sent) {\n _context67.next = 4;\n break;\n }\n\n return _context67.abrupt(\"return\");\n\n case 4:\n _context67.next = 6;\n return identifySmartContractWallet(blockchain, address);\n\n case 6:\n type = _context67.sent;\n\n if (!(type == 'Safe')) {\n _context67.next = 11;\n break;\n }\n\n return _context67.abrupt(\"return\", new Safe({\n blockchain: blockchain,\n address: address\n }));\n\n case 11:\n if (!(type == 'Argent')) {\n _context67.next = 15;\n break;\n }\n\n return _context67.abrupt(\"return\", new Argent({\n blockchain: blockchain,\n address: address\n }));\n\n case 15:\n if (!smartContractWallet) {\n _context67.next = 17;\n break;\n }\n\n throw {\n message: 'Unrecognized smart contract wallet not supported!',\n code: \"SMART_CONTRACT_WALLET_NOT_SUPPORTED\"\n };\n\n case 17:\n case \"end\":\n return _context67.stop();\n }\n }\n }, _callee67);\n }));\n\n return function getSmartContractWallet(_x32, _x33) {\n return _ref62.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$5(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value33;\n\n for (var _len33 = arguments.length, args = new Array(_len33), _key33 = 0; _key33 < _len33; _key33++) {\n args[_key33] = arguments[_key33];\n }\n\n return (_value33 = value).call.apply(_value33, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar sendTransaction$1 = /*#__PURE__*/function () {\n var _ref64 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee69(_ref63) {\n var transaction, wallet, transactionCount;\n return _regeneratorRuntime.wrap(function _callee69$(_context69) {\n while (1) {\n switch (_context69.prev = _context69.next) {\n case 0:\n transaction = _ref63.transaction, wallet = _ref63.wallet;\n transaction = new Transaction(transaction);\n _context69.next = 4;\n return transaction.prepare({\n wallet: wallet\n });\n\n case 4:\n _context69.next = 6;\n return request({\n blockchain: transaction.blockchain,\n method: 'transactionCount',\n address: transaction.from\n });\n\n case 6:\n transactionCount = _context69.sent;\n transaction.nonce = transactionCount;\n _context69.next = 10;\n return submit$1({\n transaction: transaction,\n wallet: wallet\n }).then( /*#__PURE__*/function () {\n var _ref65 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee68(response) {\n var blockchain, sentTransaction;\n return _regeneratorRuntime.wrap(function _callee68$(_context68) {\n while (1) {\n switch (_context68.prev = _context68.next) {\n case 0:\n if (!(typeof response == 'string')) {\n _context68.next = 12;\n break;\n }\n\n blockchain = Blockchains[transaction.blockchain];\n transaction.id = response;\n transaction.url = blockchain.explorerUrlFor({\n transaction: transaction\n });\n if (transaction.sent) transaction.sent(transaction);\n _context68.next = 7;\n return retrieveTransaction(transaction.id, transaction.blockchain);\n\n case 7:\n sentTransaction = _context68.sent;\n transaction.nonce = sentTransaction.nonce || transactionCount;\n\n if (!sentTransaction) {\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, 'Error retrieving transaction');\n } else {\n retrieveConfirmedTransaction$1(sentTransaction).then(function () {\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n }).catch(function (error) {\n if (error && error.code && error.code == 'TRANSACTION_REPLACED') {\n if (error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {\n transaction.id = error.replacement.hash;\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n } else if (error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {\n transaction.id = error.replacement.hash;\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, error);\n }\n } else {\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, error);\n }\n });\n }\n\n _context68.next = 13;\n break;\n\n case 12:\n throw response;\n\n case 13:\n case \"end\":\n return _context68.stop();\n }\n }\n }, _callee68);\n }));\n\n return function (_x35) {\n return _ref65.apply(this, arguments);\n };\n }());\n\n case 10:\n return _context69.abrupt(\"return\", transaction);\n\n case 11:\n case \"end\":\n return _context69.stop();\n }\n }\n }, _callee69);\n }));\n\n return function sendTransaction$1(_x34) {\n return _ref64.apply(this, arguments);\n };\n}();\n\nvar retrieveConfirmedTransaction$1 = function retrieveConfirmedTransaction$1(sentTransaction) {\n return new Promise(function (resolve, reject) {\n try {\n sentTransaction.wait(1).then(resolve).catch(function (error) {\n if (error && _optionalChain$5([error, 'optionalAccess', function (_) {\n return _.stack;\n }, 'optionalAccess', function (_2) {\n return _2.match;\n }, 'call', function (_3) {\n return _3('JSON-RPC error');\n }]) || error && error.toString().match('undefined')) {\n setTimeout(function () {\n retrieveConfirmedTransaction$1(sentTransaction).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(error);\n }\n });\n } catch (error) {\n if (error && _optionalChain$5([error, 'optionalAccess', function (_4) {\n return _4.stack;\n }, 'optionalAccess', function (_5) {\n return _5.match;\n }, 'call', function (_6) {\n return _6('JSON-RPC error');\n }]) || error && error.toString().match('undefined')) {\n setTimeout(function () {\n retrieveConfirmedTransaction$1(sentTransaction).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(error);\n }\n }\n });\n};\n\nvar retrieveTransaction = function retrieveTransaction(tx, blockchain) {\n return new Promise( /*#__PURE__*/function () {\n var _ref66 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee70(resolve, reject) {\n var sentTransaction, provider, maxRetries, attempt;\n return _regeneratorRuntime.wrap(function _callee70$(_context70) {\n while (1) {\n switch (_context70.prev = _context70.next) {\n case 0:\n _context70.prev = 0;\n _context70.next = 3;\n return getProvider(blockchain);\n\n case 3:\n provider = _context70.sent;\n _context70.next = 6;\n return provider.getTransaction(tx);\n\n case 6:\n sentTransaction = _context70.sent;\n maxRetries = 120;\n attempt = 1;\n\n case 9:\n if (!(attempt <= maxRetries && !sentTransaction)) {\n _context70.next = 18;\n break;\n }\n\n _context70.next = 12;\n return provider.getTransaction(tx);\n\n case 12:\n sentTransaction = _context70.sent;\n _context70.next = 15;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 5000);\n });\n\n case 15:\n attempt++;\n _context70.next = 9;\n break;\n\n case 18:\n resolve(sentTransaction);\n _context70.next = 24;\n break;\n\n case 21:\n _context70.prev = 21;\n _context70.t0 = _context70[\"catch\"](0);\n\n if (_context70.t0 && _optionalChain$5([_context70.t0, 'optionalAccess', function (_7) {\n return _7.stack;\n }, 'optionalAccess', function (_8) {\n return _8.match;\n }, 'call', function (_9) {\n return _9('JSON-RPC error');\n }]) || _context70.t0 && _context70.t0.toString().match('undefined')) {\n setTimeout(function () {\n retrieveTransaction(tx, blockchain).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(_context70.t0);\n }\n\n case 24:\n case \"end\":\n return _context70.stop();\n }\n }\n }, _callee70, null, [[0, 21]]);\n }));\n\n return function (_x36, _x37) {\n return _ref66.apply(this, arguments);\n };\n }());\n};\n\nvar submit$1 = function submit$1(_ref67) {\n var transaction = _ref67.transaction,\n wallet = _ref67.wallet;\n\n if (transaction.method) {\n return submitContractInteraction$1({\n transaction: transaction,\n wallet: wallet\n });\n } else {\n return submitSimpleTransfer$1({\n transaction: transaction,\n wallet: wallet\n });\n }\n};\n\nvar submitContractInteraction$1 = /*#__PURE__*/function () {\n var _ref69 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee71(_ref68) {\n var transaction, wallet, provider, blockchain, gas, gasPrice;\n return _regeneratorRuntime.wrap(function _callee71$(_context71) {\n while (1) {\n switch (_context71.prev = _context71.next) {\n case 0:\n transaction = _ref68.transaction, wallet = _ref68.wallet;\n _context71.next = 3;\n return getProvider(transaction.blockchain);\n\n case 3:\n provider = _context71.sent;\n blockchain = Blockchains[transaction.blockchain];\n _context71.prev = 5;\n _context71.next = 8;\n return estimate(transaction);\n\n case 8:\n gas = _context71.sent;\n gas = gas.add(gas.div(10));\n _context71.next = 14;\n break;\n\n case 12:\n _context71.prev = 12;\n _context71.t0 = _context71[\"catch\"](5);\n\n case 14:\n _context71.next = 16;\n return provider.getGasPrice();\n\n case 16:\n gasPrice = _context71.sent;\n _context71.t1 = wallet.signClient;\n _context71.t2 = wallet.session.topic;\n _context71.t3 = \"\".concat(blockchain.namespace, \":\").concat(blockchain.networkId);\n _context71.t4 = transaction.from;\n _context71.t5 = transaction.to;\n _context71.t6 = transaction.value ? ethers.BigNumber.from(transaction.value.toString()).toHexString() : undefined;\n _context71.next = 25;\n return transaction.getData();\n\n case 25:\n _context71.t7 = _context71.sent;\n _context71.t8 = _optionalChain$5([gas, 'optionalAccess', function (_10) {\n return _10.toHexString;\n }, 'call', function (_11) {\n return _11();\n }]);\n _context71.t9 = _optionalChain$5([gas, 'optionalAccess', function (_12) {\n return _12.toHexString;\n }, 'call', function (_13) {\n return _13();\n }]);\n _context71.t10 = gasPrice.toHexString();\n _context71.t11 = ethers.utils.hexlify(transaction.nonce);\n _context71.t12 = {\n from: _context71.t4,\n to: _context71.t5,\n value: _context71.t6,\n data: _context71.t7,\n gas: _context71.t8,\n gasLimit: _context71.t9,\n gasPrice: _context71.t10,\n nonce: _context71.t11\n };\n _context71.t13 = [_context71.t12];\n _context71.t14 = {\n method: 'eth_sendTransaction',\n params: _context71.t13\n };\n _context71.t15 = {\n topic: _context71.t2,\n chainId: _context71.t3,\n request: _context71.t14\n };\n return _context71.abrupt(\"return\", _context71.t1.request.call(_context71.t1, _context71.t15).catch(function (e) {\n console.log('ERROR', e);\n }));\n\n case 35:\n case \"end\":\n return _context71.stop();\n }\n }\n }, _callee71, null, [[5, 12]]);\n }));\n\n return function submitContractInteraction$1(_x38) {\n return _ref69.apply(this, arguments);\n };\n}();\n\nvar submitSimpleTransfer$1 = /*#__PURE__*/function () {\n var _ref71 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee72(_ref70) {\n var transaction, wallet, provider, blockchain, gas, gasPrice;\n return _regeneratorRuntime.wrap(function _callee72$(_context72) {\n while (1) {\n switch (_context72.prev = _context72.next) {\n case 0:\n transaction = _ref70.transaction, wallet = _ref70.wallet;\n _context72.next = 3;\n return getProvider(transaction.blockchain);\n\n case 3:\n provider = _context72.sent;\n blockchain = Blockchains[transaction.blockchain];\n _context72.prev = 5;\n _context72.next = 8;\n return estimate(transaction);\n\n case 8:\n gas = _context72.sent;\n gas = gas.add(gas.div(10));\n _context72.next = 14;\n break;\n\n case 12:\n _context72.prev = 12;\n _context72.t0 = _context72[\"catch\"](5);\n\n case 14:\n _context72.next = 16;\n return provider.getGasPrice();\n\n case 16:\n gasPrice = _context72.sent;\n return _context72.abrupt(\"return\", wallet.signClient.request({\n topic: wallet.session.topic,\n chainId: \"\".concat(blockchain.namespace, \":\").concat(blockchain.networkId),\n request: {\n method: 'eth_sendTransaction',\n params: [{\n from: transaction.from,\n to: transaction.to,\n value: transaction.value ? ethers.BigNumber.from(transaction.value.toString()).toHexString() : undefined,\n data: '0x0',\n gas: _optionalChain$5([gas, 'optionalAccess', function (_14) {\n return _14.toHexString;\n }, 'call', function (_15) {\n return _15();\n }]),\n gasLimit: _optionalChain$5([gas, 'optionalAccess', function (_16) {\n return _16.toHexString;\n }, 'call', function (_17) {\n return _17();\n }]),\n gasPrice: _optionalChain$5([gasPrice, 'optionalAccess', function (_18) {\n return _18.toHexString;\n }, 'call', function (_19) {\n return _19();\n }]),\n nonce: ethers.utils.hexlify(transaction.nonce)\n }]\n }\n }).catch(function (e) {\n console.log('ERROR', e);\n }));\n\n case 18:\n case \"end\":\n return _context72.stop();\n }\n }\n }, _callee72, null, [[5, 12]]);\n }));\n\n return function submitSimpleTransfer$1(_x39) {\n return _ref71.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$4(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value34;\n\n for (var _len34 = arguments.length, args = new Array(_len34), _key34 = 0; _key34 < _len34; _key34++) {\n args[_key34] = arguments[_key34];\n }\n\n return (_value34 = value).call.apply(_value34, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar KEY = 'depay:wallets:wc2';\nvar DEFAULT_CONFIGURATION = {\n events: ['accountsChanged'],\n methods: [\"eth_sendTransaction\", \"personal_sign\", \"eth_signTypedData\", \"eth_signTypedData_v4\"]\n};\n\nvar getConnectedInstance$1 = /*#__PURE__*/function () {\n var _ref72 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee73() {\n return _regeneratorRuntime.wrap(function _callee73$(_context73) {\n while (1) {\n switch (_context73.prev = _context73.next) {\n case 0:\n _context73.next = 2;\n return WalletConnectV2.isAvailable();\n\n case 2:\n if (!_context73.sent) {\n _context73.next = 4;\n break;\n }\n\n return _context73.abrupt(\"return\", new WalletConnectV2());\n\n case 4:\n case \"end\":\n return _context73.stop();\n }\n }\n }, _callee73);\n }));\n\n return function getConnectedInstance$1() {\n return _ref72.apply(this, arguments);\n };\n}();\n\nvar getLastSession = /*#__PURE__*/function () {\n var _ref73 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee74(walletName) {\n var signClient, existingSessions, lastSession, result;\n return _regeneratorRuntime.wrap(function _callee74$(_context74) {\n while (1) {\n switch (_context74.prev = _context74.next) {\n case 0:\n if (localStorage[KEY + \":projectId\"]) {\n _context74.next = 2;\n break;\n }\n\n return _context74.abrupt(\"return\");\n\n case 2:\n if (!(walletName !== localStorage[KEY + \":lastSessionWalletName\"])) {\n _context74.next = 4;\n break;\n }\n\n return _context74.abrupt(\"return\");\n\n case 4:\n _context74.next = 6;\n return getSignClient();\n\n case 6:\n signClient = _context74.sent;\n\n try {\n existingSessions = signClient.find(getWalletConnectV2Config(walletName));\n } catch (e) {}\n\n lastSession = existingSessions ? existingSessions[existingSessions.length - 1] : undefined;\n\n if (!(lastSession && localStorage[KEY + \":lastExpiredSessionTopic\"] !== lastSession.topic && lastSession.expiry > Math.ceil(Date.now() / 1000))) {\n _context74.next = 19;\n break;\n }\n\n _context74.next = 12;\n return Promise.race([signClient.ping({\n topic: lastSession.topic\n }), new Promise(function (resolve) {\n return setTimeout(resolve, 1500);\n })]);\n\n case 12:\n result = _context74.sent;\n\n if (!result) {\n _context74.next = 17;\n break;\n }\n\n return _context74.abrupt(\"return\", lastSession);\n\n case 17:\n localStorage[KEY + \":lastExpiredSessionTopic\"] = lastSession.topic;\n return _context74.abrupt(\"return\");\n\n case 19:\n case \"end\":\n return _context74.stop();\n }\n }\n }, _callee74);\n }));\n\n return function getLastSession(_x40) {\n return _ref73.apply(this, arguments);\n };\n}();\n\nvar getWalletConnectV2Config = function getWalletConnectV2Config(walletName) {\n var methods = DEFAULT_CONFIGURATION.methods;\n var events = DEFAULT_CONFIGURATION.events;\n var requiredNamespaces = {};\n requiredNamespaces['eip155'] = {\n chains: [\"eip155:1\"]\n };\n\n if (requiredNamespaces['eip155']) {\n requiredNamespaces['eip155'].methods = methods;\n requiredNamespaces['eip155'].events = events;\n }\n\n var optionalNamespaces = {};\n optionalNamespaces['eip155'] = {\n chains: supported$1.evm.map(function (blockchain) {\n return \"\".concat(Blockchains[blockchain].namespace, \":\").concat(Blockchains[blockchain].networkId);\n })\n };\n\n if (_optionalChain$4([optionalNamespaces, 'optionalAccess', function (_) {\n return _.eip155;\n }]) && _optionalChain$4([optionalNamespaces, 'optionalAccess', function (_2) {\n return _2.eip155;\n }, 'optionalAccess', function (_3) {\n return _3.chains;\n }, 'optionalAccess', function (_4) {\n return _4.length;\n }])) {\n optionalNamespaces['eip155'].methods = methods;\n optionalNamespaces['eip155'].events = events;\n }\n\n return {\n requiredNamespaces: requiredNamespaces,\n optionalNamespaces: optionalNamespaces\n };\n};\n\nvar getSignClient = function getSignClient() {\n if (window.getSignClientPromise) {\n return window.getSignClientPromise;\n }\n\n window.getSignClientPromise = new Promise( /*#__PURE__*/function () {\n var _ref74 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee75(resolve) {\n var signClient;\n return _regeneratorRuntime.wrap(function _callee75$(_context75) {\n while (1) {\n switch (_context75.prev = _context75.next) {\n case 0:\n _context75.next = 2;\n return SignClient.init({\n projectId: localStorage[KEY + \":projectId\"],\n metadata: {\n name: document.title || 'dApp',\n description: _optionalChain$4([document, 'access', function (_5) {\n return _5.querySelector;\n }, 'call', function (_6) {\n return _6('meta[name=\"description\"]');\n }, 'optionalAccess', function (_7) {\n return _7.getAttribute;\n }, 'call', function (_8) {\n return _8('content');\n }]) || document.title || 'dApp',\n url: location.href,\n icons: [_optionalChain$4([document, 'access', function (_9) {\n return _9.querySelector;\n }, 'call', function (_10) {\n return _10(\"link[rel~='icon'], link[rel~='shortcut icon']\");\n }, 'optionalAccess', function (_11) {\n return _11.href;\n }]) || \"\".concat(location.origin, \"/favicon.ico\")]\n }\n });\n\n case 2:\n signClient = _context75.sent;\n resolve(signClient);\n\n case 4:\n case \"end\":\n return _context75.stop();\n }\n }\n }, _callee75);\n }));\n\n return function (_x41) {\n return _ref74.apply(this, arguments);\n };\n }());\n return window.getSignClientPromise;\n};\n\nvar WalletConnectV2 = /*#__PURE__*/function () {\n function WalletConnectV2() {\n var _this15 = this;\n\n _classCallCheck(this, WalletConnectV2);\n\n this.name = localStorage[KEY + ':name'] && localStorage[KEY + ':name'] != undefined ? localStorage[KEY + ':name'] : this.constructor.info.name;\n this.logo = localStorage[KEY + ':logo'] && localStorage[KEY + ':logo'] != undefined ? localStorage[KEY + ':logo'] : this.constructor.info.logo;\n\n this.sendTransaction = function (transaction) {\n return sendTransaction$1({\n wallet: _this15,\n transaction: transaction\n });\n };\n }\n\n _createClass(WalletConnectV2, [{\n key: \"account\",\n value: function () {\n var _account4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee76() {\n return _regeneratorRuntime.wrap(function _callee76$(_context76) {\n while (1) {\n switch (_context76.prev = _context76.next) {\n case 0:\n if (!_optionalChain$4([this, 'access', function (_14) {\n return _14.session;\n }, 'optionalAccess', function (_15) {\n return _15.namespaces;\n }, 'optionalAccess', function (_16) {\n return _16.eip155;\n }, 'optionalAccess', function (_17) {\n return _17.accounts;\n }, 'optionalAccess', function (_18) {\n return _18.length;\n }])) {\n _context76.next = 2;\n break;\n }\n\n return _context76.abrupt(\"return\", this.session.namespaces.eip155.accounts[0].split(':')[2]);\n\n case 2:\n case \"end\":\n return _context76.stop();\n }\n }\n }, _callee76, this);\n }));\n\n function account() {\n return _account4.apply(this, arguments);\n }\n\n return account;\n }()\n }, {\n key: \"setSessionBlockchains\",\n value: function () {\n var _setSessionBlockchains = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee77() {\n return _regeneratorRuntime.wrap(function _callee77$(_context77) {\n while (1) {\n switch (_context77.prev = _context77.next) {\n case 0:\n if (!(!this.session || !_optionalChain$4([this, 'access', function (_19) {\n return _19.session;\n }, 'optionalAccess', function (_20) {\n return _20.namespaces;\n }, 'optionalAccess', function (_21) {\n return _21.eip155;\n }]) && !_optionalChain$4([this, 'access', function (_22) {\n return _22.session;\n }, 'optionalAccess', function (_23) {\n return _23.optionalNamespaces;\n }, 'optionalAccess', function (_24) {\n return _24.eip155;\n }]))) {\n _context77.next = 2;\n break;\n }\n\n return _context77.abrupt(\"return\");\n\n case 2:\n if (this.session.namespaces.eip155.chains) {\n this.blockchains = this.session.namespaces.eip155.chains.map(function (chainIdentifier) {\n return _optionalChain$4([Blockchains, 'access', function (_25) {\n return _25.findByNetworkId;\n }, 'call', function (_26) {\n return _26(chainIdentifier.split(':')[1]);\n }, 'optionalAccess', function (_27) {\n return _27.name;\n }]);\n }).filter(Boolean);\n } else if (this.session.namespaces.eip155.accounts) {\n this.blockchains = this.session.namespaces.eip155.accounts.map(function (accountIdentifier) {\n return _optionalChain$4([Blockchains, 'access', function (_28) {\n return _28.findByNetworkId;\n }, 'call', function (_29) {\n return _29(accountIdentifier.split(':')[1]);\n }, 'optionalAccess', function (_30) {\n return _30.name;\n }]);\n }).filter(Boolean);\n }\n\n case 3:\n case \"end\":\n return _context77.stop();\n }\n }\n }, _callee77, this);\n }));\n\n function setSessionBlockchains() {\n return _setSessionBlockchains.apply(this, arguments);\n }\n\n return setSessionBlockchains;\n }()\n }, {\n key: \"connect\",\n value: function () {\n var _connect4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee80(options) {\n var _this16 = this;\n\n var connect, connectWallet, lastSession, meta;\n return _regeneratorRuntime.wrap(function _callee80$(_context80) {\n while (1) {\n switch (_context80.prev = _context80.next) {\n case 0:\n connect = options && options.connect ? options.connect : function (_ref75) {\n var uri = _ref75.uri;\n };\n _context80.prev = 1;\n this.walletName = _optionalChain$4([options, 'optionalAccess', function (_31) {\n return _31.name;\n }]); // delete localStorage[`wc@2:client:0.3//session`] // DELETE WC SESSIONS\n\n _context80.next = 5;\n return getSignClient();\n\n case 5:\n this.signClient = _context80.sent;\n this.signClient.on(\"session_delete\", function (session) {\n if (_optionalChain$4([session, 'optionalAccess', function (_32) {\n return _32.topic;\n }]) === _optionalChain$4([_this16, 'access', function (_33) {\n return _33.session;\n }, 'optionalAccess', function (_34) {\n return _34.topic;\n }])) {\n localStorage[KEY + ':name'] = undefined;\n localStorage[KEY + ':logo'] = undefined;\n _this16.signClient = undefined;\n _this16.session = undefined;\n }\n });\n this.signClient.on(\"session_update\", /*#__PURE__*/function () {\n var _ref76 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee78(session) {\n return _regeneratorRuntime.wrap(function _callee78$(_context78) {\n while (1) {\n switch (_context78.prev = _context78.next) {\n case 0:\n if (!(_optionalChain$4([session, 'optionalAccess', function (_35) {\n return _35.topic;\n }]) === _optionalChain$4([_this16, 'access', function (_36) {\n return _36.session;\n }, 'optionalAccess', function (_37) {\n return _37.topic;\n }]))) {\n _context78.next = 4;\n break;\n }\n\n _this16.session = _this16.signClient.session.get(session.topic);\n _context78.next = 4;\n return _this16.setSessionBlockchains();\n\n case 4:\n case \"end\":\n return _context78.stop();\n }\n }\n }, _callee78);\n }));\n\n return function (_x43) {\n return _ref76.apply(this, arguments);\n };\n }());\n this.signClient.on(\"session_event\", function (event) {\n if (_optionalChain$4([event, 'optionalAccess', function (_38) {\n return _38.topic;\n }]) === _optionalChain$4([_this16, 'access', function (_39) {\n return _39.session;\n }, 'optionalAccess', function (_40) {\n return _40.topic;\n }])) {}\n });\n\n connectWallet = /*#__PURE__*/function () {\n var _ref77 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee79() {\n var _yield$_this16$signCl, uri, approval;\n\n return _regeneratorRuntime.wrap(function _callee79$(_context79) {\n while (1) {\n switch (_context79.prev = _context79.next) {\n case 0:\n _context79.next = 2;\n return _this16.signClient.connect(getWalletConnectV2Config(_this16.walletName));\n\n case 2:\n _yield$_this16$signCl = _context79.sent;\n uri = _yield$_this16$signCl.uri;\n approval = _yield$_this16$signCl.approval;\n _context79.next = 7;\n return connect({\n uri: uri\n });\n\n case 7:\n _context79.next = 9;\n return approval();\n\n case 9:\n _this16.session = _context79.sent;\n localStorage[KEY + \":lastSessionWalletName\"] = _this16.walletName;\n _context79.next = 13;\n return new Promise(function (resolve) {\n return setTimeout(resolve, 500);\n });\n\n case 13:\n case \"end\":\n return _context79.stop();\n }\n }\n }, _callee79);\n }));\n\n return function connectWallet() {\n return _ref77.apply(this, arguments);\n };\n }();\n\n if (!_optionalChain$4([this, 'optionalAccess', function (_41) {\n return _41.walletName;\n }, 'optionalAccess', function (_42) {\n return _42.length;\n }])) {\n _context80.next = 16;\n break;\n }\n\n _context80.next = 13;\n return getLastSession(this.walletName);\n\n case 13:\n _context80.t0 = _context80.sent;\n _context80.next = 17;\n break;\n\n case 16:\n _context80.t0 = undefined;\n\n case 17:\n lastSession = _context80.t0;\n\n if (!lastSession) {\n _context80.next = 22;\n break;\n }\n\n this.session = lastSession;\n _context80.next = 24;\n break;\n\n case 22:\n _context80.next = 24;\n return connectWallet();\n\n case 24:\n meta = _optionalChain$4([this, 'access', function (_43) {\n return _43.session;\n }, 'optionalAccess', function (_44) {\n return _44.peer;\n }, 'optionalAccess', function (_45) {\n return _45.metadata;\n }]);\n\n if (meta && meta.name) {\n this.name = meta.name;\n localStorage[KEY + ':name'] = meta.name;\n\n if (_optionalChain$4([meta, 'optionalAccess', function (_46) {\n return _46.icons;\n }]) && meta.icons.length) {\n this.logo = meta.icons[0];\n localStorage[KEY + ':logo'] = this.logo;\n }\n }\n\n if (_optionalChain$4([options, 'optionalAccess', function (_47) {\n return _47.name;\n }])) {\n localStorage[KEY + ':name'] = this.name = options.name;\n }\n\n if (_optionalChain$4([options, 'optionalAccess', function (_48) {\n return _48.logo;\n }])) {\n localStorage[KEY + ':logo'] = this.logo = options.logo;\n }\n\n _context80.next = 30;\n return this.setSessionBlockchains();\n\n case 30:\n _context80.next = 32;\n return this.account();\n\n case 32:\n return _context80.abrupt(\"return\", _context80.sent);\n\n case 35:\n _context80.prev = 35;\n _context80.t1 = _context80[\"catch\"](1);\n console.log('WALLETCONNECT ERROR', _context80.t1);\n\n case 38:\n case \"end\":\n return _context80.stop();\n }\n }\n }, _callee80, this, [[1, 35]]);\n }));\n\n function connect(_x42) {\n return _connect4.apply(this, arguments);\n }\n\n return connect;\n }()\n }, {\n key: \"connectedTo\",\n value: function () {\n var _connectedTo4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee81(input) {\n return _regeneratorRuntime.wrap(function _callee81$(_context81) {\n while (1) {\n switch (_context81.prev = _context81.next) {\n case 0:\n if (!input) {\n _context81.next = 4;\n break;\n }\n\n return _context81.abrupt(\"return\", this.blockchains.indexOf(input) > -1);\n\n case 4:\n return _context81.abrupt(\"return\", this.blockchains);\n\n case 5:\n case \"end\":\n return _context81.stop();\n }\n }\n }, _callee81, this);\n }));\n\n function connectedTo(_x44) {\n return _connectedTo4.apply(this, arguments);\n }\n\n return connectedTo;\n }()\n }, {\n key: \"getValidChainId\",\n value: function getValidChainId() {\n return \"eip155:\".concat(Blockchains[this.blockchains[0]].networkId);\n }\n }, {\n key: \"switchTo\",\n value: function switchTo(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"addNetwork\",\n value: function addNetwork(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var _this17 = this;\n\n var internalCallback;\n\n switch (event) {\n case 'account':\n internalCallback = /*#__PURE__*/function () {\n var _ref78 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee82(event) {\n return _regeneratorRuntime.wrap(function _callee82$(_context82) {\n while (1) {\n switch (_context82.prev = _context82.next) {\n case 0:\n if (!(_optionalChain$4([event, 'optionalAccess', function (_49) {\n return _49.topic;\n }]) === _optionalChain$4([_this17, 'access', function (_50) {\n return _50.session;\n }, 'optionalAccess', function (_51) {\n return _51.topic;\n }]) && event.params.event.name === 'accountsChanged')) {\n _context82.next = 6;\n break;\n }\n\n _context82.t0 = callback;\n _context82.next = 4;\n return _this17.account();\n\n case 4:\n _context82.t1 = _context82.sent;\n (0, _context82.t0)(_context82.t1);\n\n case 6:\n case \"end\":\n return _context82.stop();\n }\n }\n }, _callee82);\n }));\n\n return function internalCallback(_x45) {\n return _ref78.apply(this, arguments);\n };\n }();\n\n this.signClient.on(\"session_event\", internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"off\",\n value: function off(event, callback) {\n switch (event) {\n case 'account':\n this.signClient.off(\"session_event\", callback);\n break;\n }\n }\n }, {\n key: \"transactionCount\",\n value: function () {\n var _transactionCount2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee83(_ref79) {\n var blockchain, address, smartContractWallet;\n return _regeneratorRuntime.wrap(function _callee83$(_context83) {\n while (1) {\n switch (_context83.prev = _context83.next) {\n case 0:\n blockchain = _ref79.blockchain, address = _ref79.address;\n _context83.next = 3;\n return getSmartContractWallet(blockchain, address);\n\n case 3:\n smartContractWallet = _context83.sent;\n\n if (!smartContractWallet) {\n _context83.next = 10;\n break;\n }\n\n _context83.next = 7;\n return smartContractWallet.transactionCount();\n\n case 7:\n return _context83.abrupt(\"return\", _context83.sent);\n\n case 10:\n _context83.next = 12;\n return request({\n blockchain: blockchain,\n method: 'transactionCount',\n address: address\n });\n\n case 12:\n return _context83.abrupt(\"return\", _context83.sent);\n\n case 13:\n case \"end\":\n return _context83.stop();\n }\n }\n }, _callee83);\n }));\n\n function transactionCount(_x46) {\n return _transactionCount2.apply(this, arguments);\n }\n\n return transactionCount;\n }()\n }, {\n key: \"sign\",\n value: function () {\n var _sign5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee84(message) {\n var account, signature, address, params, _signature2;\n\n return _regeneratorRuntime.wrap(function _callee84$(_context84) {\n while (1) {\n switch (_context84.prev = _context84.next) {\n case 0:\n if (!(_typeof(message) === 'object')) {\n _context84.next = 10;\n break;\n }\n\n _context84.next = 3;\n return this.account();\n\n case 3:\n account = _context84.sent;\n _context84.next = 6;\n return this.signClient.request({\n topic: this.session.topic,\n chainId: this.getValidChainId(),\n request: {\n method: 'eth_signTypedData_v4',\n params: [account, JSON.stringify(message)]\n }\n });\n\n case 6:\n signature = _context84.sent;\n return _context84.abrupt(\"return\", signature);\n\n case 10:\n if (!(typeof message === 'string')) {\n _context84.next = 20;\n break;\n }\n\n _context84.next = 13;\n return this.account();\n\n case 13:\n address = _context84.sent;\n params = [ethers.utils.hexlify(ethers.utils.toUtf8Bytes(message)), address];\n _context84.next = 17;\n return this.signClient.request({\n topic: this.session.topic,\n chainId: this.getValidChainId(),\n request: {\n method: 'personal_sign',\n params: params\n }\n });\n\n case 17:\n _signature2 = _context84.sent;\n\n if (_typeof(_signature2) == 'object') {\n _signature2 = ethers.utils.hexlify(_signature2);\n }\n\n return _context84.abrupt(\"return\", _signature2);\n\n case 20:\n case \"end\":\n return _context84.stop();\n }\n }\n }, _callee84, this);\n }));\n\n function sign(_x47) {\n return _sign5.apply(this, arguments);\n }\n\n return sign;\n }()\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'WalletConnect V2',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjUuNC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAtLT48c3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgNTAwIDUwMCcgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAwIDUwMDsnIHhtbDpzcGFjZT0ncHJlc2VydmUnPjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+IC5zdDB7ZmlsbDojNTk5MUNEO30KPC9zdHlsZT48ZyBpZD0nUGFnZS0xJz48ZyBpZD0nd2FsbGV0Y29ubmVjdC1sb2dvLWFsdCc+PHBhdGggaWQ9J1dhbGxldENvbm5lY3QnIGNsYXNzPSdzdDAnIGQ9J00xMDIuNywxNjJjODEuNS03OS44LDIxMy42LTc5LjgsMjk1LjEsMGw5LjgsOS42YzQuMSw0LDQuMSwxMC41LDAsMTQuNEwzNzQsMjE4LjkgYy0yLDItNS4zLDItNy40LDBsLTEzLjUtMTMuMmMtNTYuOC01NS43LTE0OS01NS43LTIwNS44LDBsLTE0LjUsMTQuMWMtMiwyLTUuMywyLTcuNCwwTDkxLjksMTg3Yy00LjEtNC00LjEtMTAuNSwwLTE0LjQgTDEwMi43LDE2MnogTTQ2Ny4xLDIyOS45bDI5LjksMjkuMmM0LjEsNCw0LjEsMTAuNSwwLDE0LjRMMzYyLjMsNDA1LjRjLTQuMSw0LTEwLjcsNC0xNC44LDBjMCwwLDAsMCwwLDBMMjUyLDMxMS45IGMtMS0xLTIuNy0xLTMuNywwaDBsLTk1LjUsOTMuNWMtNC4xLDQtMTAuNyw0LTE0LjgsMGMwLDAsMCwwLDAsMEwzLjQsMjczLjZjLTQuMS00LTQuMS0xMC41LDAtMTQuNGwyOS45LTI5LjIgYzQuMS00LDEwLjctNCwxNC44LDBsOTUuNSw5My41YzEsMSwyLjcsMSwzLjcsMGMwLDAsMCwwLDAsMGw5NS41LTkzLjVjNC4xLTQsMTAuNy00LDE0LjgsMGMwLDAsMCwwLDAsMGw5NS41LDkzLjUgYzEsMSwyLjcsMSwzLjcsMGw5NS41LTkzLjVDNDU2LjQsMjI1LjksNDYzLDIyNS45LDQ2Ny4xLDIyOS45eicvPjwvZz48L2c+PC9zdmc+Cg==\",\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/function () {\n var _ref80 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee85(options) {\n return _regeneratorRuntime.wrap(function _callee85$(_context85) {\n while (1) {\n switch (_context85.prev = _context85.next) {\n case 0:\n _context85.next = 2;\n return getLastSession(_optionalChain$4([options, 'optionalAccess', function (_13) {\n return _13.walletName;\n }]));\n\n case 2:\n return _context85.abrupt(\"return\", !!_context85.sent);\n\n case 3:\n case \"end\":\n return _context85.stop();\n }\n }\n }, _callee85);\n }));\n\n return function (_x48) {\n return _ref80.apply(this, arguments);\n };\n }();\n }\n }]);\n\n return WalletConnectV2;\n}();\n\nWalletConnectV2.__initStatic();\n\nWalletConnectV2.__initStatic2();\n\nWalletConnectV2.getConnectedInstance = getConnectedInstance$1;\n\nfunction _optionalChain$3(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value35;\n\n for (var _len35 = arguments.length, args = new Array(_len35), _key35 = 0; _key35 < _len35; _key35++) {\n args[_key35] = arguments[_key35];\n }\n\n return (_value35 = value).call.apply(_value35, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar sendTransaction = /*#__PURE__*/function () {\n var _ref82 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee86(_ref81) {\n var transaction, wallet, provider, signer;\n return _regeneratorRuntime.wrap(function _callee86$(_context86) {\n while (1) {\n switch (_context86.prev = _context86.next) {\n case 0:\n transaction = _ref81.transaction, wallet = _ref81.wallet;\n transaction = new Transaction(transaction);\n _context86.next = 4;\n return wallet.connectedTo(transaction.blockchain);\n\n case 4:\n _context86.t0 = _context86.sent;\n\n if (!(_context86.t0 == false)) {\n _context86.next = 8;\n break;\n }\n\n _context86.next = 8;\n return wallet.switchTo(transaction.blockchain);\n\n case 8:\n _context86.next = 10;\n return wallet.connectedTo(transaction.blockchain);\n\n case 10:\n _context86.t1 = _context86.sent;\n\n if (!(_context86.t1 == false)) {\n _context86.next = 13;\n break;\n }\n\n throw {\n code: 'WRONG_NETWORK'\n };\n\n case 13:\n _context86.next = 15;\n return transaction.prepare({\n wallet: wallet\n });\n\n case 15:\n provider = new ethers.providers.Web3Provider(wallet.connector, 'any');\n signer = provider.getSigner(0);\n _context86.next = 19;\n return submit({\n transaction: transaction,\n provider: provider,\n signer: signer\n }).then(function (sentTransaction) {\n if (sentTransaction) {\n transaction.id = sentTransaction.hash;\n transaction.nonce = sentTransaction.nonce;\n transaction.url = Blockchains.findByName(transaction.blockchain).explorerUrlFor({\n transaction: transaction\n });\n if (transaction.sent) transaction.sent(transaction);\n retrieveConfirmedTransaction(sentTransaction).then(function () {\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n }).catch(function (error) {\n if (error && error.code && error.code == 'TRANSACTION_REPLACED') {\n if (error.replacement && error.replacement.hash) {\n transaction.id = error.replacement.hash;\n transaction.url = Blockchains.findByName(transaction.blockchain).explorerUrlFor({\n transaction: transaction\n });\n }\n\n if (error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {\n transaction._succeeded = true;\n if (transaction.succeeded) transaction.succeeded(transaction);\n } else if (error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, error);\n }\n } else {\n transaction._failed = true;\n if (transaction.failed) transaction.failed(transaction, error);\n }\n });\n } else {\n throw 'Submitting transaction failed!';\n }\n });\n\n case 19:\n return _context86.abrupt(\"return\", transaction);\n\n case 20:\n case \"end\":\n return _context86.stop();\n }\n }\n }, _callee86);\n }));\n\n return function sendTransaction(_x49) {\n return _ref82.apply(this, arguments);\n };\n}();\n\nvar retrieveConfirmedTransaction = function retrieveConfirmedTransaction(sentTransaction) {\n return new Promise(function (resolve, reject) {\n try {\n sentTransaction.wait(1).then(resolve).catch(function (error) {\n if (error && _optionalChain$3([error, 'optionalAccess', function (_) {\n return _.stack;\n }, 'optionalAccess', function (_2) {\n return _2.match;\n }, 'call', function (_3) {\n return _3('JSON-RPC error');\n }]) || error && error.toString().match('undefined')) {\n setTimeout(function () {\n retrieveConfirmedTransaction(sentTransaction).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(error);\n }\n });\n } catch (error) {\n if (error && _optionalChain$3([error, 'optionalAccess', function (_4) {\n return _4.stack;\n }, 'optionalAccess', function (_5) {\n return _5.match;\n }, 'call', function (_6) {\n return _6('JSON-RPC error');\n }]) || error && error.toString().match('undefined')) {\n setTimeout(function () {\n retrieveConfirmedTransaction(sentTransaction).then(resolve).catch(reject);\n }, 500);\n } else {\n reject(error);\n }\n }\n });\n};\n\nvar submit = function submit(_ref83) {\n var transaction = _ref83.transaction,\n provider = _ref83.provider,\n signer = _ref83.signer;\n\n if (transaction.method) {\n return submitContractInteraction({\n transaction: transaction,\n signer: signer,\n provider: provider\n });\n } else {\n return submitSimpleTransfer({\n transaction: transaction,\n signer: signer\n });\n }\n};\n\nvar submitContractInteraction = function submitContractInteraction(_ref84) {\n var transaction = _ref84.transaction,\n signer = _ref84.signer,\n provider = _ref84.provider;\n var contract = new ethers.Contract(transaction.to, transaction.api, provider);\n var contractArguments = transaction.getContractArguments({\n contract: contract\n });\n var method = contract.connect(signer)[transaction.getMethodNameWithSignature()];\n\n if (contractArguments) {\n return method.apply(void 0, _toConsumableArray(contractArguments).concat([{\n value: Transaction.bigNumberify(transaction.value, transaction.blockchain)\n }]));\n } else {\n return method({\n value: Transaction.bigNumberify(transaction.value, transaction.blockchain)\n });\n }\n};\n\nvar submitSimpleTransfer = function submitSimpleTransfer(_ref85) {\n var transaction = _ref85.transaction,\n signer = _ref85.signer;\n return signer.sendTransaction({\n to: transaction.to,\n value: Transaction.bigNumberify(transaction.value, transaction.blockchain)\n });\n};\n\nfunction _optionalChain$2(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value36;\n\n for (var _len36 = arguments.length, args = new Array(_len36), _key36 = 0; _key36 < _len36; _key36++) {\n args[_key36] = arguments[_key36];\n }\n\n return (_value36 = value).call.apply(_value36, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getConnectedInstance = function getConnectedInstance() {\n return window._connectedWalletLinkInstance;\n};\n\nvar setConnectedInstance = function setConnectedInstance(value) {\n window._connectedWalletLinkInstance = value;\n};\n\nvar WalletLink = /*#__PURE__*/function () {\n function WalletLink() {\n var _this18 = this;\n\n _classCallCheck(this, WalletLink);\n\n this.name = this.constructor.info.name;\n this.logo = this.constructor.info.logo;\n this.blockchains = this.constructor.info.blockchains; // RESET WalletLink (do not recover connections!)\n\n Object.keys(localStorage).forEach(function (key) {\n if (key.match(\"-walletlink:https://www.walletlink.org\")) {\n delete localStorage[key];\n }\n });\n this.connector = WalletLink.instance || this.newWalletLinkInstance();\n\n this.sendTransaction = function (transaction) {\n return sendTransaction({\n wallet: _this18,\n transaction: transaction\n });\n };\n }\n\n _createClass(WalletLink, [{\n key: \"newWalletLinkInstance\",\n value: function newWalletLinkInstance() {\n var instance = new CoinbaseWalletSDK({}).makeWeb3Provider();\n return instance;\n }\n }, {\n key: \"account\",\n value: function () {\n var _account5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee87() {\n return _regeneratorRuntime.wrap(function _callee87$(_context87) {\n while (1) {\n switch (_context87.prev = _context87.next) {\n case 0:\n if (!(this.connectedAccounts == undefined)) {\n _context87.next = 2;\n break;\n }\n\n return _context87.abrupt(\"return\");\n\n case 2:\n return _context87.abrupt(\"return\", ethers.utils.getAddress(this.connectedAccounts[0]));\n\n case 3:\n case \"end\":\n return _context87.stop();\n }\n }\n }, _callee87, this);\n }));\n\n function account() {\n return _account5.apply(this, arguments);\n }\n\n return account;\n }()\n }, {\n key: \"connect\",\n value: function () {\n var _connect5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee88(options) {\n var _this19 = this;\n\n var connect, relay, accounts;\n return _regeneratorRuntime.wrap(function _callee88$(_context88) {\n while (1) {\n switch (_context88.prev = _context88.next) {\n case 0:\n connect = options && options.connect ? options.connect : function (_ref86) {\n var uri = _ref86.uri;\n };\n _context88.next = 3;\n return connect({\n uri: this.connector.qrUrl\n });\n\n case 3:\n _optionalChain$2([document, 'access', function (_) {\n return _.querySelector;\n }, 'call', function (_2) {\n return _2('.-cbwsdk-css-reset');\n }, 'optionalAccess', function (_3) {\n return _3.setAttribute;\n }, 'call', function (_4) {\n return _4('style', 'display: none;');\n }]);\n\n _optionalChain$2([document, 'access', function (_5) {\n return _5.querySelector;\n }, 'call', function (_6) {\n return _6('.-cbwsdk-extension-dialog-container');\n }, 'optionalAccess', function (_7) {\n return _7.setAttribute;\n }, 'call', function (_8) {\n return _8('style', 'display: none;');\n }]);\n\n setTimeout(function () {\n if (_optionalChain$2([_this19, 'optionalAccess', function (_9) {\n return _9.connector;\n }, 'optionalAccess', function (_10) {\n return _10._relay;\n }, 'optionalAccess', function (_11) {\n return _11.ui;\n }, 'optionalAccess', function (_12) {\n return _12.linkFlow;\n }, 'optionalAccess', function (_13) {\n return _13.isOpen;\n }])) {\n _this19.connector._relay.ui.linkFlow.isOpen = false;\n }\n }, 10);\n _context88.next = 8;\n return this.connector._relayProvider();\n\n case 8:\n relay = _context88.sent;\n relay.setConnectDisabled(false);\n _context88.next = 12;\n return this.connector.enable();\n\n case 12:\n accounts = _context88.sent;\n\n if (accounts instanceof Array && accounts.length) {\n setConnectedInstance(this);\n }\n\n accounts = accounts.map(function (account) {\n return ethers.utils.getAddress(account);\n });\n this.connectedAccounts = accounts;\n _context88.next = 18;\n return this.connector.getChainId();\n\n case 18:\n this.connectedChainId = _context88.sent;\n return _context88.abrupt(\"return\", accounts[0]);\n\n case 20:\n case \"end\":\n return _context88.stop();\n }\n }\n }, _callee88, this);\n }));\n\n function connect(_x50) {\n return _connect5.apply(this, arguments);\n }\n\n return connect;\n }()\n }, {\n key: \"connectedTo\",\n value: function () {\n var _connectedTo5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee89(input) {\n var chainId, blockchain;\n return _regeneratorRuntime.wrap(function _callee89$(_context89) {\n while (1) {\n switch (_context89.prev = _context89.next) {\n case 0:\n _context89.next = 2;\n return this.connector.getChainId();\n\n case 2:\n chainId = _context89.sent;\n blockchain = Blockchains.findByNetworkId(chainId);\n\n if (blockchain) {\n _context89.next = 6;\n break;\n }\n\n return _context89.abrupt(\"return\", false);\n\n case 6:\n if (!input) {\n _context89.next = 10;\n break;\n }\n\n return _context89.abrupt(\"return\", input === blockchain.name);\n\n case 10:\n return _context89.abrupt(\"return\", blockchain.name);\n\n case 11:\n case \"end\":\n return _context89.stop();\n }\n }\n }, _callee89, this);\n }));\n\n function connectedTo(_x51) {\n return _connectedTo5.apply(this, arguments);\n }\n\n return connectedTo;\n }()\n }, {\n key: \"switchTo\",\n value: function switchTo(blockchainName) {\n var _this20 = this;\n\n return new Promise(function (resolve, reject) {\n var blockchain = Blockchains.findByName(blockchainName);\n\n _this20.connector.request({\n method: 'wallet_switchEthereumChain',\n params: [{\n chainId: blockchain.id\n }]\n }).then(resolve).catch(function (error) {\n if (error.code === 4902) {\n // chain not yet added\n _this20.addNetwork(blockchainName).then(function () {\n return _this20.switchTo(blockchainName).then(resolve);\n }).catch(reject);\n } else {\n reject(error);\n }\n });\n });\n }\n }, {\n key: \"addNetwork\",\n value: function addNetwork(blockchainName) {\n var _this21 = this;\n\n return new Promise(function (resolve, reject) {\n var blockchain = Blockchains.findByName(blockchainName);\n\n _this21.connector.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: blockchain.id,\n chainName: blockchain.fullName,\n nativeCurrency: {\n name: blockchain.currency.name,\n symbol: blockchain.currency.symbol,\n decimals: blockchain.currency.decimals\n },\n rpcUrls: [blockchain.rpc],\n blockExplorerUrls: [blockchain.explorer],\n iconUrls: [blockchain.logo]\n }]\n }).then(resolve).catch(reject);\n });\n }\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var internalCallback;\n\n switch (event) {\n case 'account':\n internalCallback = function internalCallback(accounts) {\n return callback(ethers.utils.getAddress(accounts[0]));\n };\n\n this.connector.on('accountsChanged', internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"off\",\n value: function off(event, internalCallback) {\n switch (event) {\n case 'account':\n this.connector.removeListener('accountsChanged', internalCallback);\n break;\n }\n\n return internalCallback;\n }\n }, {\n key: \"transactionCount\",\n value: function transactionCount(_ref87) {\n var blockchain = _ref87.blockchain,\n address = _ref87.address;\n return request({\n blockchain: blockchain,\n method: 'transactionCount',\n address: address\n });\n }\n }, {\n key: \"sign\",\n value: function () {\n var _sign6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee90(message) {\n var provider, account, signature, _provider2, signer, _signature3;\n\n return _regeneratorRuntime.wrap(function _callee90$(_context90) {\n while (1) {\n switch (_context90.prev = _context90.next) {\n case 0:\n if (!(_typeof(message) === 'object')) {\n _context90.next = 16;\n break;\n }\n\n provider = this.connector;\n _context90.next = 4;\n return this.account();\n\n case 4:\n account = _context90.sent;\n _context90.next = 7;\n return this.connectedTo(Blockchains.findByNetworkId(message.domain.chainId).name);\n\n case 7:\n _context90.t0 = _context90.sent;\n\n if (!(_context90.t0 === false)) {\n _context90.next = 10;\n break;\n }\n\n throw {\n code: 'WRONG_NETWORK'\n };\n\n case 10:\n _context90.next = 12;\n return provider.request({\n method: 'eth_signTypedData_v4',\n params: [account, message],\n from: account\n });\n\n case 12:\n signature = _context90.sent;\n return _context90.abrupt(\"return\", signature);\n\n case 16:\n if (!(typeof message === 'string')) {\n _context90.next = 25;\n break;\n }\n\n _context90.next = 19;\n return this.account();\n\n case 19:\n _provider2 = new ethers.providers.Web3Provider(this.connector, 'any');\n signer = _provider2.getSigner(0);\n _context90.next = 23;\n return signer.signMessage(message);\n\n case 23:\n _signature3 = _context90.sent;\n return _context90.abrupt(\"return\", _signature3);\n\n case 25:\n case \"end\":\n return _context90.stop();\n }\n }\n }, _callee90, this);\n }));\n\n function sign(_x52) {\n return _sign6.apply(this, arguments);\n }\n\n return sign;\n }()\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'Coinbase',\n logo: logos.coinbase,\n blockchains: supported$1.evm\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee91() {\n return _regeneratorRuntime.wrap(function _callee91$(_context91) {\n while (1) {\n switch (_context91.prev = _context91.next) {\n case 0:\n return _context91.abrupt(\"return\", getConnectedInstance() != undefined);\n\n case 1:\n case \"end\":\n return _context91.stop();\n }\n }\n }, _callee91);\n }));\n }\n }]);\n\n return WalletLink;\n}();\n\nWalletLink.__initStatic();\n\nWalletLink.__initStatic2();\n\nWalletLink.getConnectedInstance = getConnectedInstance;\nWalletLink.setConnectedInstance = setConnectedInstance;\n\nfunction _optionalChain$1(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value37;\n\n for (var _len37 = arguments.length, args = new Array(_len37), _key37 = 0; _key37 < _len37; _key37++) {\n args[_key37] = arguments[_key37];\n }\n\n return (_value37 = value).call.apply(_value37, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar WorldApp = /*#__PURE__*/function () {\n function WorldApp() {\n _classCallCheck(this, WorldApp);\n\n MiniKit.install();\n this.name = this.constructor.info.name;\n this.logo = this.constructor.info.logo;\n this.blockchains = this.constructor.info.blockchains;\n this.sendTransaction = this.sendTransaction;\n }\n\n _createClass(WorldApp, [{\n key: \"sendTransaction\",\n value: function sendTransaction(transaction) {\n var _this22 = this;\n\n console.log('sendTransaction', transaction);\n transaction = new Transaction(transaction);\n console.log('after transaction wrapping transaction.sent', transaction.sent);\n console.log('after transaction wrapping transaction.succeeded', transaction.succeeded);\n console.log('after transaction wrapping transaction.failed', transaction.failed);\n return new Promise( /*#__PURE__*/function () {\n var _ref89 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee92(resolve, reject) {\n return _regeneratorRuntime.wrap(function _callee92$(_context92) {\n while (1) {\n switch (_context92.prev = _context92.next) {\n case 0:\n _context92.next = 2;\n return transaction.prepare({\n wallet: _this22\n });\n\n case 2:\n console.log('after prepare transaction', transaction);\n _context92.next = 5;\n return _this22.transactionCount({\n blockchain: 'worldchain',\n address: transaction.from\n });\n\n case 5:\n transaction.nonce = _context92.sent.toString();\n console.log('after nonce transaction', transaction);\n console.log('before MiniKit.subscribe');\n MiniKit.subscribe(ResponseEvent.MiniAppSendTransaction, function (payload) {\n console.log('payload', payload);\n\n if (payload.status == \"success\") {\n console.log('before transaction.accepted', transaction);\n\n if (transaction.accepted) {\n transaction.accepted();\n }\n\n console.log('after transaction.accepted', transaction);\n\n _this22.fetchTransaction(transaction, payload).then(function (transactionHash) {\n if (transactionHash) {\n resolve(transaction);\n } else {\n reject('Fetching transaction failed!');\n }\n }).catch(reject);\n } else {\n reject('Submitting transaction failed!');\n }\n });\n console.log('after MiniKit.subscribe');\n console.log('before MiniKit.commands.sendTransaction', {\n transaction: [{\n address: transaction.to,\n abi: _optionalChain$1([transaction, 'access', function (_3) {\n return _3.api;\n }, 'optionalAccess', function (_4) {\n return _4.filter;\n }, 'call', function (_5) {\n return _5(function (fragment) {\n return fragment.name === transaction.method && _optionalChain$1([fragment, 'optionalAccess', function (_6) {\n return _6.inputs;\n }, 'optionalAccess', function (_7) {\n return _7.length;\n }]) === _optionalChain$1([transaction, 'access', function (_8) {\n return _8.params;\n }, 'optionalAccess', function (_9) {\n return _9.args;\n }, 'optionalAccess', function (_10) {\n return _10.length;\n }]);\n });\n }]),\n functionName: transaction.method,\n args: _optionalChain$1([transaction, 'access', function (_11) {\n return _11.params;\n }, 'optionalAccess', function (_12) {\n return _12.args;\n }])\n }],\n permit2: [_optionalChain$1([transaction, 'access', function (_13) {\n return _13.params;\n }, 'optionalAccess', function (_14) {\n return _14.permit2;\n }])]\n });\n MiniKit.commands.sendTransaction({\n transaction: [{\n address: transaction.to,\n abi: _optionalChain$1([transaction, 'access', function (_15) {\n return _15.api;\n }, 'optionalAccess', function (_16) {\n return _16.filter;\n }, 'call', function (_17) {\n return _17(function (fragment) {\n return fragment.name === transaction.method && _optionalChain$1([fragment, 'optionalAccess', function (_18) {\n return _18.inputs;\n }, 'optionalAccess', function (_19) {\n return _19.length;\n }]) === _optionalChain$1([transaction, 'access', function (_20) {\n return _20.params;\n }, 'optionalAccess', function (_21) {\n return _21.args;\n }, 'optionalAccess', function (_22) {\n return _22.length;\n }]);\n });\n }]),\n functionName: transaction.method,\n args: _optionalChain$1([transaction, 'access', function (_23) {\n return _23.params;\n }, 'optionalAccess', function (_24) {\n return _24.args;\n }])\n }],\n permit2: [_optionalChain$1([transaction, 'access', function (_25) {\n return _25.params;\n }, 'optionalAccess', function (_26) {\n return _26.permit2;\n }])]\n });\n console.log('after MiniKit.commands.sendTransaction');\n\n case 13:\n case \"end\":\n return _context92.stop();\n }\n }\n }, _callee92);\n }));\n\n return function (_x53, _x54) {\n return _ref89.apply(this, arguments);\n };\n }());\n }\n }, {\n key: \"retryFetchTransaction\",\n value: function retryFetchTransaction(transaction, payload, attempt) {\n var _this23 = this;\n\n console.log('Retry Fetch transaction', attempt);\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n _this23.fetchTransaction(transaction, payload, attempt + 1).then(resolve).catch(reject);\n }, attempt < 30 ? 500 : 1000);\n });\n }\n }, {\n key: \"fetchTransaction\",\n value: function fetchTransaction(transaction, payload) {\n var _this24 = this;\n\n var attempt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return new Promise(function (resolve, reject) {\n console.log('Before fetch');\n fetch(\"https://public.depay.com/transactions/worldchain/\".concat(payload.transaction_id), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n }).then(function (response) {\n console.log('After fetch', response);\n\n if (response.ok) {\n console.log('Before json');\n response.json().then(function (transactionJSON) {\n console.log('After json', transactionJSON);\n\n if (_optionalChain$1([transactionJSON, 'optionalAccess', function (_27) {\n return _27.external_id;\n }])) {\n transaction.id = _optionalChain$1([transactionJSON, 'optionalAccess', function (_28) {\n return _28.external_id;\n }]);\n transaction.url = Blockchains['worldchain'].explorerUrlFor({\n transaction: transaction\n });\n console.log('before transaction.sent', transaction.sent);\n\n if (transaction.sent) {\n transaction.sent(transaction);\n }\n\n console.log('Before provider');\n getProvider('worldchain').then(function (provider) {\n console.log('After provider', provider);\n console.log('Before wait transaction', transactionJSON.external_id);\n provider.waitForTransaction(transactionJSON.external_id).then(function (receipt) {\n console.log('After receipt', receipt);\n\n if (receipt && receipt.status == 1) {\n transaction._succeeded = true;\n console.log('before transaction.succeeded', transaction.succeeded);\n\n if (transaction.succeeded) {\n transaction.succeeded(transaction);\n }\n\n resolve(transaction);\n } else {\n if (transaction.failed) {\n transaction.failed(transaction, 'Transaction failed');\n }\n }\n }).catch(reject);\n }).catch(reject);\n } else {\n _this24.retryFetchTransaction(transaction, payload, attempt).then(resolve).catch(reject);\n }\n }).catch(function () {\n return _this24.retryFetchTransaction(transaction, payload, attempt).then(resolve).catch(reject);\n });\n } else {\n _this24.retryFetchTransaction(transaction, payload, attempt).then(resolve).catch(reject);\n }\n }).catch(function () {\n return _this24.retryFetchTransaction(transaction, payload, attempt).then(resolve).catch(reject);\n });\n });\n }\n }, {\n key: \"getProvider\",\n value: function getProvider() {\n return this;\n }\n }, {\n key: \"account\",\n value: function () {\n var _account6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee93() {\n return _regeneratorRuntime.wrap(function _callee93$(_context93) {\n while (1) {\n switch (_context93.prev = _context93.next) {\n case 0:\n if (this.getProvider()) {\n _context93.next = 2;\n break;\n }\n\n return _context93.abrupt(\"return\", undefined);\n\n case 2:\n return _context93.abrupt(\"return\", MiniKit.walletAddress);\n\n case 3:\n case \"end\":\n return _context93.stop();\n }\n }\n }, _callee93, this);\n }));\n\n function account() {\n return _account6.apply(this, arguments);\n }\n\n return account;\n }()\n }, {\n key: \"connect\",\n value: function connect() {\n return new Promise( /*#__PURE__*/function () {\n var _ref90 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee95(resolve, reject) {\n var _yield$MiniKit$comman, finalPayload;\n\n return _regeneratorRuntime.wrap(function _callee95$(_context95) {\n while (1) {\n switch (_context95.prev = _context95.next) {\n case 0:\n if (!MiniKit.walletAddress) {\n _context95.next = 2;\n break;\n }\n\n return _context95.abrupt(\"return\", resolve(MiniKit.walletAddress));\n\n case 2:\n MiniKit.subscribe(ResponseEvent.MiniAppWalletAuth, /*#__PURE__*/function () {\n var _ref91 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee94(payload) {\n return _regeneratorRuntime.wrap(function _callee94$(_context94) {\n while (1) {\n switch (_context94.prev = _context94.next) {\n case 0:\n if (!(payload.status === \"error\")) {\n _context94.next = 4;\n break;\n }\n\n return _context94.abrupt(\"return\", reject(payload.message));\n\n case 4:\n return _context94.abrupt(\"return\", resolve(MiniKit.walletAddress || _optionalChain$1([window, 'access', function (_29) {\n return _29.MiniKit;\n }, 'optionalAccess', function (_30) {\n return _30.walletAddress;\n }])));\n\n case 5:\n case \"end\":\n return _context94.stop();\n }\n }\n }, _callee94);\n }));\n\n return function (_x57) {\n return _ref91.apply(this, arguments);\n };\n }());\n _context95.next = 5;\n return MiniKit.commandsAsync.walletAuth({\n nonce: crypto.randomUUID().replace(/-/g, \"\"),\n expirationTime: new Date(new Date().getTime() + 7 * 24 * 60 * 60 * 1000),\n notBefore: new Date(new Date().getTime() - 24 * 60 * 60 * 1000),\n statement: \"Connect World App (v17.6.2)\"\n });\n\n case 5:\n _yield$MiniKit$comman = _context95.sent;\n finalPayload = _yield$MiniKit$comman.finalPayload;\n\n if (!(finalPayload.status == 'error')) {\n _context95.next = 11;\n break;\n }\n\n return _context95.abrupt(\"return\", reject(finalPayload.message));\n\n case 11:\n return _context95.abrupt(\"return\", resolve(MiniKit.walletAddress || _optionalChain$1([window, 'access', function (_31) {\n return _31.MiniKit;\n }, 'optionalAccess', function (_32) {\n return _32.walletAddress;\n }])));\n\n case 12:\n case \"end\":\n return _context95.stop();\n }\n }\n }, _callee95);\n }));\n\n return function (_x55, _x56) {\n return _ref90.apply(this, arguments);\n };\n }());\n }\n }, {\n key: \"on\",\n value: function on(event, callback) {}\n }, {\n key: \"off\",\n value: function off(event, internalCallback) {}\n }, {\n key: \"connectedTo\",\n value: function () {\n var _connectedTo6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee96(input) {\n return _regeneratorRuntime.wrap(function _callee96$(_context96) {\n while (1) {\n switch (_context96.prev = _context96.next) {\n case 0:\n if (!input) {\n _context96.next = 4;\n break;\n }\n\n return _context96.abrupt(\"return\", input === 'worldchain');\n\n case 4:\n return _context96.abrupt(\"return\", 'worldchain');\n\n case 5:\n case \"end\":\n return _context96.stop();\n }\n }\n }, _callee96);\n }));\n\n function connectedTo(_x58) {\n return _connectedTo6.apply(this, arguments);\n }\n\n return connectedTo;\n }()\n }, {\n key: \"addNetwork\",\n value: function addNetwork(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"switchTo\",\n value: function switchTo(blockchainName) {\n return new Promise(function (resolve, reject) {\n reject({\n code: 'NOT_SUPPORTED'\n });\n });\n }\n }, {\n key: \"transactionCount\",\n value: function () {\n var _transactionCount3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee97(_ref92) {\n var blockchain, address;\n return _regeneratorRuntime.wrap(function _callee97$(_context97) {\n while (1) {\n switch (_context97.prev = _context97.next) {\n case 0:\n blockchain = _ref92.blockchain, address = _ref92.address;\n\n if (_optionalChain$1([MiniKit, 'optionalAccess', function (_33) {\n return _33.walletAddress;\n }])) {\n _context97.next = 5;\n break;\n }\n\n return _context97.abrupt(\"return\", 0);\n\n case 5:\n return _context97.abrupt(\"return\", request({\n blockchain: 'worldchain',\n address: _optionalChain$1([MiniKit, 'optionalAccess', function (_34) {\n return _34.walletAddress;\n }]),\n api: [{\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }],\n \"name\": \"AddedOwner\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"approvedHash\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }],\n \"name\": \"ApproveHash\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"handler\",\n \"type\": \"address\"\n }],\n \"name\": \"ChangedFallbackHandler\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"guard\",\n \"type\": \"address\"\n }],\n \"name\": \"ChangedGuard\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"threshold\",\n \"type\": \"uint256\"\n }],\n \"name\": \"ChangedThreshold\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"DisabledModule\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"EnabledModule\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"txHash\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"payment\",\n \"type\": \"uint256\"\n }],\n \"name\": \"ExecutionFailure\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"ExecutionFromModuleFailure\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"ExecutionFromModuleSuccess\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"txHash\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"payment\",\n \"type\": \"uint256\"\n }],\n \"name\": \"ExecutionSuccess\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }],\n \"name\": \"RemovedOwner\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"SafeReceived\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"initiator\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address[]\",\n \"name\": \"owners\",\n \"type\": \"address[]\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"threshold\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"initializer\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"fallbackHandler\",\n \"type\": \"address\"\n }],\n \"name\": \"SafeSetup\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"bytes32\",\n \"name\": \"msgHash\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"SignMsg\",\n \"type\": \"event\"\n }, {\n \"stateMutability\": \"nonpayable\",\n \"type\": \"fallback\"\n }, {\n \"inputs\": [],\n \"name\": \"VERSION\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"_threshold\",\n \"type\": \"uint256\"\n }],\n \"name\": \"addOwnerWithThreshold\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"hashToApprove\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"approveHash\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"approvedHashes\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"_threshold\",\n \"type\": \"uint256\"\n }],\n \"name\": \"changeThreshold\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"dataHash\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signatures\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requiredSignatures\",\n \"type\": \"uint256\"\n }],\n \"name\": \"checkNSignatures\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"dataHash\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signatures\",\n \"type\": \"bytes\"\n }],\n \"name\": \"checkSignatures\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"prevModule\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"disableModule\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"domainSeparator\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"enableModule\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"enumEnum.Operation\",\n \"name\": \"operation\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"safeTxGas\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"baseGas\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasPrice\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"gasToken\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"refundReceiver\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"_nonce\",\n \"type\": \"uint256\"\n }],\n \"name\": \"encodeTransactionData\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"enumEnum.Operation\",\n \"name\": \"operation\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"safeTxGas\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"baseGas\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasPrice\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"gasToken\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"addresspayable\",\n \"name\": \"refundReceiver\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signatures\",\n \"type\": \"bytes\"\n }],\n \"name\": \"execTransaction\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"success\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"enumEnum.Operation\",\n \"name\": \"operation\",\n \"type\": \"uint8\"\n }],\n \"name\": \"execTransactionFromModule\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"success\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"enumEnum.Operation\",\n \"name\": \"operation\",\n \"type\": \"uint8\"\n }],\n \"name\": \"execTransactionFromModuleReturnData\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"success\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"returnData\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"getChainId\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"start\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"pageSize\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getModulesPaginated\",\n \"outputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"array\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"next\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"getOwners\",\n \"outputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"offset\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"length\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getStorageAt\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"getThreshold\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"enumEnum.Operation\",\n \"name\": \"operation\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"safeTxGas\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"baseGas\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasPrice\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"gasToken\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"refundReceiver\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"_nonce\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getTransactionHash\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"module\",\n \"type\": \"address\"\n }],\n \"name\": \"isModuleEnabled\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }],\n \"name\": \"isOwner\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"nonce\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"prevOwner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"_threshold\",\n \"type\": \"uint256\"\n }],\n \"name\": \"removeOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"enumEnum.Operation\",\n \"name\": \"operation\",\n \"type\": \"uint8\"\n }],\n \"name\": \"requiredTxGas\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"handler\",\n \"type\": \"address\"\n }],\n \"name\": \"setFallbackHandler\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"guard\",\n \"type\": \"address\"\n }],\n \"name\": \"setGuard\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"_owners\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"_threshold\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"fallbackHandler\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"paymentToken\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"payment\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"addresspayable\",\n \"name\": \"paymentReceiver\",\n \"type\": \"address\"\n }],\n \"name\": \"setup\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"signedMessages\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"targetContract\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"calldataPayload\",\n \"type\": \"bytes\"\n }],\n \"name\": \"simulateAndRevert\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"prevOwner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"oldOwner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"swapOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }],\n method: 'nonce'\n }));\n\n case 6:\n case \"end\":\n return _context97.stop();\n }\n }\n }, _callee97);\n }));\n\n function transactionCount(_x59) {\n return _transactionCount3.apply(this, arguments);\n }\n\n return transactionCount;\n }()\n }, {\n key: \"sign\",\n value: function () {\n var _sign7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee99(message) {\n return _regeneratorRuntime.wrap(function _callee99$(_context99) {\n while (1) {\n switch (_context99.prev = _context99.next) {\n case 0:\n return _context99.abrupt(\"return\", new Promise(function (resolve, reject) {\n MiniKit.subscribe(ResponseEvent.MiniAppSignMessage, /*#__PURE__*/function () {\n var _ref93 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee98(payload) {\n return _regeneratorRuntime.wrap(function _callee98$(_context98) {\n while (1) {\n switch (_context98.prev = _context98.next) {\n case 0:\n if (!(payload.status === \"error\")) {\n _context98.next = 4;\n break;\n }\n\n return _context98.abrupt(\"return\", reject());\n\n case 4:\n return _context98.abrupt(\"return\", resolve(payload.signature));\n\n case 5:\n case \"end\":\n return _context98.stop();\n }\n }\n }, _callee98);\n }));\n\n return function (_x61) {\n return _ref93.apply(this, arguments);\n };\n }());\n MiniKit.commands.signMessage({\n message: message\n });\n }));\n\n case 1:\n case \"end\":\n return _context99.stop();\n }\n }\n }, _callee99);\n }));\n\n function sign(_x60) {\n return _sign7.apply(this, arguments);\n }\n\n return sign;\n }()\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.info = {\n name: 'World App',\n logo: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMzIDMyIj4KICA8Zz4KICAgIDxnPgogICAgICA8cmVjdCBmaWxsPSIjMDAwMDAwIiB3aWR0aD0iMzMiIGhlaWdodD0iMzIiLz4KICAgIDwvZz4KICAgIDxnPgogICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMjQuNywxMi41Yy0uNS0xLjEtMS4xLTItMS45LTIuOHMtMS44LTEuNS0yLjgtMS45Yy0xLjEtLjUtMi4zLS43LTMuNS0uN3MtMi40LjItMy41LjdjLTEuMS41LTIsMS4xLTIuOCwxLjlzLTEuNSwxLjgtMS45LDIuOGMtLjUsMS4xLS43LDIuMy0uNywzLjVzLjIsMi40LjcsMy41LDEuMSwyLDEuOSwyLjhjLjguOCwxLjgsMS41LDIuOCwxLjksMS4xLjUsMi4zLjcsMy41LjdzMi40LS4yLDMuNS0uNywyLTEuMSwyLjgtMS45LDEuNS0xLjgsMS45LTIuOGMuNS0xLjEuNy0yLjMuNy0zLjVzLS4yLTIuNC0uNy0zLjVaTTEzLjUsMTUuMmMuNC0xLjQsMS43LTIuNSwzLjItMi41aDYuMmMuNC44LjcsMS42LjcsMi41aC0xMC4xWk0yMy43LDE2LjhjMCwuOS0uNCwxLjctLjcsMi41aC02LjJjLTEuNSwwLTIuOC0xLjEtMy4yLTIuNWgxMC4xWk0xMS40LDEwLjljMS40LTEuNCwzLjItMi4xLDUuMS0yLjFzMy44LjcsNS4xLDIuMWguMWMwLC4xLTUsLjEtNSwuMS0xLjMsMC0yLjYuNS0zLjUsMS41LS43LjctMS4yLDEuNy0xLjQsMi43aC0yLjVjLjItMS42LjktMy4xLDIuMS00LjNaTTE2LjUsMjMuMmMtMS45LDAtMy44LS43LTUuMS0yLjEtMS4yLTEuMi0xLjktMi43LTIuMS00LjNoMi41Yy4yLDEsLjcsMS45LDEuNCwyLjcuOS45LDIuMiwxLjUsMy41LDEuNWg1LS4xYy0xLjQsMS41LTMuMiwyLjItNS4xLDIuMloiLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=\",\n blockchains: [\"worldchain\"]\n };\n }\n }, {\n key: \"__initStatic2\",\n value: function __initStatic2() {\n this.isAvailable = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee100() {\n return _regeneratorRuntime.wrap(function _callee100$(_context100) {\n while (1) {\n switch (_context100.prev = _context100.next) {\n case 0:\n return _context100.abrupt(\"return\", Boolean(_optionalChain$1([window, 'optionalAccess', function (_2) {\n return _2.WorldApp;\n }])));\n\n case 1:\n case \"end\":\n return _context100.stop();\n }\n }\n }, _callee100);\n }));\n }\n }]);\n\n return WorldApp;\n}();\n\nWorldApp.__initStatic();\n\nWorldApp.__initStatic2();\n\nvar wallets = {\n MetaMask: MetaMask,\n PhantomEVM: PhantomEVM,\n PhantomSVM: PhantomSVM,\n CoinbaseEVM: CoinbaseEVM,\n CoinbaseSVM: CoinbaseSVM,\n Binance: Binance,\n TrustEVM: TrustEVM,\n TrustSVM: TrustSVM,\n Backpack: Backpack,\n Glow: Glow,\n Solflare: Solflare,\n Rabby: Rabby,\n Uniswap: Uniswap,\n Rainbow: Rainbow,\n BraveEVM: BraveEVM,\n BraveSVM: BraveSVM,\n MagicEdenEVM: MagicEdenEVM,\n MagicEdenSVM: MagicEdenSVM,\n OKXEVM: OKXEVM,\n OKXSVM: OKXSVM,\n Opera: Opera,\n Coin98EVM: Coin98EVM,\n Coin98SVM: Coin98SVM,\n CryptoCom: CryptoCom,\n HyperPay: HyperPay,\n TokenPocket: TokenPocket,\n ExodusEVM: ExodusEVM,\n ExodusSVM: ExodusSVM,\n WorldApp: WorldApp,\n // standards\n WindowEthereum: WindowEthereum,\n WindowSolana: WindowSolana,\n SolanaMobileWalletAdapter: SolanaMobileWalletAdapter,\n WalletConnectV2: WalletConnectV2,\n WalletLink: WalletLink\n};\n\nfunction _optionalChain(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value38;\n\n for (var _len38 = arguments.length, args = new Array(_len38), _key38 = 0; _key38 < _len38; _key38++) {\n args[_key38] = arguments[_key38];\n }\n\n return (_value38 = value).call.apply(_value38, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getWallets = /*#__PURE__*/function () {\n var _ref95 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee102(args) {\n var drip, announceProvider, availableWallets;\n return _regeneratorRuntime.wrap(function _callee102$(_context102) {\n while (1) {\n switch (_context102.prev = _context102.next) {\n case 0:\n drip = args && typeof args.drip === 'function' ? args.drip : undefined; // eip6963\n\n window['_eip6963Providers'] = {};\n\n announceProvider = function announceProvider(event) {\n if (_optionalChain([event, 'optionalAccess', function (_) {\n return _.detail;\n }, 'optionalAccess', function (_2) {\n return _2.info;\n }, 'optionalAccess', function (_3) {\n return _3.uuid;\n }])) {\n window['_eip6963Providers'][_optionalChain([event, 'optionalAccess', function (_4) {\n return _4.detail;\n }, 'optionalAccess', function (_5) {\n return _5.info;\n }, 'optionalAccess', function (_6) {\n return _6.uuid;\n }])] = event.detail.provider;\n }\n };\n\n window.addEventListener(\"eip6963:announceProvider\", announceProvider);\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n window.removeEventListener(\"eip6963:announceProvider\", announceProvider);\n _context102.next = 8;\n return Promise.all(Object.keys(wallets).map( /*#__PURE__*/function () {\n var _ref96 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee101(key) {\n var wallet, instance;\n return _regeneratorRuntime.wrap(function _callee101$(_context101) {\n while (1) {\n switch (_context101.prev = _context101.next) {\n case 0:\n wallet = wallets[key];\n _context101.next = 3;\n return wallet.isAvailable();\n\n case 3:\n if (!_context101.sent) {\n _context101.next = 14;\n break;\n }\n\n if (!wallet.getConnectedInstance) {\n _context101.next = 12;\n break;\n }\n\n _context101.next = 7;\n return wallet.getConnectedInstance();\n\n case 7:\n instance = _context101.sent;\n\n if (drip && instance) {\n drip(instance);\n }\n\n return _context101.abrupt(\"return\", instance);\n\n case 12:\n if (drip && wallet) {\n drip(wallet);\n }\n\n return _context101.abrupt(\"return\", new wallet());\n\n case 14:\n case \"end\":\n return _context101.stop();\n }\n }\n }, _callee101);\n }));\n\n return function (_x63) {\n return _ref96.apply(this, arguments);\n };\n }()));\n\n case 8:\n availableWallets = _context102.sent;\n return _context102.abrupt(\"return\", availableWallets.filter(Boolean));\n\n case 10:\n case \"end\":\n return _context102.stop();\n }\n }\n }, _callee102);\n }));\n\n return function getWallets(_x62) {\n return _ref95.apply(this, arguments);\n };\n}();\n\nvar supported = [wallets.MetaMask, wallets.PhantomEVM, wallets.PhantomSVM, wallets.CoinbaseEVM, wallets.CoinbaseSVM, wallets.Binance, wallets.TrustEVM, wallets.TrustSVM, wallets.Backpack, wallets.Glow, wallets.Solflare, wallets.Rabby, wallets.Uniswap, wallets.Rainbow, wallets.BraveEVM, wallets.BraveSVM, wallets.Opera, wallets.Coin98EVM, wallets.Coin98SVM, wallets.CryptoCom, wallets.HyperPay, wallets.TokenPocket, wallets.MagicEdenEVM, wallets.MagicEdenSVM, wallets.OKXEVM, wallets.OKXSVM, wallets.ExodusEVM, wallets.ExodusSVM, wallets.WorldApp, // standards\nwallets.WalletConnectV2, wallets.SolanaMobileWalletAdapter, wallets.WalletLink, wallets.WindowEthereum];\nexport { getWallets, supported, wallets };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport { ReactDialog } from '@depay/react-dialog';\nvar CloseStackContext = /*#__PURE__*/React.createContext();\nvar NavigateStackContext = /*#__PURE__*/React.createContext();\n\nfunction ReactDialogStackStyle() {\n return \"\\n\\n .ReactDialogStack {\\n align-items: center;\\n bottom: 0;\\n display: flex;\\n flex: 1;\\n height: 100%;\\n justify-content: center;\\n position: absolute;\\n top: 0;\\n transition: left 0.1s ease, opacity 0.2s ease;\\n width: 100%;\\n }\\n\\n .ReactDialogStackRow {\\n display: table-row;\\n }\\n\\n .ReactDialogStackCell {\\n display: table-cell;\\n vertical-align: middle;\\n padding: 0 0.6rem;\\n }\\n\\n .ReactDialogStack {\\n left: 0;\\n opacity: 1;\\n }\\n\\n .ReactDialogStack.inactive {\\n display: none;\\n }\\n\\n .ReactDialogStack.animating.stale {\\n display: none;\\n }\\n\\n .ReactDialogStack.animating.previous.forward {\\n opacity: 0;\\n left: -5rem;\\n }\\n\\n .ReactDialogStack.animating.previous.backward {\\n opacity: 0;\\n left: 5rem;\\n }\\n\\n .ReactDialogStack.animating.next.forward {\\n opacity: 0;\\n left: 5rem;\\n }\\n\\n .ReactDialogStack.animating.next.backward {\\n opacity: 0;\\n left: -5rem;\\n }\\n \";\n}\n\nvar StackContext = /*#__PURE__*/React.createContext();\nvar _jsxFileName = \"/Users/sebastian/Work/DePay/react-dialog-stack/src/index.jsx\";\n\nvar ReactDialogStack = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactDialogStack, _React$Component);\n\n var _super = _createSuper(ReactDialogStack);\n\n function ReactDialogStack(props) {\n var _this;\n\n _classCallCheck(this, ReactDialogStack);\n\n _this = _super.call(this, props);\n\n if (props.setNavigator) {\n props.setNavigator(_assertThisInitialized(_this));\n }\n\n if (props.stacked) {\n var direction = typeof props.stacked === 'string' ? props.stacked : 'forward';\n _this.state = {\n stack: [],\n animating: false,\n animation: null,\n direction: direction,\n animationSpeed: 200\n };\n setTimeout(function () {\n return _this.navigate(props.start, direction);\n }, 10);\n } else {\n _this.state = {\n stack: [props.start],\n animating: false,\n animation: null,\n direction: 'forward',\n animationSpeed: 200\n };\n }\n\n return _this;\n }\n\n _createClass(ReactDialogStack, [{\n key: \"set\",\n value: function set(stack) {\n this.setState({\n stack: stack\n });\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this2 = this;\n\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'forward';\n\n if (direction === 'backward') {\n this.setState({\n stack: [null].concat(_toConsumableArray(this.state.stack))\n });\n setTimeout(function () {\n return _this2.navigate('back');\n }, 10);\n } else {\n this.navigate(null);\n }\n }\n }, {\n key: \"navigate\",\n value: function navigate(route) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'forward';\n\n if (this.state.stack.indexOf(route) > -1) {\n return;\n }\n\n if (route === 'back') {\n return this.unstack();\n }\n\n this.setState({\n stack: this.state.stack.concat(route),\n animating: true,\n direction: direction,\n animation: setTimeout(function () {\n this.setState({\n animating: false\n });\n }.bind(this), this.state.animationSpeed)\n });\n }\n }, {\n key: \"unstack\",\n value: function unstack() {\n if (this.state.stack.length <= 1) {\n return;\n }\n\n var newStack = _toConsumableArray(this.state.stack);\n\n newStack.pop();\n this.setState({\n animating: true,\n direction: 'backward',\n animation: setTimeout(function () {\n this.setState({\n stack: newStack,\n animating: false\n });\n }.bind(this), this.state.animationSpeed)\n });\n }\n }, {\n key: \"classForState\",\n value: function classForState(index) {\n if (this.state.animating) {\n return;\n }\n\n if (this.state.stack.length === 1) {\n return 'active';\n } else {\n if (this.state.stack.length === index + 1) {\n return 'active';\n } else {\n return 'inactive';\n }\n }\n }\n }, {\n key: \"classForPosition\",\n value: function classForPosition(index) {\n if (this.state.stack.length > 1) {\n if (this.state.stack.length === index + 1) {\n if (this.state.direction === 'forward') {\n return 'next';\n } else {\n return 'previous';\n }\n } else if (this.state.stack.length - 1 === index + 1) {\n if (this.state.direction === 'forward') {\n return 'previous';\n } else {\n return 'next';\n }\n } else {\n return 'stale';\n }\n } else if (this.state.animating && this.props.stacked && index === 0) {\n return 'next';\n }\n }\n }, {\n key: \"classForAnimation\",\n value: function classForAnimation() {\n if (this.state.animating) {\n return 'animating';\n }\n }\n }, {\n key: \"classForDirection\",\n value: function classForDirection() {\n return this.state.direction;\n }\n }, {\n key: \"renderStack\",\n value: function renderStack() {\n return this.state.stack.map(function (route, index) {\n var stackState = [this.classForState(index), this.classForPosition(index), this.classForAnimation(), this.classForDirection()];\n return /*#__PURE__*/React.createElement('div', {\n key: index,\n className: ['ReactDialogStack'].concat(stackState).join(' '),\n onClick: this.onClick.bind(this),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 153\n }\n }, /*#__PURE__*/React.createElement(NavigateStackContext.Provider, {\n value: {\n navigate: this.navigate.bind(this),\n set: this.set.bind(this),\n hide: this.hide.bind(this)\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 158\n }\n }, /*#__PURE__*/React.createElement(CloseStackContext.Provider, {\n value: this.close.bind(this),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 161\n }\n }, /*#__PURE__*/React.createElement(StackContext.Provider, {\n value: this.state.stack,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 162\n }\n }, /*#__PURE__*/React.createElement('div', {\n className: \"ReactDialogAnimation\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 163\n }\n }, this.props.dialogs[route])))));\n }.bind(this));\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (event.target && event.target.className && event.target.className.match && event.target.className.match('ReactDialogStack') // clicked background\n ) {\n if (this.state.stack.length > 1) {\n this.unstack();\n } else {\n this.close();\n }\n }\n }\n }, {\n key: \"close\",\n value: function close(force) {\n var _this3 = this;\n\n if (this.state.stack.length > 1 && !force) {\n this.unstack();\n } else {\n this.props.close();\n setTimeout(function () {\n return _this3.setState({\n stack: _this3.state.stack.slice(0, 1)\n });\n }, 400);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ReactDialog, {\n close: this.close.bind(this),\n open: this.props.open,\n document: this.props.document,\n container: this.props.container,\n animate: this.props.stacked ? false : true,\n background: this.props.background,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 199\n }\n }, /*#__PURE__*/React.createElement('style', {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 207\n }\n }, ReactDialogStackStyle()), this.renderStack());\n }\n }]);\n\n return ReactDialogStack;\n}(React.Component);\n\nexport { CloseStackContext, NavigateStackContext, ReactDialogStack, StackContext };","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","function _typeof2(obj) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof2(obj); }\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n\n for (var e = 0, n = Array(a); e < a; e++) {\n n[e] = r[e];\n }\n\n return n;\n}\n\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\n\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\n\nfunction _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\n\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\n\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n\n _next(void 0);\n });\n };\n}\n\nfunction _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n}\n\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\n\nfunction _construct(t, e, r) {\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && _setPrototypeOf(p, r.prototype), p;\n}\n\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\n\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\n\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\n\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = _superPropBase(e, t);\n\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\n\nfunction _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\n\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\n\nfunction _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\n\nfunction _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\n\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\n\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) {\n ;\n }\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n\n return a;\n }\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n\n return t;\n}\n\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n\n return e;\n}\n\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof2(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n}\n\nfunction _regeneratorRuntime() {\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof2(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n\n a(c.arg);\n }\n\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator.return && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) {\n if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n }\n\n return next.value = t, next.done = !0, next;\n };\n\n return i.next = i;\n }\n }\n\n throw new TypeError(_typeof2(e) + \" is not iterable\");\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n\n for (var n in e) {\n r.push(n);\n }\n\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) {\n \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n }\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n catch: function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n\n if (r.tryLoc === t) {\n var n = r.completion;\n\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n\n return o;\n }\n }\n\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\n\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\n\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\n\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));) {\n ;\n }\n\n return t;\n}\n\nfunction _superPropGet(t, e, o, r) {\n var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), e, o);\n\n return 2 & r && \"function\" == typeof p ? function (t) {\n return p.apply(o, t);\n } : p;\n}\n\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\n\nfunction _toPrimitive(t, r) {\n if (\"object\" != _typeof2(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof2(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n\n return \"symbol\" == _typeof2(i) ? i : i + \"\";\n}\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !_isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n\n function Wrapper() {\n return _construct(t, arguments, _getPrototypeOf(this).constructor);\n }\n\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), _setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\n\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getAugmentedNamespace(n) {\n var f = n.default;\n\n if (typeof f == \"function\") {\n var a = function a() {\n return f.apply(this, arguments);\n };\n\n a.prototype = f.prototype;\n } else a = {};\n\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n Object.keys(n).forEach(function (k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function get() {\n return n[k];\n }\n });\n });\n return a;\n}\n\nvar buffer = {};\nvar base64Js = {};\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\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 } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\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 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | 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 = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | 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] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\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\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\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 } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}\n\nvar ieee754 = {};\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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 i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\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\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\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nieee754.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 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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\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\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\n(function (exports) {\n var base64 = base64Js;\n var ieee754$1 = ieee754;\n var customInspectSymbol = 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 exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 0x7fffffff;\n exports.kMaxLength = K_MAX_LENGTH;\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 */\n\n Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error('This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');\n }\n\n function typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1);\n var proto = {\n foo: function foo() {\n return 42;\n }\n };\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\n Object.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function get() {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function get() {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\n });\n\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n } // Return an augmented `Uint8Array` instance\n\n\n var buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\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\n\n function Buffer(arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError('The \"string\" argument must be of type string. Received type number');\n }\n\n return allocUnsafe(arg);\n }\n\n return from(arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n\n function 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('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + _typeof(value));\n }\n\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type number');\n }\n\n var valueOf = value.valueOf && value.valueOf();\n\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n\n var b = fromObject(value);\n if (b) return b;\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length);\n }\n\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + _typeof(value));\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 **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n }; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n // https://github.com/feross/buffer/pull/148\n\n\n Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer, Uint8Array);\n\n function 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\n function alloc(size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(size);\n }\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' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n\n return createBuffer(size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n };\n\n function 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 var length = byteLength(string, encoding) | 0;\n var buf = createBuffer(length);\n var 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\n function fromArrayLike(array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n var buf = createBuffer(length);\n\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n\n return buf;\n }\n\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n\n return fromArrayLike(arrayView);\n }\n\n function 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 var buf;\n\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 } // Return an augmented `Uint8Array` instance\n\n\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n\n function fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n var 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\n return fromArrayLike(obj);\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n\n function 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 ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes');\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n };\n\n Buffer.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\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n Buffer.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\n default:\n return false;\n }\n };\n\n Buffer.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 var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\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(buffer, buf, pos);\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\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + _typeof(string));\n }\n\n var len = string.length;\n var mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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 } // 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\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n };\n\n Buffer.prototype.toString = function toString() {\n var 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\n Buffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n Buffer.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\n Buffer.prototype.inspect = function inspect() {\n var str = '';\n var 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 };\n\n if (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n }\n\n Buffer.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\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + _typeof(target));\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n }; // 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\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\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 } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\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\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\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\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n }\n\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n }\n\n var strLen = string.length;\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n var i;\n\n for (i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n\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('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\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\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function 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\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte = void 0,\n thirdByte = void 0,\n fourthByte = void 0,\n tempCodePoint = void 0;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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 } // 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\n\n\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n }\n\n function latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = ''; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function 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\n Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUint16LE = Buffer.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\n Buffer.prototype.readUint16BE = Buffer.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\n Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n };\n\n Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, 'offset');\n var first = this[offset];\n var last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n var lo = first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24);\n var hi = this[++offset] + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + last * Math.pow(2, 24);\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, 'offset');\n var first = this[offset];\n var last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n var hi = first * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n var lo = this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.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\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, 'offset');\n var first = this[offset];\n var last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n var val = this[offset + 4] + this[offset + 5] * Math.pow(2, 8) + this[offset + 6] * Math.pow(2, 16) + (last << 24); // Overflow\n\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24));\n });\n Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, 'offset');\n var first = this[offset];\n var last = this[offset + 7];\n\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n var val = (first << 24) + // Overflow\n this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last);\n });\n\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754$1.read(this, offset, true, 23, 4);\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754$1.read(this, offset, false, 23, 4);\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754$1.read(this, offset, true, 52, 8);\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754$1.read(this, offset, false, 52, 8);\n };\n\n function 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\n Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUint8 = Buffer.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\n Buffer.prototype.writeUint16LE = Buffer.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\n Buffer.prototype.writeUint16BE = Buffer.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\n Buffer.prototype.writeUint32LE = Buffer.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\n Buffer.prototype.writeUint32BE = Buffer.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\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n var 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 var 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\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n var 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 var 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\n Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'));\n });\n Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'));\n });\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.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\n Buffer.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\n Buffer.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\n Buffer.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\n Buffer.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\n Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'));\n });\n Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'));\n });\n\n function 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\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n\n ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n\n ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\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'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var 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(target, this.subarray(start, end), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.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\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (encoding === 'utf8' && code < 128 || 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 } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n var len = bytes.length;\n\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // CUSTOM ERRORS\n // =============\n // Simplified versions from Node, changed for Buffer-only usage\n\n\n var errors = {};\n\n function E(sym, getMessage, Base) {\n errors[sym] = /*#__PURE__*/function (_Base) {\n function NodeError() {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _callSuper(this, NodeError);\n Object.defineProperty(_this, 'message', {\n value: getMessage.apply(_this, arguments),\n writable: true,\n configurable: true\n }); // Add the error code to the name to include it in the stack trace.\n\n _this.name = \"\".concat(_this.name, \" [\").concat(sym, \"]\"); // Access the stack to generate the error message including the error code\n // from the name.\n\n _this.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n\n delete _this.name;\n return _this;\n }\n\n _inherits(NodeError, _Base);\n\n return _createClass(NodeError, [{\n key: \"code\",\n get: function get() {\n return sym;\n },\n set: function set(value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value: value,\n writable: true\n });\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(sym, \"]: \").concat(this.message);\n }\n }]);\n }(Base);\n }\n\n E('ERR_BUFFER_OUT_OF_BOUNDS', function (name) {\n if (name) {\n return \"\".concat(name, \" is outside of buffer bounds\");\n }\n\n return 'Attempt to access memory outside buffer bounds';\n }, RangeError);\n E('ERR_INVALID_ARG_TYPE', function (name, actual) {\n return \"The \\\"\".concat(name, \"\\\" argument must be of type number. Received type \").concat(_typeof(actual));\n }, TypeError);\n E('ERR_OUT_OF_RANGE', function (str, range, input) {\n var msg = \"The value of \\\"\".concat(str, \"\\\" is out of range.\");\n var received = input;\n\n if (Number.isInteger(input) && Math.abs(input) > Math.pow(2, 32)) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === 'bigint') {\n received = String(input);\n\n if (input > Math.pow(BigInt(2), BigInt(32)) || input < -Math.pow(BigInt(2), BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n\n received += 'n';\n }\n\n msg += \" It must be \".concat(range, \". Received \").concat(received);\n return msg;\n }, RangeError);\n\n function addNumericalSeparator(val) {\n var res = '';\n var i = val.length;\n var start = val[0] === '-' ? 1 : 0;\n\n for (; i >= start + 4; i -= 3) {\n res = \"_\".concat(val.slice(i - 3, i)).concat(res);\n }\n\n return \"\".concat(val.slice(0, i)).concat(res);\n } // CHECK FUNCTIONS\n // ===============\n\n\n function checkBounds(buf, offset, byteLength) {\n validateNumber(offset, 'offset');\n\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1));\n }\n }\n\n function checkIntBI(value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n var n = typeof min === 'bigint' ? 'n' : '';\n var range;\n\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = \">= 0\".concat(n, \" and < 2\").concat(n, \" ** \").concat((byteLength + 1) * 8).concat(n);\n } else {\n range = \">= -(2\".concat(n, \" ** \").concat((byteLength + 1) * 8 - 1).concat(n, \") and < 2 ** \") + \"\".concat((byteLength + 1) * 8 - 1).concat(n);\n }\n } else {\n range = \">= \".concat(min).concat(n, \" and <= \").concat(max).concat(n);\n }\n\n throw new errors.ERR_OUT_OF_RANGE('value', range, value);\n }\n\n checkBounds(buf, offset, byteLength);\n }\n\n function validateNumber(value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value);\n }\n }\n\n function 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', \">= \".concat(type ? 1 : 0, \" and <= \").concat(length), value);\n } // HELPER FUNCTIONS\n // ================\n\n\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n function base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n str = str.trim().replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n }\n\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n }\n\n function asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function blitBuffer(src, dst, offset, length) {\n var i;\n\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\n return i;\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\n\n\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n\n function numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n } // Create lookup table for `toString('hex')`\n // See: https://github.com/feross/buffer/issues/219\n\n\n var hexSliceLookupTable = function () {\n var alphabet = '0123456789abcdef';\n var table = new Array(256);\n\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16;\n\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n\n return table;\n }(); // Return not function with Error if BigInt not supported\n\n\n function defineBigIntMethod(fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn;\n }\n\n function BufferBigIntNotDefined() {\n throw new Error('BigInt not supported');\n }\n})(buffer);\n\nfunction isHex(value) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$strict = _ref.strict,\n strict = _ref$strict === void 0 ? true : _ref$strict;\n\n if (!value) return false;\n if (typeof value !== 'string') return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\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 */\n\n\nfunction size(value) {\n if (isHex(value, {\n strict: false\n })) return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n\nvar version = '2.21.7';\nvar errorConfig = {\n getDocsUrl: function getDocsUrl(_ref) {\n var docsBaseUrl = _ref.docsBaseUrl,\n _ref$docsPath = _ref.docsPath,\n docsPath = _ref$docsPath === void 0 ? '' : _ref$docsPath,\n docsSlug = _ref.docsSlug;\n return docsPath ? \"\".concat(docsBaseUrl !== null && docsBaseUrl !== void 0 ? docsBaseUrl : 'https://viem.sh').concat(docsPath).concat(docsSlug ? \"#\".concat(docsSlug) : '') : undefined;\n },\n version: version\n};\n\nvar BaseError = /*#__PURE__*/function (_Error) {\n function BaseError(shortMessage) {\n var _errorConfig$getDocsU, _errorConfig, _args$name;\n\n var _this;\n\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BaseError);\n\n var details = function (_args$cause) {\n if (args.cause instanceof BaseError) return args.cause.details;\n if ((_args$cause = args.cause) !== null && _args$cause !== void 0 && _args$cause.message) return args.cause.message;\n return args.details;\n }();\n\n var docsPath = function () {\n if (args.cause instanceof BaseError) return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n }();\n\n var docsUrl = (_errorConfig$getDocsU = (_errorConfig = errorConfig).getDocsUrl) === null || _errorConfig$getDocsU === void 0 ? void 0 : _errorConfig$getDocsU.call(_errorConfig, _objectSpread2(_objectSpread2({}, args), {}, {\n docsPath: docsPath\n }));\n var message = [shortMessage || 'An error occurred.', ''].concat(_toConsumableArray(args.metaMessages ? [].concat(_toConsumableArray(args.metaMessages), ['']) : []), _toConsumableArray(docsUrl ? [\"Docs: \".concat(docsUrl)] : []), _toConsumableArray(details ? [\"Details: \".concat(details)] : []), _toConsumableArray(errorConfig.version ? [\"Version: \".concat(errorConfig.version)] : [])).join('\\n');\n _this = _callSuper(this, BaseError, [message, args.cause ? {\n cause: args.cause\n } : undefined]);\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, \"version\", {\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: 'BaseError'\n });\n _this.details = details;\n _this.docsPath = docsPath;\n _this.metaMessages = args.metaMessages;\n _this.name = (_args$name = args.name) !== null && _args$name !== void 0 ? _args$name : _this.name;\n _this.shortMessage = shortMessage;\n _this.version = version;\n return _this;\n }\n\n _inherits(BaseError, _Error);\n\n return _createClass(BaseError, [{\n key: \"walk\",\n value: function walk(fn) {\n return _walk(this, fn);\n }\n }]);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction _walk(err, fn) {\n if (fn !== null && fn !== void 0 && fn(err)) return err;\n if (err && _typeof(err) === 'object' && 'cause' in err) return _walk(err.cause, fn);\n return fn ? null : err;\n}\n\nvar AbiEncodingLengthMismatchError = /*#__PURE__*/function (_BaseError8) {\n function AbiEncodingLengthMismatchError(_ref7) {\n var expectedLength = _ref7.expectedLength,\n givenLength = _ref7.givenLength;\n\n _classCallCheck(this, AbiEncodingLengthMismatchError);\n\n return _callSuper(this, AbiEncodingLengthMismatchError, [['ABI encoding params/values length mismatch.', \"Expected length (params): \".concat(expectedLength), \"Given length (values): \".concat(givenLength)].join('\\n'), {\n name: 'AbiEncodingLengthMismatchError'\n }]);\n }\n\n _inherits(AbiEncodingLengthMismatchError, _BaseError8);\n\n return _createClass(AbiEncodingLengthMismatchError);\n}(BaseError);\n\nvar BytesSizeMismatchError = /*#__PURE__*/function (_BaseError19) {\n function BytesSizeMismatchError(_ref17) {\n var expectedSize = _ref17.expectedSize,\n givenSize = _ref17.givenSize;\n\n _classCallCheck(this, BytesSizeMismatchError);\n\n return _callSuper(this, BytesSizeMismatchError, [\"Expected bytes\".concat(expectedSize, \", got bytes\").concat(givenSize, \".\"), {\n name: 'BytesSizeMismatchError'\n }]);\n }\n\n _inherits(BytesSizeMismatchError, _BaseError19);\n\n return _createClass(BytesSizeMismatchError);\n}(BaseError);\n\nvar UnsupportedPackedAbiType = /*#__PURE__*/function (_BaseError26) {\n function UnsupportedPackedAbiType(type) {\n _classCallCheck(this, UnsupportedPackedAbiType);\n\n return _callSuper(this, UnsupportedPackedAbiType, [\"Type \\\"\".concat(type, \"\\\" is not supported for packed encoding.\"), {\n name: 'UnsupportedPackedAbiType'\n }]);\n }\n\n _inherits(UnsupportedPackedAbiType, _BaseError26);\n\n return _createClass(UnsupportedPackedAbiType);\n}(BaseError);\n\nvar SizeExceedsPaddingSizeError = /*#__PURE__*/function (_BaseError2) {\n function SizeExceedsPaddingSizeError(_ref2) {\n var size = _ref2.size,\n targetSize = _ref2.targetSize,\n type = _ref2.type;\n\n _classCallCheck(this, SizeExceedsPaddingSizeError);\n\n return _callSuper(this, SizeExceedsPaddingSizeError, [\"\".concat(type.charAt(0).toUpperCase()).concat(type.slice(1).toLowerCase(), \" size (\").concat(size, \") exceeds padding size (\").concat(targetSize, \").\"), {\n name: 'SizeExceedsPaddingSizeError'\n }]);\n }\n\n _inherits(SizeExceedsPaddingSizeError, _BaseError2);\n\n return _createClass(SizeExceedsPaddingSizeError);\n}(BaseError);\n\nfunction pad(hexOrBytes) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n dir = _ref.dir,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 32 : _ref$size;\n\n if (typeof hexOrBytes === 'string') return padHex(hexOrBytes, {\n dir: dir,\n size: size\n });\n return padBytes(hexOrBytes, {\n dir: dir,\n size: size\n });\n}\n\nfunction padHex(hex_) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n dir = _ref2.dir,\n _ref2$size = _ref2.size,\n size = _ref2$size === void 0 ? 32 : _ref2$size;\n\n if (size === null) return hex_;\n var hex = hex_.replace('0x', '');\n if (hex.length > size * 2) throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex'\n });\n return \"0x\".concat(hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0'));\n}\n\nfunction padBytes(bytes) {\n var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n dir = _ref3.dir,\n _ref3$size = _ref3.size,\n size = _ref3$size === void 0 ? 32 : _ref3$size;\n\n if (size === null) return bytes;\n if (bytes.length > size) throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes'\n });\n var paddedBytes = new Uint8Array(size);\n\n for (var i = 0; i < size; i++) {\n var padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] = bytes[padEnd ? i : bytes.length - i - 1];\n }\n\n return paddedBytes;\n}\n\nvar IntegerOutOfRangeError = /*#__PURE__*/function (_BaseError) {\n function IntegerOutOfRangeError(_ref) {\n var max = _ref.max,\n min = _ref.min,\n signed = _ref.signed,\n size = _ref.size,\n value = _ref.value;\n\n _classCallCheck(this, IntegerOutOfRangeError);\n\n return _callSuper(this, IntegerOutOfRangeError, [\"Number \\\"\".concat(value, \"\\\" is not in safe \").concat(size ? \"\".concat(size * 8, \"-bit \").concat(signed ? 'signed' : 'unsigned', \" \") : '', \"integer range \").concat(max ? \"(\".concat(min, \" to \").concat(max, \")\") : \"(above \".concat(min, \")\")), {\n name: 'IntegerOutOfRangeError'\n }]);\n }\n\n _inherits(IntegerOutOfRangeError, _BaseError);\n\n return _createClass(IntegerOutOfRangeError);\n}(BaseError);\n\nvar SizeOverflowError = /*#__PURE__*/function (_BaseError5) {\n function SizeOverflowError(_ref2) {\n var givenSize = _ref2.givenSize,\n maxSize = _ref2.maxSize;\n\n _classCallCheck(this, SizeOverflowError);\n\n return _callSuper(this, SizeOverflowError, [\"Size cannot exceed \".concat(maxSize, \" bytes. Given size: \").concat(givenSize, \" bytes.\"), {\n name: 'SizeOverflowError'\n }]);\n }\n\n _inherits(SizeOverflowError, _BaseError5);\n\n return _createClass(SizeOverflowError);\n}(BaseError);\n\nfunction assertSize(hexOrBytes, _ref) {\n var size$1 = _ref.size;\n if (size(hexOrBytes) > size$1) throw new SizeOverflowError({\n givenSize: size(hexOrBytes),\n maxSize: size$1\n });\n}\n\nvar hexes = /*#__PURE__*/Array.from({\n length: 256\n}, function (_v, i) {\n return i.toString(16).padStart(2, '0');\n});\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#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 */\n\nfunction toHex(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (typeof value === 'number' || typeof value === 'bigint') return numberToHex(value, opts);\n\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n\n if (typeof value === 'boolean') 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#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 */\n\n\nfunction boolToHex(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var hex = \"0x\".concat(Number(value));\n\n if (typeof opts.size === 'number') {\n assertSize(hex, {\n size: opts.size\n });\n return pad(hex, {\n size: opts.size\n });\n }\n\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#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 */\n\n\nfunction bytesToHex(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var string = '';\n\n for (var i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n\n var hex = \"0x\".concat(string);\n\n if (typeof opts.size === 'number') {\n assertSize(hex, {\n size: opts.size\n });\n return pad(hex, {\n dir: 'right',\n size: opts.size\n });\n }\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#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 */\n\n\nfunction numberToHex(value_) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var signed = opts.signed,\n size = opts.size;\n var value = BigInt(value_);\n var maxValue;\n\n if (size) {\n if (signed) maxValue = (1n << BigInt(size) * 8n - 1n) - 1n;else maxValue = Math.pow(2n, BigInt(size) * 8n) - 1n;\n } else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n\n var minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n\n if (maxValue && value > maxValue || value < minValue) {\n var suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? \"\".concat(maxValue).concat(suffix) : undefined,\n min: \"\".concat(minValue).concat(suffix),\n signed: signed,\n size: size,\n value: \"\".concat(value_).concat(suffix)\n });\n }\n\n var hex = \"0x\".concat((signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16));\n if (size) return pad(hex, {\n size: size\n });\n return hex;\n}\n\nvar encoder$2 = /*#__PURE__*/new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#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 */\n\nfunction stringToHex(value_) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var value = encoder$2.encode(value_);\n return bytesToHex(value, opts);\n}\n\nvar encoder$1 = /*#__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\n * - Example: https://viem.sh/docs/utilities/toBytes#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 */\n\nfunction toBytes$1(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (typeof value === 'number' || typeof value === 'bigint') return numberToBytes(value, opts);\n if (typeof value === 'boolean') return boolToBytes(value, opts);\n if (isHex(value)) 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#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 */\n\n\nfunction boolToBytes(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n\n if (typeof opts.size === 'number') {\n assertSize(bytes, {\n size: opts.size\n });\n return pad(bytes, {\n size: opts.size\n });\n }\n\n return bytes;\n} // We use very optimized technique to convert hex string to byte array\n\n\nvar charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102\n};\n\nfunction charCodeToBase16(_char) {\n if (_char >= charCodeMap.zero && _char <= charCodeMap.nine) return _char - charCodeMap.zero;\n if (_char >= charCodeMap.A && _char <= charCodeMap.F) return _char - (charCodeMap.A - 10);\n if (_char >= charCodeMap.a && _char <= charCodeMap.f) 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#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 */\n\n\nfunction hexToBytes(hex_) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var hex = hex_;\n\n if (opts.size) {\n assertSize(hex, {\n size: opts.size\n });\n hex = pad(hex, {\n dir: 'right',\n size: opts.size\n });\n }\n\n var hexString = hex.slice(2);\n if (hexString.length % 2) hexString = \"0\".concat(hexString);\n var length = hexString.length / 2;\n var bytes = new Uint8Array(length);\n\n for (var index = 0, j = 0; index < length; index++) {\n var nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n var nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(\"Invalid byte sequence (\\\"\".concat(hexString[j - 2]).concat(hexString[j - 1], \"\\\" in \\\"\").concat(hexString, \"\\\").\"));\n }\n\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n\n return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#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 */\n\n\nfunction numberToBytes(value, opts) {\n var 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#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 */\n\n\nfunction stringToBytes(value) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var bytes = encoder$1.encode(value);\n\n if (typeof opts.size === 'number') {\n assertSize(bytes, {\n size: opts.size\n });\n return pad(bytes, {\n dir: 'right',\n size: opts.size\n });\n }\n\n return bytes;\n}\n\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(\"positive integer expected, not \".concat(n));\n} // copied from utils\n\n\nfunction isBytes$1(a) {\n return a instanceof Uint8Array || a != null && _typeof(a) === 'object' && a.constructor.name === 'Uint8Array';\n}\n\nfunction bytes(b) {\n if (!isBytes$1(b)) throw new Error('Uint8Array expected');\n\n for (var _len = arguments.length, lengths = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n lengths[_key - 1] = arguments[_key];\n }\n\n if (lengths.length > 0 && !lengths.includes(b.length)) throw new Error(\"Uint8Array expected of length \".concat(lengths, \", not of length=\").concat(b.length));\n}\n\nfunction exists(instance) {\n var checkFinished = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\n\nfunction output(out, instance) {\n bytes(out);\n var min = instance.outputLen;\n\n if (out.length < min) {\n throw new Error(\"digestInto() expects output buffer of length at least \".concat(min));\n }\n}\n\nvar U32_MASK64 = /* @__PURE__ */BigInt(Math.pow(2, 32) - 1);\n\nvar _32n = /* @__PURE__ */BigInt(32); // We are not using BigUint64Array, because they are extremely slow as per 2022\n\n\nfunction fromBig(n) {\n var le = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (le) return {\n h: Number(n & U32_MASK64),\n l: Number(n >> _32n & U32_MASK64)\n };\n return {\n h: Number(n >> _32n & U32_MASK64) | 0,\n l: Number(n & U32_MASK64) | 0\n };\n}\n\nfunction split(lst) {\n var le = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var Ah = new Uint32Array(lst.length);\n var Al = new Uint32Array(lst.length);\n\n for (var i = 0; i < lst.length; i++) {\n var _fromBig = fromBig(lst[i], le),\n h = _fromBig.h,\n l = _fromBig.l;\n\n var _ref = [h, l];\n Ah[i] = _ref[0];\n Al[i] = _ref[1];\n }\n\n return [Ah, Al];\n} // Left rotate for Shift in [1, 32)\n\n\nvar rotlSH = function rotlSH(h, l, s) {\n return h << s | l >>> 32 - s;\n};\n\nvar rotlSL = function rotlSL(h, l, s) {\n return l << s | h >>> 32 - s;\n}; // Left rotate for Shift in (32, 64), NOTE: 32 is special case.\n\n\nvar rotlBH = function rotlBH(h, l, s) {\n return l << s - 32 | h >>> 64 - s;\n};\n\nvar rotlBL = function rotlBL(h, l, s) {\n return h << s - 32 | l >>> 64 - s;\n};\n\nvar u32 = function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n};\n\nvar isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44; // The byte swap operation for uint32\n\nvar byteSwap = function byteSwap(word) {\n return word << 24 & 0xff000000 | word << 8 & 0xff0000 | word >>> 8 & 0xff00 | word >>> 24 & 0xff;\n}; // In place byte swap for Uint32Array\n\n\nfunction byteSwap32(arr) {\n for (var i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') throw new Error(\"utf8ToBytes expected string, got \".concat(_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 */\n\n\nfunction toBytes(data) {\n if (typeof data === 'string') data = utf8ToBytes(data);\n bytes(data);\n return data;\n} // For runtime check if class implements interface\n\n\nvar Hash = /*#__PURE__*/function () {\n function Hash() {\n _classCallCheck(this, Hash);\n }\n\n return _createClass(Hash, [{\n key: \"clone\",\n value: // Safe version that clones internal state\n function clone() {\n return this._cloneInto();\n }\n }]);\n}();\n\nfunction wrapConstructor(hashCons) {\n var hashC = function hashC(msg) {\n return hashCons().update(toBytes(msg)).digest();\n };\n\n var tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n\n hashC.create = function () {\n return hashCons();\n };\n\n return hashC;\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\n\n\nvar SHA3_PI = [];\nvar SHA3_ROTL = [];\nvar _SHA3_IOTA = [];\n\nvar _0n = /* @__PURE__ */BigInt(0);\n\nvar _1n = /* @__PURE__ */BigInt(1);\n\nvar _2n = /* @__PURE__ */BigInt(2);\n\nvar _7n = /* @__PURE__ */BigInt(7);\n\nvar _256n = /* @__PURE__ */BigInt(256);\n\nvar _0x71n = /* @__PURE__ */BigInt(0x71);\n\nfor (var round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n var _ref = [y, (2 * x + 3 * y) % 5];\n x = _ref[0];\n y = _ref[1];\n SHA3_PI.push(2 * (5 * y + x)); // Rotational\n\n SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); // Iota\n\n var t = _0n;\n\n for (var j = 0; j < 7; j++) {\n R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n;\n if (R & _2n) t ^= _1n << (_1n << /* @__PURE__ */BigInt(j)) - _1n;\n }\n\n _SHA3_IOTA.push(t);\n}\n\nvar _split = /* @__PURE__ */split(_SHA3_IOTA, true),\n _split2 = _slicedToArray(_split, 2),\n SHA3_IOTA_H = _split2[0],\n SHA3_IOTA_L = _split2[1]; // Left rotation (without 0, 32, 64)\n\n\nvar rotlH = function rotlH(h, l, s) {\n return s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);\n};\n\nvar rotlL = function rotlL(h, l, s) {\n return s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);\n}; // Same as keccakf1600, but allows to skip some rounds\n\n\nfunction keccakP(s) {\n var rounds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 24;\n var B = new Uint32Array(5 * 2); // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n\n for (var _round = 24 - rounds; _round < 24; _round++) {\n // Theta θ\n for (var _x = 0; _x < 10; _x++) {\n B[_x] = s[_x] ^ s[_x + 10] ^ s[_x + 20] ^ s[_x + 30] ^ s[_x + 40];\n }\n\n for (var _x2 = 0; _x2 < 10; _x2 += 2) {\n var idx1 = (_x2 + 8) % 10;\n var idx0 = (_x2 + 2) % 10;\n var B0 = B[idx0];\n var B1 = B[idx0 + 1];\n var Th = rotlH(B0, B1, 1) ^ B[idx1];\n var Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n\n for (var _y = 0; _y < 50; _y += 10) {\n s[_x2 + _y] ^= Th;\n s[_x2 + _y + 1] ^= Tl;\n }\n } // Rho (ρ) and Pi (π)\n\n\n var curH = s[2];\n var curL = s[3];\n\n for (var _t = 0; _t < 24; _t++) {\n var shift = SHA3_ROTL[_t];\n\n var _Th = rotlH(curH, curL, shift);\n\n var _Tl = rotlL(curH, curL, shift);\n\n var PI = SHA3_PI[_t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = _Th;\n s[PI + 1] = _Tl;\n } // Chi (χ)\n\n\n for (var _y2 = 0; _y2 < 50; _y2 += 10) {\n for (var _x3 = 0; _x3 < 10; _x3++) {\n B[_x3] = s[_y2 + _x3];\n }\n\n for (var _x4 = 0; _x4 < 10; _x4++) {\n s[_y2 + _x4] ^= ~B[(_x4 + 2) % 10] & B[(_x4 + 4) % 10];\n }\n } // Iota (ι)\n\n\n s[0] ^= SHA3_IOTA_H[_round];\n s[1] ^= SHA3_IOTA_L[_round];\n }\n\n B.fill(0);\n}\n\nvar Keccak = /*#__PURE__*/function (_Hash) {\n // NOTE: we accept arguments in bytes instead of bits here.\n function Keccak(blockLen, suffix, outputLen) {\n var _this;\n\n var enableXOF = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var rounds = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 24;\n\n _classCallCheck(this, Keccak);\n\n _this = _callSuper(this, Keccak);\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; // Can be passed from user as dkLen\n\n number(outputLen); // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n\n if (0 >= _this.blockLen || _this.blockLen >= 200) throw new Error('Sha3 supports only keccak-f1600 function');\n _this.state = new Uint8Array(200);\n _this.state32 = u32(_this.state);\n return _this;\n }\n\n _inherits(Keccak, _Hash);\n\n return _createClass(Keccak, [{\n key: \"keccak\",\n value: function keccak() {\n if (!isLE) byteSwap32(this.state32);\n keccakP(this.state32, this.rounds);\n if (!isLE) byteSwap32(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n }, {\n key: \"update\",\n value: function update(data) {\n exists(this);\n var blockLen = this.blockLen,\n state = this.state;\n data = toBytes(data);\n var len = data.length;\n\n for (var pos = 0; pos < len;) {\n var take = Math.min(blockLen - this.pos, len - pos);\n\n for (var i = 0; i < take; i++) {\n state[this.pos++] ^= data[pos++];\n }\n\n if (this.pos === blockLen) this.keccak();\n }\n\n return this;\n }\n }, {\n key: \"finish\",\n value: function finish() {\n if (this.finished) return;\n this.finished = true;\n var state = this.state,\n suffix = this.suffix,\n pos = this.pos,\n blockLen = this.blockLen; // Do the padding\n\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1) this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n }, {\n key: \"writeInto\",\n value: function writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n var bufferOut = this.state;\n var blockLen = this.blockLen;\n\n for (var pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen) this.keccak();\n var 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\n return out;\n }\n }, {\n key: \"xofInto\",\n value: function xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n }, {\n key: \"xof\",\n value: function xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n }, {\n key: \"digestInto\",\n value: function digestInto(out) {\n output(out, this);\n if (this.finished) throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n }, {\n key: \"digest\",\n value: function digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n }, {\n key: \"_cloneInto\",\n value: function _cloneInto(to) {\n var blockLen = this.blockLen,\n suffix = this.suffix,\n outputLen = this.outputLen,\n rounds = this.rounds,\n enableXOF = this.enableXOF;\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; // Suffix can change in cSHAKE\n\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n }]);\n}(Hash);\n\nvar gen = function gen(suffix, blockLen, outputLen) {\n return wrapConstructor(function () {\n return new Keccak(blockLen, suffix, outputLen);\n });\n};\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\n\n\nvar keccak_256 = /* @__PURE__ */gen(0x01, 136, 256 / 8);\n\nfunction keccak256(value, to_) {\n var to = to_ || 'hex';\n var bytes = keccak_256(isHex(value, {\n strict: false\n }) ? toBytes$1(value) : value);\n if (to === 'bytes') return bytes;\n return toHex(bytes);\n}\n\nvar InvalidAddressError = /*#__PURE__*/function (_BaseError) {\n function InvalidAddressError(_ref) {\n var address = _ref.address;\n\n _classCallCheck(this, InvalidAddressError);\n\n return _callSuper(this, InvalidAddressError, [\"Address \\\"\".concat(address, \"\\\" is invalid.\"), {\n metaMessages: ['- Address must be a hex value of 20 bytes (40 hex characters).', '- Address must match its checksum counterpart.'],\n name: 'InvalidAddressError'\n }]);\n }\n\n _inherits(InvalidAddressError, _BaseError);\n\n return _createClass(InvalidAddressError);\n}(BaseError);\n/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\n\n\nvar LruMap = /*#__PURE__*/function (_Map) {\n function LruMap(size) {\n var _this;\n\n _classCallCheck(this, LruMap);\n\n _this = _callSuper(this, LruMap);\n Object.defineProperty(_this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n _this.maxSize = size;\n return _this;\n }\n\n _inherits(LruMap, _Map);\n\n return _createClass(LruMap, [{\n key: \"get\",\n value: function get(key) {\n var value = _superPropGet(LruMap, \"get\", this, 3)([key]);\n\n if (_superPropGet(LruMap, \"has\", this, 3)([key]) && value !== undefined) {\n this[\"delete\"](key);\n\n _superPropGet(LruMap, \"set\", this, 3)([key, value]);\n }\n\n return value;\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n _superPropGet(LruMap, \"set\", this, 3)([key, value]);\n\n if (this.maxSize && this.size > this.maxSize) {\n var firstKey = this.keys().next().value;\n if (firstKey) this[\"delete\"](firstKey);\n }\n\n return this;\n }\n }]);\n}( /*#__PURE__*/_wrapNativeSuper(Map));\n\nvar checksumAddressCache = /*#__PURE__*/new LruMap(8192);\n\nfunction checksumAddress(address_,\n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(\"\".concat(address_, \".\").concat(chainId))) return checksumAddressCache.get(\"\".concat(address_, \".\").concat(chainId));\n var hexAddress = chainId ? \"\".concat(chainId).concat(address_.toLowerCase()) : address_.substring(2).toLowerCase();\n var hash = keccak256(stringToBytes(hexAddress), 'bytes');\n var address = (chainId ? hexAddress.substring(\"\".concat(chainId, \"0x\").length) : hexAddress).split('');\n\n for (var i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n\n var result = \"0x\".concat(address.join(''));\n checksumAddressCache.set(\"\".concat(address_, \".\").concat(chainId), result);\n return result;\n}\n\nvar addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\n\nvar isAddressCache = /*#__PURE__*/new LruMap(8192);\n\nfunction isAddress(address, options) {\n var _ref = options !== null && options !== void 0 ? options : {},\n _ref$strict = _ref.strict,\n strict = _ref$strict === void 0 ? true : _ref$strict;\n\n var cacheKey = \"\".concat(address, \".\").concat(strict);\n if (isAddressCache.has(cacheKey)) return isAddressCache.get(cacheKey);\n\n var result = function () {\n if (!addressRegex.test(address)) return false;\n if (address.toLowerCase() === address) return true;\n if (strict) return checksumAddress(address) === address;\n return true;\n }();\n\n isAddressCache.set(cacheKey, result);\n return result;\n}\n\nfunction concatHex(values) {\n return \"0x\".concat(values.reduce(function (acc, x) {\n return acc + x.replace('0x', '');\n }, ''));\n}\n\nvar arrayRegex = /^(.*)\\[([0-9]*)\\]$/; // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\n\nvar bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/; // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\n\nvar 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\nfunction encodePacked(types, values) {\n if (types.length !== values.length) throw new AbiEncodingLengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length\n });\n var data = [];\n\n for (var i = 0; i < types.length; i++) {\n var type = types[i];\n var value = values[i];\n data.push(encode(type, value));\n }\n\n return concatHex(data);\n}\n\nfunction encode(type, value) {\n var isArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (type === 'address') {\n var address = value;\n if (!isAddress(address)) throw new InvalidAddressError({\n address: address\n });\n return pad(address.toLowerCase(), {\n size: isArray ? 32 : null\n });\n }\n\n if (type === 'string') return stringToHex(value);\n if (type === 'bytes') return value;\n if (type === 'bool') return pad(boolToHex(value), {\n size: isArray ? 32 : 1\n });\n var intMatch = type.match(integerRegex);\n\n if (intMatch) {\n var _intMatch = _slicedToArray(intMatch, 3);\n\n _intMatch[0];\n var baseType = _intMatch[1],\n _intMatch$ = _intMatch[2],\n bits = _intMatch$ === void 0 ? '256' : _intMatch$;\n var size = Number.parseInt(bits) / 8;\n return numberToHex(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int'\n });\n }\n\n var bytesMatch = type.match(bytesRegex);\n\n if (bytesMatch) {\n var _bytesMatch = _slicedToArray(bytesMatch, 2);\n\n _bytesMatch[0];\n var _size = _bytesMatch[1];\n if (Number.parseInt(_size) !== (value.length - 2) / 2) throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(_size),\n givenSize: (value.length - 2) / 2\n });\n return pad(value, {\n dir: 'right',\n size: isArray ? 32 : null\n });\n }\n\n var arrayMatch = type.match(arrayRegex);\n\n if (arrayMatch && Array.isArray(value)) {\n var _arrayMatch = _slicedToArray(arrayMatch, 2);\n\n _arrayMatch[0];\n var childType = _arrayMatch[1];\n var data = [];\n\n for (var i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n\n if (data.length === 0) return '0x';\n return concatHex(data);\n }\n\n throw new UnsupportedPackedAbiType(type);\n}\n\nfunction isBytes(value) {\n if (!value) return false;\n if (_typeof(value) !== 'object') return false;\n if (!('BYTES_PER_ELEMENT' in value)) return false;\n return value.BYTES_PER_ELEMENT === 1 && value.constructor.name === 'Uint8Array';\n}\n\nfunction hashToField(input) {\n if (isBytes(input) || isHex(input)) return hashEncodedBytes(input);\n return hashString(input);\n}\n\nfunction packAndEncode(input) {\n var _input$reduce = input.reduce(function (_ref, _ref2) {\n var _ref3 = _slicedToArray(_ref, 2),\n types2 = _ref3[0],\n values2 = _ref3[1];\n\n var _ref4 = _slicedToArray(_ref2, 2),\n type = _ref4[0],\n value = _ref4[1];\n\n types2.push(type);\n values2.push(value);\n return [types2, values2];\n }, [[], []]),\n _input$reduce2 = _slicedToArray(_input$reduce, 2),\n types = _input$reduce2[0],\n values = _input$reduce2[1];\n\n return hashEncodedBytes(encodePacked(types, values));\n}\n\nfunction hashString(input) {\n var bytesInput = buffer.Buffer.from(input);\n return hashEncodedBytes(bytesInput);\n}\n\nfunction hashEncodedBytes(input) {\n var hash = BigInt(keccak256(input)) >> 8n;\n var rawDigest = hash.toString(16);\n return {\n hash: hash,\n digest: \"0x\".concat(rawDigest.padStart(64, \"0\"))\n };\n}\n\nvar generateSignal = function generateSignal(signal) {\n if (!signal || typeof signal === \"string\") return hashToField(signal !== null && signal !== void 0 ? signal : \"\");\n return packAndEncode(signal.types.map(function (type, index) {\n return [type, signal.values[index]];\n }));\n};\n\nvar encodeAction = function encodeAction(action) {\n if (!action) return \"\";\n if (typeof action === \"string\") return action;\n return action.types.map(function (type, index) {\n return \"\".concat(type, \"(\").concat(action.values[index], \")\");\n }).join(\",\");\n};\n\nvar createStoreImpl = function createStoreImpl(createState) {\n var state;\n var listeners = /* @__PURE__ */new Set();\n\n var setState = function setState(partial, replace) {\n var nextState = typeof partial === \"function\" ? partial(state) : partial;\n\n if (!Object.is(nextState, state)) {\n var previousState = state;\n state = (replace != null ? replace : _typeof(nextState) !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach(function (listener) {\n return listener(state, previousState);\n });\n }\n };\n\n var getState = function getState() {\n return state;\n };\n\n var getInitialState = function getInitialState() {\n return initialState;\n };\n\n var subscribe = function subscribe(listener) {\n listeners.add(listener);\n return function () {\n return listeners[\"delete\"](listener);\n };\n };\n\n var destroy = function destroy() {\n if ((_objectSpread2(_objectSpread2({}, Object.fromEntries(Object.entries({}).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n k = _ref2[0];\n\n return /^VITE_/.test(k);\n }))), {}, {\n NODE_ENV: \"product\",\n MODE: \"product\",\n BASE_URL: '/',\n DEV: \"product\" !== 'production',\n PROD: \"product\" === 'production'\n }) ? \"product\" : void 0) !== \"production\") {\n console.warn(\"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\");\n }\n\n listeners.clear();\n };\n\n var api = {\n setState: setState,\n getState: getState,\n getInitialState: getInitialState,\n subscribe: subscribe,\n destroy: destroy\n };\n var initialState = state = createState(setState, getState, api);\n return api;\n};\n\nvar createStore = function createStore(createState) {\n return createState ? createStoreImpl(createState) : createStoreImpl;\n};\n\nvar ReactExports = {};\nvar emptyModule = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': ReactExports\n});\nvar withSelector = {\n exports: {}\n};\nvar require$$0 = /*@__PURE__*/getAugmentedNamespace(emptyModule);\nvar shim = {\n exports: {}\n};\nvar useSyncExternalStoreShim_development = {};\nvar hasRequiredUseSyncExternalStoreShim_development;\n\nfunction requireUseSyncExternalStoreShim_development() {\n if (hasRequiredUseSyncExternalStoreShim_development) return useSyncExternalStoreShim_development;\n hasRequiredUseSyncExternalStoreShim_development = 1;\n {\n (function () {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n }\n\n var React = require$$0;\n var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n function error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n }\n\n function printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n }\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\n\n function is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n }\n\n var objectIs = typeof Object.is === 'function' ? Object.is : is; // dispatch for CommonJS interop named imports.\n\n var useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\n var didWarnOld18Alpha = false;\n var didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n // because of a very particular set of implementation details and assumptions\n // -- change any one of them and it will break. The most important assumption\n // is that updates are always synchronous, because concurrent rendering is\n // only available in versions of React that also have a built-in\n // useSyncExternalStore API. And we only use this shim when the built-in API\n // does not exist.\n //\n // Do not assume that the clever hacks used by this hook also work in general.\n // The point of this shim is to replace the need for hacks by other libraries.\n\n function useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot) {\n {\n if (!didWarnOld18Alpha) {\n if (React.startTransition !== undefined) {\n didWarnOld18Alpha = true;\n error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n var value = getSnapshot();\n {\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n\n if (!objectIs(value, cachedValue)) {\n error('The result of getSnapshot should be cached to avoid an infinite loop');\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n var _useState = useState({\n inst: {\n value: value,\n getSnapshot: getSnapshot\n }\n }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n\n useLayoutEffect(function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }, [subscribe, value, getSnapshot]);\n useEffect(function () {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n\n var handleStoreChange = function handleStoreChange() {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange);\n }, [subscribe]);\n useDebugValue(value);\n return value;\n }\n\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n var prevValue = inst.value;\n\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n }\n\n function useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n }\n\n var canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n var isServerEnvironment = !canUseDOM;\n var shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;\n var useSyncExternalStore$2 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;\n useSyncExternalStoreShim_development.useSyncExternalStore = useSyncExternalStore$2;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n }\n })();\n }\n return useSyncExternalStoreShim_development;\n}\n\nvar hasRequiredShim;\n\nfunction requireShim() {\n if (hasRequiredShim) return shim.exports;\n hasRequiredShim = 1;\n\n (function (module) {\n {\n module.exports = requireUseSyncExternalStoreShim_development();\n }\n })(shim);\n\n return shim.exports;\n}\n\nvar withSelector_development = {};\nvar hasRequiredWithSelector_development;\n\nfunction requireWithSelector_development() {\n if (hasRequiredWithSelector_development) return withSelector_development;\n hasRequiredWithSelector_development = 1;\n {\n (function () {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n }\n\n var React = require$$0;\n var shim = requireShim();\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\n function is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n }\n\n var objectIs = typeof Object.is === 'function' ? Object.is : is;\n var useSyncExternalStore = shim.useSyncExternalStore; // for CommonJS interop.\n\n var useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue; // Same as useSyncExternalStore, but supports selector and isEqual arguments.\n\n function useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {\n // Use this to track the rendered snapshot.\n var instRef = useRef(null);\n var inst;\n\n if (instRef.current === null) {\n inst = {\n hasValue: false,\n value: null\n };\n instRef.current = inst;\n } else {\n inst = instRef.current;\n }\n\n var _useMemo = useMemo(function () {\n // Track the memoized state using closure variables that are local to this\n // memoized instance of a getSnapshot function. Intentionally not using a\n // useRef hook, because that state would be shared across all concurrent\n // copies of the hook/component.\n var hasMemo = false;\n var memoizedSnapshot;\n var memoizedSelection;\n\n var memoizedSelector = function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n // The first time the hook is called, there is no memoized result.\n hasMemo = true;\n memoizedSnapshot = nextSnapshot;\n\n var _nextSelection = selector(nextSnapshot);\n\n if (isEqual !== undefined) {\n // Even if the selector has changed, the currently rendered selection\n // may be equal to the new selection. We should attempt to reuse the\n // current value if possible, to preserve downstream memoizations.\n if (inst.hasValue) {\n var currentSelection = inst.value;\n\n if (isEqual(currentSelection, _nextSelection)) {\n memoizedSelection = currentSelection;\n return currentSelection;\n }\n }\n }\n\n memoizedSelection = _nextSelection;\n return _nextSelection;\n } // We may be able to reuse the previous invocation's result.\n // We may be able to reuse the previous invocation's result.\n\n\n var prevSnapshot = memoizedSnapshot;\n var prevSelection = memoizedSelection;\n\n if (objectIs(prevSnapshot, nextSnapshot)) {\n // The snapshot is the same as last time. Reuse the previous selection.\n return prevSelection;\n } // The snapshot has changed, so we need to compute a new selection.\n // The snapshot has changed, so we need to compute a new selection.\n\n\n var nextSelection = selector(nextSnapshot); // If a custom isEqual function is provided, use that to check if the data\n // has changed. If it hasn't, return the previous selection. That signals\n // to React that the selections are conceptually equal, and we can bail\n // out of rendering.\n // If a custom isEqual function is provided, use that to check if the data\n // has changed. If it hasn't, return the previous selection. That signals\n // to React that the selections are conceptually equal, and we can bail\n // out of rendering.\n\n if (isEqual !== undefined && isEqual(prevSelection, nextSelection)) {\n return prevSelection;\n }\n\n memoizedSnapshot = nextSnapshot;\n memoizedSelection = nextSelection;\n return nextSelection;\n }; // Assigning this to a constant so that Flow knows it can't change.\n // Assigning this to a constant so that Flow knows it can't change.\n\n\n var maybeGetServerSnapshot = getServerSnapshot === undefined ? null : getServerSnapshot;\n\n var getSnapshotWithSelector = function getSnapshotWithSelector() {\n return memoizedSelector(getSnapshot());\n };\n\n var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? undefined : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n };\n return [getSnapshotWithSelector, getServerSnapshotWithSelector];\n }, [getSnapshot, getServerSnapshot, selector, isEqual]),\n getSelection = _useMemo[0],\n getServerSelection = _useMemo[1];\n\n var value = useSyncExternalStore(subscribe, getSelection, getServerSelection);\n useEffect(function () {\n inst.hasValue = true;\n inst.value = value;\n }, [value]);\n useDebugValue(value);\n return value;\n }\n\n withSelector_development.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n }\n })();\n }\n return withSelector_development;\n}\n\n(function (module) {\n {\n module.exports = requireWithSelector_development();\n }\n})(withSelector);\n\nvar useSyncExternalStoreExports = /*@__PURE__*/getDefaultExportFromCjs(withSelector.exports);\nvar useDebugValue = ReactExports.useDebugValue;\nvar useSyncExternalStoreWithSelector = useSyncExternalStoreExports.useSyncExternalStoreWithSelector;\nvar didWarnAboutEqualityFn = false;\n\nvar identity = function identity(arg) {\n return arg;\n};\n\nfunction useStore(api) {\n var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n var equalityFn = arguments.length > 2 ? arguments[2] : undefined;\n\n if ((_objectSpread2(_objectSpread2({}, Object.fromEntries(Object.entries({}).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n k = _ref2[0];\n\n return /^VITE_/.test(k);\n }))), {}, {\n NODE_ENV: \"product\",\n MODE: \"product\",\n BASE_URL: '/',\n DEV: \"product\" !== 'production',\n PROD: \"product\" === 'production'\n }) ? \"product\" : void 0) !== \"production\" && equalityFn && !didWarnAboutEqualityFn) {\n console.warn(\"[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937\");\n didWarnAboutEqualityFn = true;\n }\n\n var slice = useSyncExternalStoreWithSelector(api.subscribe, api.getState, api.getServerState || api.getInitialState, selector, equalityFn);\n useDebugValue(slice);\n return slice;\n}\n\nvar createImpl = function createImpl(createState) {\n if ((_objectSpread2(_objectSpread2({}, Object.fromEntries(Object.entries({}).filter(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n k = _ref4[0];\n\n return /^VITE_/.test(k);\n }))), {}, {\n NODE_ENV: \"product\",\n MODE: \"product\",\n BASE_URL: '/',\n DEV: \"product\" !== 'production',\n PROD: \"product\" === 'production'\n }) ? \"product\" : void 0) !== \"production\" && typeof createState !== \"function\") {\n console.warn(\"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.\");\n }\n\n var api = typeof createState === \"function\" ? createStore(createState) : createState;\n\n var useBoundStore = function useBoundStore(selector, equalityFn) {\n return useStore(api, selector, equalityFn);\n };\n\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\n\nvar create = function create(createState) {\n return createState ? createImpl(createState) : createImpl;\n}; // src/types/bridge.ts\n\n\nvar AppErrorCodes = /* @__PURE__ */function (AppErrorCodes2) {\n AppErrorCodes2[\"ConnectionFailed\"] = \"connection_failed\";\n AppErrorCodes2[\"VerificationRejected\"] = \"verification_rejected\";\n AppErrorCodes2[\"MaxVerificationsReached\"] = \"max_verifications_reached\";\n AppErrorCodes2[\"CredentialUnavailable\"] = \"credential_unavailable\";\n AppErrorCodes2[\"MalformedRequest\"] = \"malformed_request\";\n AppErrorCodes2[\"InvalidNetwork\"] = \"invalid_network\";\n AppErrorCodes2[\"InclusionProofFailed\"] = \"inclusion_proof_failed\";\n AppErrorCodes2[\"InclusionProofPending\"] = \"inclusion_proof_pending\";\n AppErrorCodes2[\"UnexpectedResponse\"] = \"unexpected_response\";\n AppErrorCodes2[\"FailedByHostApp\"] = \"failed_by_host_app\";\n AppErrorCodes2[\"GenericError\"] = \"generic_error\";\n return AppErrorCodes2;\n}(AppErrorCodes || {});\n\nvar VerificationLevel = /* @__PURE__ */function (VerificationLevel2) {\n VerificationLevel2[\"Orb\"] = \"orb\";\n VerificationLevel2[\"Device\"] = \"device\";\n return VerificationLevel2;\n}(VerificationLevel || {}); // src/lib/validation.ts\n\n\nfunction validate_bridge_url(bridge_url, is_staging) {\n try {\n new URL(bridge_url);\n } catch (e) {\n return {\n valid: false,\n errors: [\"Failed to parse Bridge URL.\"]\n };\n }\n\n var test_url = new URL(bridge_url);\n var errors = [];\n\n if (is_staging && [\"localhost\", \"127.0.0.1\"].includes(test_url.hostname)) {\n console.log(\"Using staging app_id with localhost bridge_url. Skipping validation.\");\n return {\n valid: true\n };\n }\n\n if (test_url.protocol !== \"https:\") {\n errors.push(\"Bridge URL must use HTTPS.\");\n }\n\n if (test_url.port) {\n errors.push(\"Bridge URL must use the default port (443).\");\n }\n\n if (test_url.pathname !== \"/\") {\n errors.push(\"Bridge URL must not have a path.\");\n }\n\n if (test_url.search) {\n errors.push(\"Bridge URL must not have query parameters.\");\n }\n\n if (test_url.hash) {\n errors.push(\"Bridge URL must not have a fragment.\");\n }\n\n if (!test_url.hostname.endsWith(\".worldcoin.org\") && !test_url.hostname.endsWith(\".toolsforhumanity.com\")) {\n console.warn(\"Bridge URL should be a subdomain of worldcoin.org or toolsforhumanity.com. The user's identity wallet may refuse to connect. This is a temporary measure and may be removed in the future.\");\n }\n\n if (errors.length) {\n return {\n valid: false,\n errors: errors\n };\n }\n\n return {\n valid: true\n };\n}\n\nvar DEFAULT_VERIFICATION_LEVEL = \"orb\"\n/* Orb */\n;\n\nvar buffer_encode = function buffer_encode(buffer$1) {\n return buffer.Buffer.from(buffer$1).toString(\"base64\");\n};\n\nvar buffer_decode = function buffer_decode(encoded) {\n return buffer.Buffer.from(encoded, \"base64\");\n};\n\nvar verification_level_to_credential_types = function verification_level_to_credential_types(verification_level) {\n switch (verification_level) {\n case \"device\"\n /* Device */\n :\n return [\"orb\"\n /* Orb */\n , \"device\"\n /* Device */\n ];\n\n case \"orb\"\n /* Orb */\n :\n return [\"orb\"\n /* Orb */\n ];\n\n default:\n throw new Error(\"Unknown verification level: \".concat(verification_level));\n }\n};\n\nvar credential_type_to_verification_level = function credential_type_to_verification_level(credential_type) {\n switch (credential_type) {\n case \"orb\"\n /* Orb */\n :\n return \"orb\"\n /* Orb */\n ;\n\n case \"device\"\n /* Device */\n :\n return \"device\"\n /* Device */\n ;\n\n default:\n throw new Error(\"Unknown credential_type: \".concat(credential_type));\n }\n}; // src/lib/crypto.ts\n\n\nvar encoder = new TextEncoder();\nvar decoder = new TextDecoder();\n\nvar generateKey = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.t0 = window.crypto.getRandomValues(new Uint8Array(12));\n _context.next = 3;\n return window.crypto.subtle.generateKey({\n name: \"AES-GCM\",\n length: 256\n }, true, [\"encrypt\", \"decrypt\"]);\n\n case 3:\n _context.t1 = _context.sent;\n return _context.abrupt(\"return\", {\n iv: _context.t0,\n key: _context.t1\n });\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function generateKey() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar exportKey = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(key) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.t0 = buffer_encode;\n _context2.next = 3;\n return window.crypto.subtle.exportKey(\"raw\", key);\n\n case 3:\n _context2.t1 = _context2.sent;\n return _context2.abrupt(\"return\", (0, _context2.t0)(_context2.t1));\n\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function exportKey(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar encryptRequest = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(key, iv, request) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.t0 = buffer_encode(iv);\n _context3.t1 = buffer_encode;\n _context3.next = 4;\n return window.crypto.subtle.encrypt({\n name: \"AES-GCM\",\n iv: iv\n }, key, encoder.encode(request));\n\n case 4:\n _context3.t2 = _context3.sent;\n _context3.t3 = (0, _context3.t1)(_context3.t2);\n return _context3.abrupt(\"return\", {\n iv: _context3.t0,\n payload: _context3.t3\n });\n\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function encryptRequest(_x2, _x3, _x4) {\n return _ref3.apply(this, arguments);\n };\n}();\n\nvar decryptResponse = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(key, iv, payload) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.t0 = decoder;\n _context4.next = 3;\n return window.crypto.subtle.decrypt({\n name: \"AES-GCM\",\n iv: iv\n }, key, buffer_decode(payload));\n\n case 3:\n _context4.t1 = _context4.sent;\n return _context4.abrupt(\"return\", _context4.t0.decode.call(_context4.t0, _context4.t1));\n\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function decryptResponse(_x5, _x6, _x7) {\n return _ref4.apply(this, arguments);\n };\n}(); // src/bridge.ts\n\n\nvar DEFAULT_BRIDGE_URL = \"https://bridge.worldcoin.org\";\ncreate(function (set, get) {\n return {\n iv: null,\n key: null,\n result: null,\n errorCode: null,\n requestId: null,\n connectorURI: null,\n bridge_url: DEFAULT_BRIDGE_URL,\n verificationState: \"loading_widget\"\n /* PreparingClient */\n ,\n createClient: function () {\n var _createClient = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref5) {\n var bridge_url, app_id, verification_level, action_description, action, signal, _yield$generateKey, key, iv, validation, res, _yield$res$json, request_id;\n\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n bridge_url = _ref5.bridge_url, app_id = _ref5.app_id, verification_level = _ref5.verification_level, action_description = _ref5.action_description, action = _ref5.action, signal = _ref5.signal;\n _context5.next = 3;\n return generateKey();\n\n case 3:\n _yield$generateKey = _context5.sent;\n key = _yield$generateKey.key;\n iv = _yield$generateKey.iv;\n\n if (!bridge_url) {\n _context5.next = 12;\n break;\n }\n\n validation = validate_bridge_url(bridge_url, app_id.includes(\"staging\"));\n\n if (validation.valid) {\n _context5.next = 12;\n break;\n }\n\n console.error(validation.errors.join(\"\\n\"));\n set({\n verificationState: \"failed\"\n /* Failed */\n\n });\n throw new Error(\"Invalid bridge_url. Please check the console for more details.\");\n\n case 12:\n _context5.t0 = fetch;\n _context5.t1 = new URL(\"/request\", bridge_url !== null && bridge_url !== void 0 ? bridge_url : DEFAULT_BRIDGE_URL);\n _context5.t2 = {\n \"Content-Type\": \"application/json\"\n };\n _context5.t3 = JSON;\n _context5.next = 18;\n return encryptRequest(key, iv, JSON.stringify({\n app_id: app_id,\n action_description: action_description,\n action: encodeAction(action),\n signal: generateSignal(signal).digest,\n credential_types: verification_level_to_credential_types(verification_level !== null && verification_level !== void 0 ? verification_level : DEFAULT_VERIFICATION_LEVEL),\n verification_level: verification_level !== null && verification_level !== void 0 ? verification_level : DEFAULT_VERIFICATION_LEVEL\n }));\n\n case 18:\n _context5.t4 = _context5.sent;\n _context5.t5 = _context5.t3.stringify.call(_context5.t3, _context5.t4);\n _context5.t6 = {\n method: \"POST\",\n headers: _context5.t2,\n body: _context5.t5\n };\n _context5.next = 23;\n return (0, _context5.t0)(_context5.t1, _context5.t6);\n\n case 23:\n res = _context5.sent;\n\n if (res.ok) {\n _context5.next = 27;\n break;\n }\n\n set({\n verificationState: \"failed\"\n /* Failed */\n\n });\n throw new Error(\"Failed to create client\");\n\n case 27:\n _context5.next = 29;\n return res.json();\n\n case 29:\n _yield$res$json = _context5.sent;\n request_id = _yield$res$json.request_id;\n _context5.t7 = set;\n _context5.t8 = iv;\n _context5.t9 = key;\n _context5.t10 = request_id;\n _context5.t11 = bridge_url !== null && bridge_url !== void 0 ? bridge_url : DEFAULT_BRIDGE_URL;\n _context5.t12 = \"https://worldcoin.org/verify?t=wld&i=\".concat(request_id, \"&k=\");\n _context5.t13 = encodeURIComponent;\n _context5.next = 40;\n return exportKey(key);\n\n case 40:\n _context5.t14 = _context5.sent;\n _context5.t15 = (0, _context5.t13)(_context5.t14);\n _context5.t16 = _context5.t12.concat.call(_context5.t12, _context5.t15).concat(bridge_url && bridge_url !== DEFAULT_BRIDGE_URL ? \"&b=\".concat(encodeURIComponent(bridge_url)) : \"\");\n _context5.t17 = {\n iv: _context5.t8,\n key: _context5.t9,\n requestId: _context5.t10,\n bridge_url: _context5.t11,\n verificationState: \"awaiting_connection\",\n connectorURI: _context5.t16\n };\n (0, _context5.t7)(_context5.t17);\n\n case 45:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n function createClient(_x8) {\n return _createClient.apply(this, arguments);\n }\n\n return createClient;\n }(),\n pollForUpdates: function () {\n var _pollForUpdates = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var key, res, _yield$res$json2, response, status, result;\n\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n key = get().key;\n\n if (key) {\n _context6.next = 3;\n break;\n }\n\n throw new Error(\"No keypair found. Please call `createClient` first.\");\n\n case 3:\n _context6.next = 5;\n return fetch(new URL(\"/response/\".concat(get().requestId), get().bridge_url));\n\n case 5:\n res = _context6.sent;\n\n if (res.ok) {\n _context6.next = 8;\n break;\n }\n\n return _context6.abrupt(\"return\", set({\n errorCode: \"connection_failed\"\n /* ConnectionFailed */\n ,\n verificationState: \"failed\"\n /* Failed */\n\n }));\n\n case 8:\n _context6.next = 10;\n return res.json();\n\n case 10:\n _yield$res$json2 = _context6.sent;\n response = _yield$res$json2.response;\n status = _yield$res$json2.status;\n\n if (!(status != \"completed\"\n /* Completed */\n )) {\n _context6.next = 15;\n break;\n }\n\n return _context6.abrupt(\"return\", set({\n verificationState: status == \"retrieved\"\n /* Retrieved */\n ? \"awaiting_app\"\n /* WaitingForApp */\n : \"awaiting_connection\"\n /* WaitingForConnection */\n\n }));\n\n case 15:\n _context6.t0 = JSON;\n _context6.next = 18;\n return decryptResponse(key, buffer_decode(response.iv), response.payload);\n\n case 18:\n _context6.t1 = _context6.sent;\n result = _context6.t0.parse.call(_context6.t0, _context6.t1);\n\n if (!(\"error_code\" in result)) {\n _context6.next = 22;\n break;\n }\n\n return _context6.abrupt(\"return\", set({\n errorCode: result.error_code,\n verificationState: \"failed\"\n /* Failed */\n\n }));\n\n case 22:\n if (\"credential_type\" in result) {\n result = _objectSpread2({\n verification_level: credential_type_to_verification_level(result.credential_type)\n }, result);\n }\n\n set({\n result: result,\n key: null,\n requestId: null,\n connectorURI: null,\n verificationState: \"confirmed\"\n /* Confirmed */\n\n });\n\n case 24:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n function pollForUpdates() {\n return _pollForUpdates.apply(this, arguments);\n }\n\n return pollForUpdates;\n }(),\n reset: function reset() {\n set({\n iv: null,\n key: null,\n result: null,\n errorCode: null,\n requestId: null,\n connectorURI: null,\n verificationState: \"loading_widget\"\n /* PreparingClient */\n\n });\n }\n };\n});\n\nvar _VerificationErrorMes; // helpers/send-webview-event.ts\n\n\nvar sendWebviewEvent = function sendWebviewEvent(payload) {\n if (window.webkit) {\n var _window$webkit, _window$webkit$postMe;\n\n (_window$webkit = window.webkit) === null || _window$webkit === void 0 || (_window$webkit = _window$webkit.messageHandlers) === null || _window$webkit === void 0 || (_window$webkit = _window$webkit.minikit) === null || _window$webkit === void 0 || (_window$webkit$postMe = _window$webkit.postMessage) === null || _window$webkit$postMe === void 0 || _window$webkit$postMe.call(_window$webkit, payload);\n } else if (window.Android) {\n var _window$Android$postM, _window$Android;\n\n (_window$Android$postM = (_window$Android = window.Android).postMessage) === null || _window$Android$postM === void 0 || _window$Android$postM.call(_window$Android, JSON.stringify(payload));\n }\n}; // types/responses.ts\n\n\nvar ResponseEvent = /* @__PURE__ */function (ResponseEvent2) {\n ResponseEvent2[\"MiniAppVerifyAction\"] = \"miniapp-verify-action\";\n ResponseEvent2[\"MiniAppPayment\"] = \"miniapp-payment\";\n ResponseEvent2[\"MiniAppWalletAuth\"] = \"miniapp-wallet-auth\";\n ResponseEvent2[\"MiniAppSendTransaction\"] = \"miniapp-send-transaction\";\n ResponseEvent2[\"MiniAppSignMessage\"] = \"miniapp-sign-message\";\n ResponseEvent2[\"MiniAppSignTypedData\"] = \"miniapp-sign-typed-data\";\n return ResponseEvent2;\n}(ResponseEvent || {});\n\n_defineProperty(_defineProperty({}, \"USDCE\"\n/* USDCE */\n, 6), \"WLD\"\n/* WLD */\n, 18);\n\n_VerificationErrorMes = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_VerificationErrorMes, AppErrorCodes.VerificationRejected, \"You\\u2019ve cancelled the request in World App.\"), AppErrorCodes.MaxVerificationsReached, \"You have already verified the maximum number of times for this action.\"), AppErrorCodes.CredentialUnavailable, \"It seems you do not have the verification level required by this app.\"), AppErrorCodes.MalformedRequest, \"There was a problem with this request. Please try again or contact the app owner.\"), AppErrorCodes.InvalidNetwork, \"Invalid network. If you are the app owner, visit docs.worldcoin.org/test for details.\"), AppErrorCodes.InclusionProofFailed, \"There was an issue fetching your credential. Please try again.\"), AppErrorCodes.InclusionProofPending, \"Your identity is still being registered. Please wait a few minutes and try again.\"), AppErrorCodes.UnexpectedResponse, \"Unexpected response from your wallet. Please try again.\"), AppErrorCodes.FailedByHostApp, \"Verification failed by the app. Please contact the app owner for details.\"), AppErrorCodes.GenericError, \"Something unexpected went wrong. Please try again.\"), _defineProperty(_VerificationErrorMes, AppErrorCodes.ConnectionFailed, \"Connection to your wallet failed. Please try again.\");\n\n_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"input_error\"\n/* InputError */\n, \"There was a problem with this request. Please try again or contact the app owner.\"), \"payment_rejected\"\n/* PaymentRejected */\n, \"You\\u2019ve cancelled the payment in World App.\"), \"invalid_receiver\"\n/* InvalidReceiver */\n, \"The receiver address is invalid. Please contact the app owner.\"), \"insufficient_balance\"\n/* InsufficientBalance */\n, \"You do not have enough balance to complete this transaction.\"), \"transaction_failed\"\n/* TransactionFailed */\n, \"The transaction failed. Please try again.\"), \"generic_error\"\n/* GenericError */\n, \"Something unexpected went wrong. Please try again.\"), \"user_blocked\"\n/* UserBlocked */\n, \"User's region is blocked from making payments.\");\n\n_defineProperty(_defineProperty(_defineProperty({}, \"malformed_request\"\n/* MalformedRequest */\n, \"Provided parameters in the request are invalid.\"), \"user_rejected\"\n/* UserRejected */\n, \"User rejected the request.\"), \"generic_error\"\n/* GenericError */\n, \"Something unexpected went wrong.\");\n\n_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"invalid_operation\"\n/* InvalidOperation */\n, \"Transaction included an operation that was invalid\"), \"user_rejected\"\n/* UserRejected */\n, \"User rejected the request.\"), \"input_error\"\n/* InputError */\n, \"Invalid payload.\"), \"simulation_failed\"\n/* SimulationFailed */\n, \"The transaction simulation failed.\"), \"transaction_failed\"\n/* TransactionFailed */\n, \"The transaction failed. Please try again later.\"), \"generic_error\"\n/* GenericError */\n, \"Something unexpected went wrong. Please try again.\"), \"disallowed_operation\"\n/* DisallowedOperation */\n, \"The operation requested is not allowed. Please refer to the docs.\"), \"invalid_contract\"\n/* InvalidContract */\n, \"The contract address is not allowed for your application. Please check your developer portal configurations\"), \"malicious_operation\"\n/* MaliciousOperation */\n, \"The operation requested is considered malicious.\");\n\n_defineProperty(_defineProperty(_defineProperty({}, \"invalid_message\"\n/* InvalidMessage */\n, \"Invalid message requested\"), \"user_rejected\"\n/* UserRejected */\n, \"User rejected the request.\"), \"generic_error\"\n/* GenericError */\n, \"Something unexpected went wrong.\");\n\nvar MiniKitInstallErrorMessage = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"unknown\"\n/* Unknown */\n, \"Failed to install MiniKit.\"), \"already_installed\"\n/* AlreadyInstalled */\n, \"MiniKit is already installed.\"), \"outside_of_worldapp\"\n/* OutsideOfWorldApp */\n, \"MiniApp launched outside of WorldApp.\"), \"not_on_client\"\n/* NotOnClient */\n, \"Window object is not available.\"), \"app_out_of_date\"\n/* AppOutOfDate */\n, \"WorldApp is out of date. Please update the app.\"); // helpers/siwe/validate-wallet-auth-command-input.ts\n\n\nvar validateWalletAuthCommandInput = function validateWalletAuthCommandInput(params) {\n if (!params.nonce) {\n return {\n valid: false,\n message: \"'nonce' is required\"\n };\n }\n\n if (params.nonce.length < 8) {\n return {\n valid: false,\n message: \"'nonce' must be at least 8 characters\"\n };\n }\n\n if (params.statement && params.statement.includes(\"\\n\")) {\n return {\n valid: false,\n message: \"'statement' must not contain newlines\"\n };\n }\n\n if (params.expirationTime && new Date(params.expirationTime) < /* @__PURE__ */new Date()) {\n return {\n valid: false,\n message: \"'expirationTime' must be in the future\"\n };\n }\n\n if (params.expirationTime && new Date(params.expirationTime) > new Date(Date.now() + 7 * 24 * 60 * 60 * 1e3)) {\n return {\n valid: false,\n message: \"'expirationTime' must be within 7 days\"\n };\n }\n\n if (params.notBefore && new Date(params.notBefore) > new Date(Date.now() + 7 * 24 * 60 * 60 * 1e3)) {\n return {\n valid: false,\n message: \"'notBefore' must be within 7 days\"\n };\n }\n\n return {\n valid: true\n };\n};\n\nvar generateSiweMessage = function generateSiweMessage(siweMessageData) {\n var siweMessage = \"\";\n\n if (siweMessageData.scheme) {\n siweMessage += \"\".concat(siweMessageData.scheme, \"://\").concat(siweMessageData.domain, \" wants you to sign in with your Ethereum account:\\n\");\n } else {\n siweMessage += \"\".concat(siweMessageData.domain, \" wants you to sign in with your Ethereum account:\\n\");\n }\n\n if (siweMessageData.address) {\n siweMessage += \"\".concat(siweMessageData.address, \"\\n\");\n } else {\n siweMessage += \"{address}\\n\";\n }\n\n siweMessage += \"\\n\";\n\n if (siweMessageData.statement) {\n siweMessage += \"\".concat(siweMessageData.statement, \"\\n\");\n }\n\n siweMessage += \"\\n\";\n siweMessage += \"URI: \".concat(siweMessageData.uri, \"\\n\");\n siweMessage += \"Version: \".concat(siweMessageData.version, \"\\n\");\n siweMessage += \"Chain ID: \".concat(siweMessageData.chain_id, \"\\n\");\n siweMessage += \"Nonce: \".concat(siweMessageData.nonce, \"\\n\");\n siweMessage += \"Issued At: \".concat(siweMessageData.issued_at, \"\\n\");\n\n if (siweMessageData.expiration_time) {\n siweMessage += \"Expiration Time: \".concat(siweMessageData.expiration_time, \"\\n\");\n }\n\n if (siweMessageData.not_before) {\n siweMessage += \"Not Before: \".concat(siweMessageData.not_before, \"\\n\");\n }\n\n if (siweMessageData.request_id) {\n siweMessage += \"Request ID: \".concat(siweMessageData.request_id, \"\\n\");\n }\n\n return siweMessage;\n};\n\nvar validatePaymentPayload = function validatePaymentPayload(payload) {\n if (payload.tokens.some(function (token) {\n return token.symbol == \"USDCE\" && parseFloat(token.token_amount) < 0.1;\n })) {\n console.error(\"USDCE amount should be greater than $0.1\");\n return false;\n }\n\n if (payload.reference.length > 36) {\n console.error(\"Reference must not exceed 36 characters\");\n return false;\n }\n\n return true;\n}; // helpers/usernames/index.ts\n\n\nvar getUserProfile = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(address) {\n var _usernames$;\n\n var res, usernames;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return fetch(\"https://usernames.worldcoin.org/api/v1/query\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n addresses: [address]\n })\n });\n\n case 2:\n res = _context2.sent;\n _context2.next = 5;\n return res.json();\n\n case 5:\n usernames = _context2.sent;\n return _context2.abrupt(\"return\", (_usernames$ = usernames[0]) !== null && _usernames$ !== void 0 ? _usernames$ : {\n username: null,\n profilePictureUrl: null\n });\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function getUserProfile(_x6) {\n return _ref2.apply(this, arguments);\n };\n}(); // minikit.ts\n\n\nvar sendMiniKitEvent = function sendMiniKitEvent(payload) {\n sendWebviewEvent(payload);\n};\n\nvar _MiniKit = /*#__PURE__*/function () {\n function _MiniKit() {\n _classCallCheck(this, _MiniKit);\n }\n\n return _createClass(_MiniKit, null, [{\n key: \"sendInit\",\n value: function sendInit() {\n sendWebviewEvent({\n command: \"init\",\n payload: {\n version: this.MINIKIT_VERSION\n }\n });\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(event, handler) {\n if (event === \"miniapp-wallet-auth\"\n /* MiniAppWalletAuth */\n ) {\n var originalHandler = handler;\n\n var wrappedHandler = function wrappedHandler(payload) {\n if (payload.status === \"success\") {\n _MiniKit.walletAddress = payload.address;\n getUserProfile(payload.address).then(function (queryResponse) {\n _MiniKit.user = {\n username: queryResponse.username,\n profilePictureUrl: queryResponse.profilePictureUrl,\n walletAddress: payload.address\n };\n });\n }\n\n originalHandler(payload);\n };\n\n this.listeners[event] = wrappedHandler;\n } else {\n this.listeners[event] = handler;\n }\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(event) {\n delete this.listeners[event];\n }\n }, {\n key: \"trigger\",\n value: function trigger(event, payload) {\n if (!this.listeners[event]) {\n console.error(\"No handler for event \".concat(event));\n return;\n }\n\n this.listeners[event](payload);\n }\n }, {\n key: \"awaitCommand\",\n value: function () {\n var _awaitCommand = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(event, command, executor) {\n var _this = this;\n\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", new Promise(function (resolve) {\n var commandPayload = null;\n\n var handleAndUnsubscribe = function handleAndUnsubscribe(payload) {\n _this.unsubscribe(event);\n\n resolve({\n commandPayload: commandPayload,\n finalPayload: payload\n });\n };\n\n _this.subscribe(event, handleAndUnsubscribe);\n\n commandPayload = executor();\n }));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function awaitCommand(_x7, _x8, _x9) {\n return _awaitCommand.apply(this, arguments);\n }\n\n return awaitCommand;\n }()\n }, {\n key: \"commandsValid\",\n value: function commandsValid(input) {\n return Object.entries(this.commandVersion).every(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n commandName = _ref4[0],\n version = _ref4[1];\n\n var commandInput = input.find(function (command) {\n return command.name === commandName;\n });\n\n if (!commandInput) {\n console.error(\"Command \".concat(commandName, \" is not supported by the app. Try updating the app version\"));\n } else {\n _MiniKit.isCommandAvailable[commandName] = true;\n }\n\n return commandInput ? commandInput.supported_versions.includes(version) : false;\n });\n }\n }, {\n key: \"install\",\n value: function install(appId) {\n if (typeof window === \"undefined\" || Boolean(window.MiniKit)) {\n return {\n success: false,\n errorCode: \"already_installed\"\n /* AlreadyInstalled */\n ,\n errorMessage: MiniKitInstallErrorMessage[\"already_installed\"\n /* AlreadyInstalled */\n ]\n };\n }\n\n if (!appId) {\n console.warn(\"App ID not provided during install\");\n } else {\n _MiniKit.appId = appId;\n }\n\n if (!window.WorldApp) {\n return {\n success: false,\n errorCode: \"outside_of_worldapp\"\n /* OutsideOfWorldApp */\n ,\n errorMessage: MiniKitInstallErrorMessage[\"outside_of_worldapp\"\n /* OutsideOfWorldApp */\n ]\n };\n }\n\n try {\n window.MiniKit = _MiniKit;\n this.sendInit();\n } catch (error) {\n console.error(MiniKitInstallErrorMessage[\"unknown\"\n /* Unknown */\n ], error);\n return {\n success: false,\n errorCode: \"unknown\"\n /* Unknown */\n ,\n errorMessage: MiniKitInstallErrorMessage[\"unknown\"\n /* Unknown */\n ]\n };\n }\n\n if (!this.commandsValid(window.WorldApp.supported_commands)) {\n return {\n success: false,\n errorCode: \"app_out_of_date\"\n /* AppOutOfDate */\n ,\n errorMessage: MiniKitInstallErrorMessage[\"app_out_of_date\"\n /* AppOutOfDate */\n ]\n };\n }\n\n return {\n success: true\n };\n }\n }, {\n key: \"isInstalled\",\n value: function isInstalled(debug) {\n if (debug) console.log(\"MiniKit is alive!\");\n var isInstalled = Boolean(window.MiniKit);\n if (!isInstalled) console.error(\"MiniKit is not installed. Make sure you're running the application inside of World App\");\n return isInstalled;\n }\n }]);\n}();\n\n_MiniKit.MINIKIT_VERSION = 1;\n_MiniKit.commandVersion = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"verify\"\n/* Verify */\n, 1), \"pay\"\n/* Pay */\n, 1), \"wallet-auth\"\n/* WalletAuth */\n, 1), \"send-transaction\"\n/* SendTransaction */\n, 1), \"sign-message\"\n/* SignMessage */\n, 1), \"sign-typed-data\"\n/* SignTypedData */\n, 1);\n_MiniKit.isCommandAvailable = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"verify\"\n/* Verify */\n, false), \"pay\"\n/* Pay */\n, false), \"wallet-auth\"\n/* WalletAuth */\n, false), \"send-transaction\"\n/* SendTransaction */\n, false), \"sign-message\"\n/* SignMessage */\n, false), \"sign-typed-data\"\n/* SignTypedData */\n, false);\n_MiniKit.listeners = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"miniapp-verify-action\"\n/* MiniAppVerifyAction */\n, function miniappVerifyAction() {}), \"miniapp-payment\"\n/* MiniAppPayment */\n, function miniappPayment() {}), \"miniapp-wallet-auth\"\n/* MiniAppWalletAuth */\n, function miniappWalletAuth() {}), \"miniapp-send-transaction\"\n/* MiniAppSendTransaction */\n, function miniappSendTransaction() {}), \"miniapp-sign-message\"\n/* MiniAppSignMessage */\n, function miniappSignMessage() {}), \"miniapp-sign-typed-data\"\n/* MiniAppSignTypedData */\n, function miniappSignTypedData() {});\n_MiniKit.appId = null;\n_MiniKit.walletAddress = null;\n_MiniKit.user = null;\n_MiniKit.commands = {\n verify: function verify(payload) {\n if (typeof window === \"undefined\" || !_MiniKit.isCommandAvailable[\"verify\"\n /* Verify */\n ]) {\n console.error(\"'verify' command is unavailable. Check MiniKit.install() or update the app version\");\n return null;\n }\n\n var timestamp = /* @__PURE__ */new Date().toISOString();\n var eventPayload = {\n action: encodeAction(payload.action),\n signal: generateSignal(payload.signal).digest,\n verification_level: payload.verification_level || VerificationLevel.Orb,\n timestamp: timestamp\n };\n sendMiniKitEvent({\n command: \"verify\"\n /* Verify */\n ,\n version: _MiniKit.commandVersion[\"verify\"\n /* Verify */\n ],\n payload: eventPayload\n });\n return eventPayload;\n },\n pay: function pay(payload) {\n if (typeof window === \"undefined\" || !_MiniKit.isCommandAvailable[\"pay\"\n /* Pay */\n ]) {\n console.error(\"'pay' command is unavailable. Check MiniKit.install() or update the app version\");\n return null;\n }\n\n if (!validatePaymentPayload(payload)) {\n return null;\n }\n\n var network = \"worldchain\"\n /* WorldChain */\n ;\n\n var eventPayload = _objectSpread2(_objectSpread2({}, payload), {}, {\n network: network\n });\n\n sendMiniKitEvent({\n command: \"pay\"\n /* Pay */\n ,\n version: _MiniKit.commandVersion[\"pay\"\n /* Pay */\n ],\n payload: eventPayload\n });\n return eventPayload;\n },\n walletAuth: function walletAuth(payload) {\n var _payload$statement, _payload$expirationTi, _payload$expirationTi2, _payload$notBefore$to, _payload$notBefore, _payload$requestId;\n\n if (typeof window === \"undefined\" || !_MiniKit.isCommandAvailable[\"wallet-auth\"\n /* WalletAuth */\n ]) {\n console.error(\"'walletAuth' command is unavailable. Check MiniKit.install() or update the app version\");\n return null;\n }\n\n var validationResult = validateWalletAuthCommandInput(payload);\n\n if (!validationResult.valid) {\n console.error(\"Failed to validate wallet auth input:\\n\\n -->\", validationResult.message);\n return null;\n }\n\n var protocol = null;\n\n try {\n var currentUrl = new URL(window.location.href);\n protocol = currentUrl.protocol.split(\":\")[0];\n } catch (error) {\n console.error(\"Failed to get current URL\", error);\n return null;\n }\n\n var siweMessage = generateSiweMessage({\n scheme: protocol,\n domain: window.location.host,\n statement: (_payload$statement = payload.statement) !== null && _payload$statement !== void 0 ? _payload$statement : void 0,\n uri: window.location.href,\n version: 1,\n chain_id: 10,\n nonce: payload.nonce,\n issued_at: /* @__PURE__ */new Date().toISOString(),\n expiration_time: (_payload$expirationTi = (_payload$expirationTi2 = payload.expirationTime) === null || _payload$expirationTi2 === void 0 ? void 0 : _payload$expirationTi2.toISOString()) !== null && _payload$expirationTi !== void 0 ? _payload$expirationTi : void 0,\n not_before: (_payload$notBefore$to = (_payload$notBefore = payload.notBefore) === null || _payload$notBefore === void 0 ? void 0 : _payload$notBefore.toISOString()) !== null && _payload$notBefore$to !== void 0 ? _payload$notBefore$to : void 0,\n request_id: (_payload$requestId = payload.requestId) !== null && _payload$requestId !== void 0 ? _payload$requestId : void 0\n });\n var walletAuthPayload = {\n siweMessage: siweMessage\n };\n sendMiniKitEvent({\n command: \"wallet-auth\"\n /* WalletAuth */\n ,\n version: _MiniKit.commandVersion[\"wallet-auth\"\n /* WalletAuth */\n ],\n payload: walletAuthPayload\n });\n return walletAuthPayload;\n },\n sendTransaction: function sendTransaction(payload) {\n if (typeof window === \"undefined\" || !_MiniKit.isCommandAvailable[\"send-transaction\"\n /* SendTransaction */\n ]) {\n console.error(\"'sendTransaction' command is unavailable. Check MiniKit.install() or update the app version\");\n return null;\n }\n\n sendMiniKitEvent({\n command: \"send-transaction\"\n /* SendTransaction */\n ,\n version: 1,\n payload: payload\n });\n return payload;\n },\n signMessage: function signMessage(payload) {\n if (typeof window === \"undefined\" || !_MiniKit.isCommandAvailable[\"sign-message\"\n /* SignMessage */\n ]) {\n console.error(\"'signMessage' command is unavailable. Check MiniKit.install() or update the app version\");\n return null;\n }\n\n sendMiniKitEvent({\n command: \"sign-message\"\n /* SignMessage */\n ,\n version: 1,\n payload: payload\n });\n return payload;\n },\n signTypedData: function signTypedData(payload) {\n if (typeof window === \"undefined\" || !_MiniKit.isCommandAvailable[\"sign-typed-data\"\n /* SignTypedData */\n ]) {\n console.error(\"'signTypedData' command is unavailable. Check MiniKit.install() or update the app version\");\n return null;\n }\n\n sendMiniKitEvent({\n command: \"sign-typed-data\"\n /* SignTypedData */\n ,\n version: 1,\n payload: payload\n });\n return payload;\n }\n};\n/**\n * This object contains async versions of all the commands.\n * Instead of using event listeners, you can just `await` these.\n *\n * They return a standardized object\n *\n * commandPayload - object returned by the command function\n *\n * finalPayload - object returned by the event listener, or in other words, WorldApp response\n */\n\n_MiniKit.commandsAsync = {\n verify: function () {\n var _verify = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(payload) {\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n return _context5.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(resolve, reject) {\n var response;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n _context4.next = 3;\n return _MiniKit.awaitCommand(\"miniapp-verify-action\"\n /* MiniAppVerifyAction */\n , \"verify\"\n /* Verify */\n , function () {\n return _MiniKit.commands.verify(payload);\n });\n\n case 3:\n response = _context4.sent;\n resolve(response);\n _context4.next = 10;\n break;\n\n case 7:\n _context4.prev = 7;\n _context4.t0 = _context4[\"catch\"](0);\n reject(_context4.t0);\n\n case 10:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, null, [[0, 7]]);\n }));\n\n return function (_x11, _x12) {\n return _ref5.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n function verify(_x10) {\n return _verify.apply(this, arguments);\n }\n\n return verify;\n }(),\n pay: function () {\n var _pay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(payload) {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n return _context7.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(resolve, reject) {\n var response;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.prev = 0;\n _context6.next = 3;\n return _MiniKit.awaitCommand(\"miniapp-payment\"\n /* MiniAppPayment */\n , \"pay\"\n /* Pay */\n , function () {\n return _MiniKit.commands.pay(payload);\n });\n\n case 3:\n response = _context6.sent;\n resolve(response);\n _context6.next = 10;\n break;\n\n case 7:\n _context6.prev = 7;\n _context6.t0 = _context6[\"catch\"](0);\n reject(_context6.t0);\n\n case 10:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, null, [[0, 7]]);\n }));\n\n return function (_x14, _x15) {\n return _ref6.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n\n function pay(_x13) {\n return _pay.apply(this, arguments);\n }\n\n return pay;\n }(),\n walletAuth: function () {\n var _walletAuth = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(payload) {\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n return _context9.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(resolve, reject) {\n var response;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.prev = 0;\n _context8.next = 3;\n return _MiniKit.awaitCommand(\"miniapp-wallet-auth\"\n /* MiniAppWalletAuth */\n , \"wallet-auth\"\n /* WalletAuth */\n , function () {\n return _MiniKit.commands.walletAuth(payload);\n });\n\n case 3:\n response = _context8.sent;\n return _context8.abrupt(\"return\", resolve(response));\n\n case 7:\n _context8.prev = 7;\n _context8.t0 = _context8[\"catch\"](0);\n reject(_context8.t0);\n\n case 10:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, null, [[0, 7]]);\n }));\n\n return function (_x17, _x18) {\n return _ref7.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n function walletAuth(_x16) {\n return _walletAuth.apply(this, arguments);\n }\n\n return walletAuth;\n }(),\n sendTransaction: function () {\n var _sendTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(payload) {\n return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(resolve, reject) {\n var response;\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.prev = 0;\n _context10.next = 3;\n return _MiniKit.awaitCommand(\"miniapp-send-transaction\"\n /* MiniAppSendTransaction */\n , \"send-transaction\"\n /* SendTransaction */\n , function () {\n return _MiniKit.commands.sendTransaction(payload);\n });\n\n case 3:\n response = _context10.sent;\n return _context10.abrupt(\"return\", resolve(response));\n\n case 7:\n _context10.prev = 7;\n _context10.t0 = _context10[\"catch\"](0);\n reject(_context10.t0);\n\n case 10:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, null, [[0, 7]]);\n }));\n\n return function (_x20, _x21) {\n return _ref8.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n\n function sendTransaction(_x19) {\n return _sendTransaction.apply(this, arguments);\n }\n\n return sendTransaction;\n }(),\n signMessage: function () {\n var _signMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(payload) {\n return _regeneratorRuntime().wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n return _context13.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(resolve, reject) {\n var response;\n return _regeneratorRuntime().wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.prev = 0;\n _context12.next = 3;\n return _MiniKit.awaitCommand(\"miniapp-sign-message\"\n /* MiniAppSignMessage */\n , \"sign-message\"\n /* SignMessage */\n , function () {\n return _MiniKit.commands.signMessage(payload);\n });\n\n case 3:\n response = _context12.sent;\n return _context12.abrupt(\"return\", resolve(response));\n\n case 7:\n _context12.prev = 7;\n _context12.t0 = _context12[\"catch\"](0);\n reject(_context12.t0);\n\n case 10:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, null, [[0, 7]]);\n }));\n\n return function (_x23, _x24) {\n return _ref9.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n function signMessage(_x22) {\n return _signMessage.apply(this, arguments);\n }\n\n return signMessage;\n }(),\n signTypedData: function () {\n var _signTypedData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15(payload) {\n return _regeneratorRuntime().wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n return _context15.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(resolve, reject) {\n var response;\n return _regeneratorRuntime().wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.prev = 0;\n _context14.next = 3;\n return _MiniKit.awaitCommand(\"miniapp-sign-typed-data\"\n /* MiniAppSignTypedData */\n , \"sign-typed-data\"\n /* SignTypedData */\n , function () {\n return _MiniKit.commands.signTypedData(payload);\n });\n\n case 3:\n response = _context14.sent;\n return _context14.abrupt(\"return\", resolve(response));\n\n case 7:\n _context14.prev = 7;\n _context14.t0 = _context14[\"catch\"](0);\n reject(_context14.t0);\n\n case 10:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, null, [[0, 7]]);\n }));\n\n return function (_x26, _x27) {\n return _ref10.apply(this, arguments);\n };\n }()));\n\n case 1:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n\n function signTypedData(_x25) {\n return _signTypedData.apply(this, arguments);\n }\n\n return signTypedData;\n }()\n};\nvar MiniKit = _MiniKit;\nexport { MiniKit, ResponseEvent };","var hash = exports;\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'); // Proxy hash functions to the main object\n\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;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar timezoneToCurrency = {\n 'Pacific/Midway': 'USD',\n 'Pacific/Niue': 'NZD',\n 'Pacific/Pago_Pago': 'USD',\n 'America/Adak': 'USD',\n 'Pacific/Honolulu': 'USD',\n 'Pacific/Rarotonga': 'NZD',\n 'Pacific/Tahiti': 'XPF',\n 'Pacific/Marquesas': 'XPF',\n 'America/Anchorage': 'USD',\n 'America/Juneau': 'USD',\n 'America/Metlakatla': 'USD',\n 'America/Nome': 'USD',\n 'America/Sitka': 'USD',\n 'America/Yakutat': 'USD',\n 'Pacific/Gambier': 'XPF',\n 'America/Los_Angeles': 'USD',\n 'America/Tijuana': 'MXN',\n 'America/Vancouver': 'CAD',\n 'Pacific/Pitcairn': 'NZD',\n 'America/Boise': 'USD',\n 'America/Cambridge_Bay': 'CAD',\n 'America/Chihuahua': 'MXN',\n 'America/Creston': 'CAD',\n 'America/Dawson': 'CAD',\n 'America/Dawson_Creek': 'CAD',\n 'America/Denver': 'USD',\n 'America/Edmonton': 'CAD',\n 'America/Fort_Nelson': 'CAD',\n 'America/Hermosillo': 'MXN',\n 'America/Inuvik': 'CAD',\n 'America/Mazatlan': 'MXN',\n 'America/Ojinaga': 'MXN',\n 'America/Phoenix': 'USD',\n 'America/Whitehorse': 'CAD',\n 'America/Yellowknife': 'CAD',\n 'America/Bahia_Banderas': 'MXN',\n 'America/Belize': 'BZD',\n 'America/Chicago': 'USD',\n 'America/Costa_Rica': 'CRC',\n 'America/El_Salvador': 'USD',\n 'America/Guatemala': 'GTQ',\n 'America/Indiana/Knox': 'USD',\n 'America/Indiana/Tell_City': 'USD',\n 'America/Managua': 'NIO',\n 'America/Matamoros': 'MXN',\n 'America/Menominee': 'USD',\n 'America/Merida': 'MXN',\n 'America/Mexico_City': 'MXN',\n 'America/Monterrey': 'MXN',\n 'America/North_Dakota/Beulah': 'USD',\n 'America/North_Dakota/Center': 'USD',\n 'America/North_Dakota/New_Salem': 'USD',\n 'America/Rainy_River': 'CAD',\n 'America/Rankin_Inlet': 'CAD',\n 'America/Regina': 'CAD',\n 'America/Resolute': 'CAD',\n 'America/Swift_Current': 'CAD',\n 'America/Tegucigalpa': 'HNL',\n 'America/Winnipeg': 'CAD',\n 'Pacific/Easter': 'CLP',\n 'Pacific/Galapagos': 'USD',\n 'America/Atikokan': 'CAD',\n 'America/Bogota': 'COP',\n 'America/Cancun': 'MXN',\n 'America/Cayman': 'KYD',\n 'America/Detroit': 'USD',\n 'America/Eirunepe': 'BRL',\n 'America/Grand_Turk': 'USD',\n 'America/Guayaquil': 'USD',\n 'America/Havana': 'CUP',\n 'America/Indiana/Indianapolis': 'USD',\n 'America/Indiana/Marengo': 'USD',\n 'America/Indiana/Petersburg': 'USD',\n 'America/Indiana/Vevay': 'USD',\n 'America/Indiana/Vincennes': 'USD',\n 'America/Indiana/Winamac': 'USD',\n 'America/Iqaluit': 'CAD',\n 'America/Jamaica': 'JMD',\n 'America/Kentucky/Louisville': 'USD',\n 'America/Kentucky/Monticello': 'USD',\n 'America/Lima': 'PEN',\n 'America/Nassau': 'BSD',\n 'America/New_York': 'USD',\n 'America/Nipigon': 'CAD',\n 'America/Panama': 'PAB',\n 'America/Pangnirtung': 'CAD',\n 'America/Port-au-Prince': 'HTG',\n 'America/Rio_Branco': 'BRL',\n 'America/Thunder_Bay': 'CAD',\n 'America/Toronto': 'CAD',\n 'America/AnguillaSandy Hill': 'XCD',\n 'America/Antigua': 'XCD',\n 'America/Aruba': 'AWG',\n 'America/Asuncion': 'PYG',\n 'America/Barbados': 'BBD',\n 'America/Blanc-Sablon': 'CAD',\n 'America/Boa_Vista': 'BRL',\n 'America/Campo_Grande': 'BRL',\n 'America/Caracas': 'VEB',\n 'America/Cuiaba': 'BRL',\n 'America/Curacao': 'ANG',\n 'America/Dominica': 'DOP',\n 'America/Glace_Bay': 'CAD',\n 'America/Goose_Bay': 'CAD',\n 'America/Grenada': 'XCD',\n 'America/Guadeloupe': 'EUR',\n 'America/Guyana': 'GYD',\n 'America/Halifax': 'CAD',\n 'America/Kralendijk': 'USD',\n 'America/La_Paz': 'BOB',\n 'America/Lower_Princes': 'USD',\n 'America/Manaus': 'BRL',\n 'America/Marigot': 'EUR',\n 'America/Martinique': 'EUR',\n 'America/Moncton': 'CAD',\n 'America/Montserrat': 'XCD',\n 'America/Porto_Velho': 'BRL',\n 'America/Port_of_Spain': 'BZD',\n 'America/Puerto_Rico': 'USD',\n 'America/Santiago': 'CLP',\n 'America/Santo_Domingo': 'DOP',\n 'America/St_Barthelemy': 'EUR',\n 'America/St_Kitts': 'XCD',\n 'America/St_Lucia': 'XCD',\n 'America/St_Thomas': 'USD',\n 'America/St_Vincent': 'XCD',\n 'America/Thule': 'DKK',\n 'America/Tortola': 'USD',\n 'Atlantic/Bermuda': 'BMD',\n 'America/St_Johns': 'CAD',\n 'America/Araguaina': 'BRL',\n 'America/Argentina/Buenos_Aires': 'ARS',\n 'America/Argentina/Catamarca': 'ARS',\n 'America/Argentina/Cordoba': 'ARS',\n 'America/Argentina/Jujuy': 'ARS',\n 'America/Argentina/La_Rioja': 'ARS',\n 'America/Argentina/Mendoza': 'ARS',\n 'America/Argentina/Rio_Gallegos': 'ARS',\n 'America/Argentina/Salta': 'ARS',\n 'America/Argentina/San_Juan': 'ARS',\n 'America/Argentina/San_Luis': 'ARS',\n 'America/Argentina/Tucuman': 'ARS',\n 'America/Argentina/Ushuaia': 'ARS',\n 'America/Bahia': 'BRL',\n 'America/Belem': 'BRL',\n 'America/Cayenne': 'EUR',\n 'America/Fortaleza': 'BRL',\n 'America/Godthab': 'DKK',\n 'America/Maceio': 'BRL',\n 'America/Miquelon': 'EUR',\n 'America/Montevideo': 'UYU',\n 'America/Paramaribo': 'SRD',\n 'America/Punta_Arenas': 'CLP',\n 'America/Recife': 'BRL',\n 'America/Santarem': 'BRL',\n 'America/Sao_Paulo': 'BRL',\n 'Antarctica/Palmer': 'USD',\n 'Antarctica/Rothera': 'USD',\n 'Atlantic/Stanley': 'FKP',\n 'America/Noronha': 'BRL',\n 'Atlantic/South_Georgia': 'GBP',\n 'America/Scoresbysund': 'DKK',\n 'Atlantic/Azores': 'EUR',\n 'Atlantic/Cape_Verde': 'CVE',\n 'Africa/Abidjan': 'XOF',\n 'Africa/Accra': 'GHC',\n 'Africa/Bamako': 'XOF',\n 'Africa/Banjul': 'GMD',\n 'Africa/Bissau': 'XOF',\n 'Africa/Casablanca': 'MAD',\n 'Africa/Conakry': 'GNF',\n 'Africa/Dakar': 'XOF',\n 'Africa/El_Aaiun': 'MAD',\n 'Africa/Freetown': 'SLL',\n 'Africa/Lome': 'XOF',\n 'Africa/Monrovia': 'LRD',\n 'Africa/Nouakchott': 'MRU',\n 'Africa/Ouagadougou': 'XOF',\n 'Africa/Sao_Tome': 'STD',\n 'America/Danmarkshavn': 'DKK',\n 'Antarctica/Troll': 'NOK',\n 'Atlantic/Canary': 'EUR',\n 'Atlantic/Faroe': 'DKK',\n 'Atlantic/Madeira': 'EUR',\n 'Atlantic/Reykjavik': 'ISK',\n 'Atlantic/St_Helena': 'SHP',\n 'Europe/Dublin': 'EUR',\n 'Europe/Guernsey': 'GBP',\n 'Europe/Isle_of_Man': 'IMP',\n 'Europe/Jersey': 'GBP',\n 'Europe/Lisbon': 'EUR',\n 'Europe/London': 'GBP',\n 'Africa/Algiers': 'DZD',\n 'Africa/Bangui': 'XAF',\n 'Africa/Brazzaville': 'XAF',\n 'Africa/Ceuta': 'EUR',\n 'Africa/Douala': 'XAF',\n 'Africa/Kinshasa': 'CDF',\n 'Africa/Lagos': 'NGN',\n 'Africa/Libreville': 'XAF',\n 'Africa/Luanda': 'AOA',\n 'Africa/Malabo': 'XAF',\n 'Africa/Ndjamena': 'XAF',\n 'Africa/Niamey': 'XOF',\n 'Africa/Porto-Novo': 'XOF',\n 'Africa/Tunis': 'TND',\n 'Africa/Windhoek': 'NAD',\n 'Arctic/Longyearbyen': 'NOK',\n 'Europe/Amsterdam': 'EUR',\n 'Europe/Andorra': 'EUR',\n 'Europe/Belgrade': 'RSD',\n 'Europe/Berlin': 'EUR',\n 'Europe/Bratislava': 'EUR',\n 'Europe/Brussels': 'EUR',\n 'Europe/Budapest': 'HUF',\n 'Europe/Copenhagen': 'DKK',\n 'Europe/Gibraltar': 'GIP',\n 'Europe/Ljubljana': 'EUR',\n 'Europe/Luxembourg': 'EUR',\n 'Europe/Madrid': 'EUR',\n 'Europe/Malta': 'EUR',\n 'Europe/Monaco': 'EUR',\n 'Europe/Oslo': 'NOK',\n 'Europe/Paris': 'EUR',\n 'Europe/Podgorica': 'EUR',\n 'Europe/Prague': 'CZK',\n 'Europe/Rome': 'EUR',\n 'Europe/San_Marino': 'EUR',\n 'Europe/Sarajevo': 'BAM',\n 'Europe/Skopje': 'MKD',\n 'Europe/Stockholm': 'SEK',\n 'Europe/Tirane': 'ALL',\n 'Europe/Vaduz': 'CHF',\n 'Europe/Vatican': 'EUR',\n 'Europe/Vienna': 'EUR',\n 'Europe/Warsaw': 'PLN',\n 'Europe/Zagreb': 'HRK',\n 'Europe/Zurich': 'CHF',\n 'Africa/Blantyre': 'MWK',\n 'Africa/Bujumbura': 'BIF',\n 'Africa/Cairo': 'EGP',\n 'Africa/Gaborone': 'BWP',\n 'Africa/Harare': 'ZWL',\n 'Africa/Johannesburg': 'ZAR',\n 'Africa/Juba': 'SSP',\n 'Africa/Khartoum': 'SDG',\n 'Africa/Kigali': 'RWF',\n 'Africa/Lubumbashi': 'CDF',\n 'Africa/Lusaka': 'ZMW',\n 'Africa/Maputo': 'MZM',\n 'Africa/Maseru': 'LSL',\n 'Africa/Mbabane': 'SZL',\n 'Africa/Tripoli': 'LYD',\n 'Asia/Amman': 'JOD',\n 'Asia/Beirut': 'LBP',\n 'Asia/Damascus': 'SYP',\n 'Asia/Famagusta': 'TRY',\n 'Asia/Gaza': 'ILS',\n 'Asia/Hebron': 'ILS',\n 'Asia/Jerusalem': 'ILS',\n 'Asia/Nicosia': 'EUR',\n 'Europe/Athens': 'EUR',\n 'Europe/Bucharest': 'RON',\n 'Europe/Chisinau': 'MDL',\n 'Europe/Helsinki': 'EUR',\n 'Europe/Kaliningrad': 'RUB',\n 'Europe/Kiev': 'UAH',\n 'Europe/Mariehamn': 'EUR',\n 'Europe/Riga': 'EUR',\n 'Europe/Sofia': 'BGN',\n 'Europe/Tallinn': 'EUR',\n 'Europe/Uzhgorod': 'UAH',\n 'Europe/Vilnius': 'EUR',\n 'Europe/Zaporozhye': 'UAH',\n 'Africa/Addis_Ababa': 'ETB',\n 'Africa/Asmara': 'ERN',\n 'Africa/Dar_es_Salaam': 'TZS',\n 'Africa/Djibouti': 'DJF',\n 'Africa/Kampala': 'UGX',\n 'Africa/Mogadishu': 'SOS',\n 'Africa/Nairobi': 'KES',\n 'Antarctica/Syowa': 'EUR',\n 'Asia/Aden': 'YER',\n 'Asia/Baghdad': 'IQD',\n 'Asia/Bahrain': 'BHD',\n 'Asia/Kuwait': 'KWD',\n 'Asia/Qatar': 'QAR',\n 'Asia/Riyadh': 'SAR',\n 'Europe/Istanbul': 'TRY',\n 'Europe/Kirov': 'RUB',\n 'Europe/Minsk': 'BYN',\n 'Europe/Moscow': 'RUB',\n 'Europe/Simferopol': 'RUB',\n 'Europe/Volgograd': 'RUB',\n 'Indian/Antananarivo': 'MGA',\n 'Indian/Comoro': 'USD',\n 'Indian/Mayotte': 'EUR',\n 'Asia/Tehran': 'IRR',\n 'Asia/Baku': 'AZN',\n 'Asia/Dubai': 'AED',\n 'Asia/Muscat': 'OMR',\n 'Asia/Tbilisi': 'GEL',\n 'Asia/Yerevan': 'AMD',\n 'Europe/Astrakhan': 'RUB',\n 'Europe/Samara': 'RUB',\n 'Europe/Saratov': 'RUB',\n 'Europe/Ulyanovsk': 'RUB',\n 'Indian/Mahe': 'SCR',\n 'Indian/Mauritius': 'MUR',\n 'Indian/Reunion': 'EUR',\n 'Asia/Kabul': 'AFN',\n 'Antarctica/Mawson': 'USD',\n 'Asia/Aqtau': 'KZT',\n 'Asia/Aqtobe': 'KZT',\n 'Asia/Ashgabat': 'TMM',\n 'Asia/Atyrau': 'KZT',\n 'Asia/Dushanbe': 'TJS',\n 'Asia/Karachi': 'PKR',\n 'Asia/Oral': 'KZT',\n 'Asia/Qyzylorda': 'KZT',\n 'Asia/Samarkand': 'UZS',\n 'Asia/Tashkent': 'UZS',\n 'Asia/Yekaterinburg': 'RUB',\n 'Indian/Kerguelen': 'EUR',\n 'Indian/Maldives': 'MVR',\n 'Asia/Colombo': 'LKR',\n 'Asia/Kolkata': 'INR',\n 'Asia/Kathmandu': 'NPR',\n 'Antarctica/Vostok': 'USD',\n 'Asia/Almaty': 'KZT',\n 'Asia/Bishkek': 'KGS',\n 'Asia/Dhaka': 'BDT',\n 'Asia/Omsk': 'RUB',\n 'Asia/Qostanay': 'KZT',\n 'Asia/Thimphu': 'BTN',\n 'Asia/Urumqi': 'CNY',\n 'Indian/Chagos': 'USD',\n 'Asia/Yangon': 'MMK',\n 'Indian/Cocos': 'AUD',\n 'Antarctica/Davis': 'USD',\n 'Asia/Bangkok': 'THB',\n 'Asia/Barnaul': 'RUB',\n 'Asia/Hovd': 'MNT',\n 'Asia/Ho_Chi_Minh': 'VND',\n 'Asia/Jakarta': 'IDR',\n 'Asia/Krasnoyarsk': 'RUB',\n 'Asia/Novokuznetsk': 'RUB',\n 'Asia/Novosibirsk': 'RUB',\n 'Asia/Phnom_Penh': 'KHR',\n 'Asia/Pontianak': 'IDR',\n 'Asia/Tomsk': 'RUB',\n 'Asia/Vientiane': 'LAK',\n 'Indian/Christmas': 'AUD',\n 'Asia/Brunei': 'BND',\n 'Asia/Choibalsan': 'MNT',\n 'Asia/Hong_Kong': 'HKD',\n 'Asia/Irkutsk': 'RUB',\n 'Asia/Kuala_Lumpur': 'MYR',\n 'Asia/Kuching': 'MYR',\n 'Asia/Macau': 'MOP',\n 'Asia/Makassar': 'IDR',\n 'Asia/Manila': 'PHP',\n 'Asia/Shanghai': 'CNY',\n 'Asia/Singapore': 'SGD',\n 'Asia/Taipei': 'TWD',\n 'Asia/Ulaanbaatar': 'MNT',\n 'Australia/Perth': 'AUD',\n 'Australia/Eucla': 'AUD',\n 'Asia/Chita': 'RUB',\n 'Asia/Dili': 'USD',\n 'Asia/Jayapura': 'IDR',\n 'Asia/Khandyga': 'RUB',\n 'Asia/Pyongyang': 'KPW',\n 'Asia/Seoul': 'KRW',\n 'Asia/Tokyo': 'JPY',\n 'Asia/Yakutsk': 'RUB',\n 'Pacific/Palau': 'USD',\n 'Australia/Adelaide': 'AUD',\n 'Australia/Broken_Hill': 'AUD',\n 'Australia/Darwin': 'AUD',\n 'Antarctica/DumontDUrville': 'USD',\n 'Antarctica/Macquarie': 'USD',\n 'Asia/Ust-Nera': 'RUB',\n 'Asia/Vladivostok': 'RUB',\n 'Australia/Brisbane': 'AUD',\n 'Australia/Currie': 'AUD',\n 'Australia/Hobart': 'AUD',\n 'Australia/Lindeman': 'AUD',\n 'Australia/Melbourne': 'AUD',\n 'Australia/Sydney': 'AUD',\n 'Pacific/Chuuk': 'USD',\n 'Pacific/GuamVillage': 'USD',\n 'Pacific/Port_Moresby': 'PGK',\n 'Pacific/Saipan': 'USD',\n 'Australia/Lord_Howe': 'AUD',\n 'Antarctica/Casey': 'USD',\n 'Asia/Magadan': 'RUB',\n 'Asia/Sakhalin': 'RUB',\n 'Asia/Srednekolymsk': 'RUB',\n 'Pacific/Bougainville': 'PGK',\n 'Pacific/Efate': 'VUV',\n 'Pacific/Guadalcanal': 'SBD',\n 'Pacific/Kosrae': 'USD',\n 'Pacific/Norfolk': 'USD',\n 'Pacific/Noumea': 'XPF',\n 'Pacific/Pohnpei': 'USD',\n 'Antarctica/McMurdo': 'USD',\n 'Asia/Anadyr': 'RUB',\n 'Asia/Kamchatka': 'RUB',\n 'Pacific/Auckland': 'NZD',\n 'Pacific/Fiji': 'FJD',\n 'Pacific/Funafuti': 'AUD',\n 'Pacific/Kwajalein': 'USD',\n 'Pacific/Majuro': 'USD',\n 'Pacific/Nauru': 'AUD',\n 'Pacific/Tarawa': 'AUD',\n 'Pacific/Wake': 'USD',\n 'Pacific/Wallis': 'XPF',\n 'Pacific/Chatham': 'CAD',\n 'Pacific/Apia': 'NGN',\n 'Pacific/Enderbury': 'USD',\n 'Pacific/Fakaofo': 'NZD',\n 'Pacific/Tongatapu': 'TOP',\n 'Pacific/Kiritimati': 'AUD'\n};\n\nvar Currency = /*#__PURE__*/function () {\n function Currency(_ref) {\n var amount = _ref.amount,\n code = _ref.code,\n _ref$timeZone = _ref.timeZone,\n timeZone = _ref$timeZone === void 0 ? Currency.timeZone() : _ref$timeZone;\n\n _classCallCheck(this, Currency);\n\n this.amount = amount;\n this.code = code || window._LocalCurrencyCode || Currency.getCode(timeZone);\n this.timeZone = timeZone;\n }\n\n _createClass(Currency, [{\n key: \"toString\",\n value: function toString() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (options.minimumFractionDigits == undefined && this.amount % 1 === 0 && this.amount >= 100) {\n options.minimumFractionDigits = 0;\n } else if (options.minimumFractionDigits == undefined) {\n options.minimumFractionDigits = 2;\n }\n\n return new Intl.NumberFormat(navigator.language, _objectSpread(_objectSpread({}, options), {}, {\n style: 'currency',\n currency: this.code\n })).format(this.amount);\n }\n }], [{\n key: \"getCode\",\n value: function getCode(timeZone) {\n return window._LocalCurrencyCode || timezoneToCurrency[timeZone || Currency.timeZone()] || 'USD';\n }\n }, {\n key: \"getCacheKey\",\n value: function getCacheKey(currency) {\n return \"@depay/local-currency/v3.8.1/rates/\".concat(currency);\n }\n }, {\n key: \"rate\",\n value: function () {\n var _rate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {\n var from, to, fromToUsd, toToUsd;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n from = _ref2.from, to = _ref2.to;\n\n if (to == undefined) {\n to = Currency.getCode();\n }\n\n _context.next = 4;\n return Currency.fromUSD({\n amount: 1,\n code: from\n });\n\n case 4:\n fromToUsd = _context.sent;\n _context.next = 7;\n return Currency.fromUSD({\n amount: 1,\n code: to\n });\n\n case 7:\n toToUsd = _context.sent;\n\n if (!(fromToUsd.code != from || toToUsd.code != to)) {\n _context.next = 10;\n break;\n }\n\n throw 'Failed fetching rate!';\n\n case 10:\n return _context.abrupt(\"return\", fromToUsd.amount / toToUsd.amount);\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function rate(_x) {\n return _rate.apply(this, arguments);\n }\n\n return rate;\n }()\n }, {\n key: \"getCachedValue\",\n value: function getCachedValue(cacheKey) {\n var cachedValue = localStorage.getItem(cacheKey);\n\n if (cachedValue) {\n cachedValue = JSON.parse(cachedValue);\n cachedValue = cachedValue.expiresAt < Date.now() ? null : cachedValue.value;\n }\n\n return cachedValue;\n }\n }, {\n key: \"fromUSDSync\",\n value: function fromUSDSync(_ref3) {\n var amount = _ref3.amount,\n code = _ref3.code,\n timeZone = _ref3.timeZone;\n var currency = new Currency({\n amount: amount,\n code: code,\n timeZone: timeZone\n });\n var cacheKey = Currency.getCacheKey(currency.code);\n var cachedValue = Currency.getCachedValue(cacheKey);\n var rate;\n\n if (cachedValue) {\n rate = cachedValue;\n } else {\n Currency.fromUSD({\n amount: amount,\n code: code,\n timeZone: timeZone\n });\n currency.code = \"USD\";\n rate = 1;\n }\n\n currency.amount = currency.amount * rate;\n return currency;\n }\n }, {\n key: \"fromUSD\",\n value: function () {\n var _fromUSD = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref4) {\n var amount, code, timeZone, currency, cacheKey, cachedValue, rate;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n amount = _ref4.amount, code = _ref4.code, timeZone = _ref4.timeZone;\n currency = new Currency({\n amount: amount,\n code: code,\n timeZone: timeZone\n });\n cacheKey = Currency.getCacheKey(currency.code);\n cachedValue = Currency.getCachedValue(cacheKey);\n\n if (!cachedValue) {\n _context2.next = 8;\n break;\n }\n\n rate = cachedValue;\n _context2.next = 11;\n break;\n\n case 8:\n _context2.next = 10;\n return fetch('https://public.depay.com/currencies/' + currency.code).then(function (response) {\n return response.json();\n }).then(function (data) {\n var value = parseFloat(data);\n localStorage.setItem(cacheKey, JSON.stringify({\n value: value,\n expiresAt: Date.now() + 24 * 60 * 60 * 1000\n })); // 24 hours\n\n // 24 hours\n return value;\n }).catch(function (e) {\n currency.code = \"USD\";\n return 1;\n });\n\n case 10:\n rate = _context2.sent;\n\n case 11:\n currency.amount = currency.amount * rate;\n return _context2.abrupt(\"return\", currency);\n\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function fromUSD(_x2) {\n return _fromUSD.apply(this, arguments);\n }\n\n return fromUSD;\n }()\n }, {\n key: \"timeZone\",\n value: function timeZone() {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n }]);\n\n return Currency;\n}();\n\nexport { Currency };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport Token from '@depay/web3-tokens';\nimport { request, getProvider } from '@depay/web3-client';\nimport { ethers } from 'ethers';\nimport Blockchains from '@depay/web3-blockchains';\nimport { BN, struct, publicKey, u128, u64 as u64$1, seq, u8, u16, i32, bool, i128, PublicKey, Buffer, Keypair, SystemProgram, TransactionInstruction } from '@depay/solana-web3.js';\nimport Decimal from 'decimal.js';\n\nfunction _optionalChain$6(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_value = value).call.apply(_value, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar Route = /*#__PURE__*/_createClass(function Route(_ref) {\n var blockchain = _ref.blockchain,\n tokenIn = _ref.tokenIn,\n decimalsIn = _ref.decimalsIn,\n tokenOut = _ref.tokenOut,\n decimalsOut = _ref.decimalsOut,\n path = _ref.path,\n pools = _ref.pools,\n amountIn = _ref.amountIn,\n amountInMax = _ref.amountInMax,\n amountOut = _ref.amountOut,\n amountOutMin = _ref.amountOutMin,\n exchange = _ref.exchange,\n approvalRequired = _ref.approvalRequired,\n getApproval = _ref.getApproval,\n getPrep = _ref.getPrep,\n getTransaction = _ref.getTransaction;\n\n _classCallCheck(this, Route);\n\n this.blockchain = blockchain;\n this.tokenIn = tokenIn;\n this.decimalsIn = decimalsIn;\n this.tokenOut = tokenOut;\n this.decimalsOut = decimalsOut;\n this.path = path;\n this.pools = pools;\n this.amountIn = _optionalChain$6([amountIn, 'optionalAccess', function (_) {\n return _.toString;\n }, 'call', function (_2) {\n return _2();\n }]);\n this.amountOutMin = _optionalChain$6([amountOutMin, 'optionalAccess', function (_3) {\n return _3.toString;\n }, 'call', function (_4) {\n return _4();\n }]);\n this.amountOut = _optionalChain$6([amountOut, 'optionalAccess', function (_5) {\n return _5.toString;\n }, 'call', function (_6) {\n return _6();\n }]);\n this.amountInMax = _optionalChain$6([amountInMax, 'optionalAccess', function (_7) {\n return _7.toString;\n }, 'call', function (_8) {\n return _8();\n }]);\n this.exchange = exchange;\n this.getPrep = getPrep;\n this.getTransaction = getTransaction;\n});\n\nvar supported = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.solana = ['solana'];\nvar DEFAULT_SLIPPAGE = '0.5'; // percent\n\nvar getDefaultSlippage = function getDefaultSlippage(_ref2) {\n var exchange = _ref2.exchange,\n blockchain = _ref2.blockchain,\n pools = _ref2.pools,\n amountIn = _ref2.amountIn,\n amountOut = _ref2.amountOut;\n return DEFAULT_SLIPPAGE;\n};\n\nvar calculateAmountInWithSlippage = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {\n var exchange, blockchain, pools, exchangePath, amountIn, amountOut, defaultSlippage, newAmountInWithDefaultSlippageBN, currentBlock, blocks, i, lastAmountsIn, newAmountInWithExtremeSlippageBN, difference1, difference2, slippage, _difference, _difference2, _slippage, highestAmountBN;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n exchange = _ref3.exchange, blockchain = _ref3.blockchain, pools = _ref3.pools, exchangePath = _ref3.exchangePath, amountIn = _ref3.amountIn, amountOut = _ref3.amountOut;\n defaultSlippage = getDefaultSlippage({\n exchange: exchange,\n blockchain: blockchain,\n pools: pools,\n exchangePath: exchangePath,\n amountIn: amountIn,\n amountOut: amountOut\n });\n newAmountInWithDefaultSlippageBN = amountIn.add(amountIn.mul(parseFloat(defaultSlippage) * 100).div(10000));\n\n if (supported.evm.includes(exchange.blockchain || blockchain)) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt(\"return\", newAmountInWithDefaultSlippageBN);\n\n case 5:\n _context2.next = 7;\n return request({\n blockchain: exchange.blockchain || blockchain,\n method: 'latestBlockNumber'\n });\n\n case 7:\n currentBlock = _context2.sent;\n blocks = [];\n\n for (i = 0; i <= 2; i++) {\n blocks.push(currentBlock - i);\n }\n\n _context2.next = 12;\n return Promise.all(blocks.map( /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(block) {\n var _yield$exchange$getAm, amountIn;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return exchange.getAmounts({\n exchange: exchange,\n blockchain: blockchain,\n path: exchangePath,\n pools: pools,\n amountOut: amountOut,\n block: block\n });\n\n case 2:\n _yield$exchange$getAm = _context.sent;\n amountIn = _yield$exchange$getAm.amountIn;\n return _context.abrupt(\"return\", amountIn);\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x2) {\n return _ref5.apply(this, arguments);\n };\n }()));\n\n case 12:\n lastAmountsIn = _context2.sent;\n\n if (!(!lastAmountsIn[0] || !lastAmountsIn[1] || !lastAmountsIn[2])) {\n _context2.next = 15;\n break;\n }\n\n return _context2.abrupt(\"return\", newAmountInWithDefaultSlippageBN);\n\n case 15:\n if (!(lastAmountsIn[0].gt(lastAmountsIn[1]) && lastAmountsIn[1].gt(lastAmountsIn[2]))) {\n _context2.next = 24;\n break;\n }\n\n // EXTREME DIRECTIONAL PRICE CHANGE\n difference1 = lastAmountsIn[0].sub(lastAmountsIn[1]);\n difference2 = lastAmountsIn[1].sub(lastAmountsIn[2]); // velocity (avg. step size)\n\n slippage = difference1.add(difference2).div(2);\n newAmountInWithExtremeSlippageBN = lastAmountsIn[0].add(slippage);\n\n if (!newAmountInWithExtremeSlippageBN.gt(newAmountInWithDefaultSlippageBN)) {\n _context2.next = 22;\n break;\n }\n\n return _context2.abrupt(\"return\", newAmountInWithExtremeSlippageBN);\n\n case 22:\n _context2.next = 32;\n break;\n\n case 24:\n if (lastAmountsIn[0].eq(lastAmountsIn[1]) || lastAmountsIn[1].eq(lastAmountsIn[2])) {\n _context2.next = 32;\n break;\n }\n\n // EXTREME BASE VOLATILITIES\n _difference = lastAmountsIn[0].sub(lastAmountsIn[1]).abs();\n _difference2 = lastAmountsIn[1].sub(lastAmountsIn[2]).abs();\n\n if (_difference.lt(_difference2)) {\n _slippage = _difference;\n } else {\n _slippage = _difference2;\n }\n\n if (lastAmountsIn[0].gt(lastAmountsIn[1]) && lastAmountsIn[0].gt(lastAmountsIn[2])) {\n highestAmountBN = lastAmountsIn[0];\n } else if (lastAmountsIn[1].gt(lastAmountsIn[2]) && lastAmountsIn[1].gt(lastAmountsIn[0])) {\n highestAmountBN = lastAmountsIn[1];\n } else {\n highestAmountBN = lastAmountsIn[2];\n }\n\n newAmountInWithExtremeSlippageBN = highestAmountBN.add(_slippage);\n\n if (!newAmountInWithExtremeSlippageBN.gt(newAmountInWithDefaultSlippageBN)) {\n _context2.next = 32;\n break;\n }\n\n return _context2.abrupt(\"return\", newAmountInWithExtremeSlippageBN);\n\n case 32:\n return _context2.abrupt(\"return\", newAmountInWithDefaultSlippageBN);\n\n case 33:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function calculateAmountInWithSlippage(_x) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nvar calculateAmountOutLessSlippage = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref6) {\n var exchange, exchangePath, amountOut, amountIn, defaultSlippage, newAmountOutWithoutDefaultSlippageBN;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n exchange = _ref6.exchange, exchangePath = _ref6.exchangePath, amountOut = _ref6.amountOut, amountIn = _ref6.amountIn;\n defaultSlippage = getDefaultSlippage({\n amountIn: amountIn,\n amountOut: amountOut\n });\n newAmountOutWithoutDefaultSlippageBN = amountOut.sub(amountOut.mul(parseFloat(defaultSlippage) * 100).div(10000));\n return _context3.abrupt(\"return\", newAmountOutWithoutDefaultSlippageBN);\n\n case 4:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function calculateAmountOutLessSlippage(_x3) {\n return _ref7.apply(this, arguments);\n };\n}();\n\nvar calculateAmountsWithSlippage = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref8) {\n var exchange, blockchain, pools, exchangePath, amounts, tokenIn, tokenOut, amountIn, amountInMax, amountOut, amountOutMin, amountInInput, amountOutInput, amountInMaxInput, amountOutMinInput, amountsWithSlippage, _amountsWithSlippage;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n exchange = _ref8.exchange, blockchain = _ref8.blockchain, pools = _ref8.pools, exchangePath = _ref8.exchangePath, amounts = _ref8.amounts, tokenIn = _ref8.tokenIn, tokenOut = _ref8.tokenOut, amountIn = _ref8.amountIn, amountInMax = _ref8.amountInMax, amountOut = _ref8.amountOut, amountOutMin = _ref8.amountOutMin, amountInInput = _ref8.amountInInput, amountOutInput = _ref8.amountOutInput, amountInMaxInput = _ref8.amountInMaxInput, amountOutMinInput = _ref8.amountOutMinInput;\n\n if (!(amountOutMinInput || amountOutInput)) {\n _context4.next = 17;\n break;\n }\n\n if (!supported.evm.includes(exchange.blockchain || blockchain)) {\n _context4.next = 8;\n break;\n }\n\n _context4.next = 5;\n return calculateAmountInWithSlippage({\n exchange: exchange,\n blockchain: blockchain,\n pools: pools,\n exchangePath: exchangePath,\n amountIn: amountIn,\n amountOut: amountOutMinInput || amountOut\n });\n\n case 5:\n amountIn = amountInMax = _context4.sent;\n _context4.next = 15;\n break;\n\n case 8:\n if (!supported.solana.includes(exchange.blockchain || blockchain)) {\n _context4.next = 15;\n break;\n }\n\n amountsWithSlippage = [];\n _context4.next = 12;\n return Promise.all(exchangePath.map(function (step, index) {\n if (index != 0) {\n var amountWithSlippage = calculateAmountInWithSlippage({\n exchange: exchange,\n pools: pools,\n exchangePath: [exchangePath[index - 1], exchangePath[index]],\n amountIn: amounts[index - 1],\n amountOut: amounts[index]\n });\n amountWithSlippage.then(function (amount) {\n return amountsWithSlippage.push(amount);\n });\n return amountWithSlippage;\n }\n }));\n\n case 12:\n amountsWithSlippage.push(amounts[amounts.length - 1]);\n amounts = amountsWithSlippage;\n amountIn = amountInMax = amounts[0];\n\n case 15:\n _context4.next = 25;\n break;\n\n case 17:\n if (!(amountInMaxInput || amountInInput)) {\n _context4.next = 25;\n break;\n }\n\n if (!supported.solana.includes(exchange.blockchain || blockchain)) {\n _context4.next = 25;\n break;\n }\n\n _amountsWithSlippage = [];\n _context4.next = 22;\n return Promise.all(exchangePath.map(function (step, index) {\n if (index !== 0 && index < exchangePath.length - 1) {\n _amountsWithSlippage.unshift(amounts[index]);\n } else if (index === exchangePath.length - 1) {\n var amountWithSlippage = calculateAmountOutLessSlippage({\n exchange: exchange,\n exchangePath: [exchangePath[index - 1], exchangePath[index]],\n amountIn: amounts[index - 1],\n amountOut: amounts[index]\n });\n amountWithSlippage.then(function (amount) {\n _amountsWithSlippage.unshift(amount);\n\n return amount;\n });\n return amountWithSlippage;\n }\n }));\n\n case 22:\n _amountsWithSlippage.push(amounts[0]);\n\n amounts = _amountsWithSlippage.slice().reverse();\n amountOut = amountOutMin = amounts[amounts.length - 1];\n\n case 25:\n return _context4.abrupt(\"return\", {\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin,\n amounts: amounts\n });\n\n case 26:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function calculateAmountsWithSlippage(_x4) {\n return _ref9.apply(this, arguments);\n };\n}();\n\nvar fixAddress = function fixAddress(address) {\n if (address.match('0x')) {\n return ethers.utils.getAddress(address);\n } else {\n return address;\n }\n};\n\nvar getAmount = /*#__PURE__*/function () {\n var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref10) {\n var amount, blockchain, address;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n amount = _ref10.amount, blockchain = _ref10.blockchain, address = _ref10.address;\n _context5.next = 3;\n return Token.BigNumber({\n amount: amount,\n blockchain: blockchain,\n address: address\n });\n\n case 3:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function getAmount(_x5) {\n return _ref11.apply(this, arguments);\n };\n}();\n\nvar fixRouteParams = /*#__PURE__*/function () {\n var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref12) {\n var blockchain, exchange, tokenIn, tokenOut, amountIn, amountOut, amountInMax, amountOutMin, params;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n blockchain = _ref12.blockchain, exchange = _ref12.exchange, tokenIn = _ref12.tokenIn, tokenOut = _ref12.tokenOut, amountIn = _ref12.amountIn, amountOut = _ref12.amountOut, amountInMax = _ref12.amountInMax, amountOutMin = _ref12.amountOutMin;\n params = {\n exchange: exchange,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountOut: amountOut,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n };\n\n if (!(amountOut && typeof amountOut === 'number')) {\n _context6.next = 6;\n break;\n }\n\n _context6.next = 5;\n return getAmount({\n amount: amountOut,\n blockchain: blockchain,\n address: tokenOut\n });\n\n case 5:\n params.amountOut = _context6.sent;\n\n case 6:\n if (!(amountOutMin && typeof amountOutMin === 'number')) {\n _context6.next = 10;\n break;\n }\n\n _context6.next = 9;\n return getAmount({\n amount: amountOutMin,\n blockchain: blockchain,\n address: tokenOut\n });\n\n case 9:\n params.amountOutMin = _context6.sent;\n\n case 10:\n if (!(amountIn && typeof amountIn === 'number')) {\n _context6.next = 14;\n break;\n }\n\n _context6.next = 13;\n return getAmount({\n amount: amountIn,\n blockchain: blockchain,\n address: tokenIn\n });\n\n case 13:\n params.amountIn = _context6.sent;\n\n case 14:\n if (!(amountInMax && typeof amountInMax === 'number')) {\n _context6.next = 18;\n break;\n }\n\n _context6.next = 17;\n return getAmount({\n amount: amountInMax,\n blockchain: blockchain,\n address: tokenIn\n });\n\n case 17:\n params.amountInMax = _context6.sent;\n\n case 18:\n return _context6.abrupt(\"return\", params);\n\n case 19:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function fixRouteParams(_x6) {\n return _ref13.apply(this, arguments);\n };\n}();\n\nvar preflight = function preflight(_ref14) {\n var blockchain = _ref14.blockchain,\n exchange = _ref14.exchange,\n tokenIn = _ref14.tokenIn,\n tokenOut = _ref14.tokenOut,\n amountIn = _ref14.amountIn,\n amountOut = _ref14.amountOut,\n amountInMax = _ref14.amountInMax,\n amountOutMin = _ref14.amountOutMin;\n\n if (blockchain === undefined && exchange.blockchains != undefined && exchange.blockchains.length > 1) {\n throw 'You need to provide a blockchain when calling route on an exchange that supports multiple blockchains!';\n }\n\n if (typeof amountOut !== 'undefined' && typeof amountIn !== 'undefined') {\n throw 'You cannot set amountIn and amountOut at the same time, use amountInMax or amountOutMin to describe the non exact part of the swap!';\n }\n\n if (typeof amountInMax !== 'undefined' && typeof amountOutMin !== 'undefined') {\n throw 'You cannot set amountInMax and amountOutMin at the same time, use amountIn or amountOut to describe the part of the swap that needs to be exact!';\n }\n\n if (typeof amountIn !== 'undefined' && typeof amountInMax !== 'undefined') {\n throw 'Setting amountIn and amountInMax at the same time makes no sense. Decide if amountIn needs to be exact or not!';\n }\n\n if (typeof amountOut !== 'undefined' && typeof amountOutMin !== 'undefined') {\n throw 'Setting amountOut and amountOutMin at the same time makes no sense. Decide if amountOut needs to be exact or not!';\n }\n};\n\nvar route$1 = function route$1(_ref15) {\n var blockchain = _ref15.blockchain,\n exchange = _ref15.exchange,\n tokenIn = _ref15.tokenIn,\n tokenOut = _ref15.tokenOut,\n _ref15$amountIn = _ref15.amountIn,\n amountIn = _ref15$amountIn === void 0 ? undefined : _ref15$amountIn,\n _ref15$amountOut = _ref15.amountOut,\n amountOut = _ref15$amountOut === void 0 ? undefined : _ref15$amountOut,\n _ref15$amountInMax = _ref15.amountInMax,\n amountInMax = _ref15$amountInMax === void 0 ? undefined : _ref15$amountInMax,\n _ref15$amountOutMin = _ref15.amountOutMin,\n amountOutMin = _ref15$amountOutMin === void 0 ? undefined : _ref15$amountOutMin,\n findPath = _ref15.findPath,\n getAmounts = _ref15.getAmounts,\n _getPrep = _ref15.getPrep,\n _getTransaction = _ref15.getTransaction,\n slippage = _ref15.slippage;\n tokenIn = fixAddress(tokenIn);\n tokenOut = fixAddress(tokenOut);\n\n if ([amountIn, amountOut, amountInMax, amountOutMin].filter(Boolean).length > 1) {\n throw 'You can only pass one: amountIn, amountOut, amountInMax or amountOutMin';\n }\n\n if ([amountIn, amountOut, amountInMax, amountOutMin].filter(Boolean).length < 1) {\n throw 'You need to pass exactly one: amountIn, amountOut, amountInMax or amountOutMin';\n }\n\n return new Promise( /*#__PURE__*/function () {\n var _ref16 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(resolve) {\n var _yield$findPath, path, exchangePath, pools, amountInInput, amountOutInput, amountInMaxInput, amountOutMinInput, amounts, _yield$getAmounts, _yield$calculateAmoun, decimalsIn, decimalsOut;\n\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return findPath({\n blockchain: blockchain,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountOut: amountOut,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 2:\n _yield$findPath = _context9.sent;\n path = _yield$findPath.path;\n exchangePath = _yield$findPath.exchangePath;\n pools = _yield$findPath.pools;\n\n if (!(path === undefined || path.length == 0)) {\n _context9.next = 8;\n break;\n }\n\n return _context9.abrupt(\"return\", resolve());\n\n case 8:\n amountInInput = amountIn, amountOutInput = amountOut, amountInMaxInput = amountInMax, amountOutMinInput = amountOutMin;\n _context9.prev = 9;\n ;\n _context9.next = 13;\n return getAmounts({\n exchange: exchange,\n blockchain: blockchain,\n path: path,\n pools: pools,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 13:\n _yield$getAmounts = _context9.sent;\n amountIn = _yield$getAmounts.amountIn;\n amountInMax = _yield$getAmounts.amountInMax;\n amountOut = _yield$getAmounts.amountOut;\n amountOutMin = _yield$getAmounts.amountOutMin;\n amounts = _yield$getAmounts.amounts;\n _context9.next = 24;\n break;\n\n case 21:\n _context9.prev = 21;\n _context9.t0 = _context9[\"catch\"](9);\n return _context9.abrupt(\"return\", resolve());\n\n case 24:\n if (![amountIn, amountInMax, amountOut, amountOutMin].every(function (amount) {\n return amount == undefined;\n })) {\n _context9.next = 26;\n break;\n }\n\n return _context9.abrupt(\"return\", resolve());\n\n case 26:\n if (!(exchange.slippage && slippage !== false)) {\n _context9.next = 41;\n break;\n }\n\n _context9.prev = 27;\n _context9.next = 30;\n return calculateAmountsWithSlippage({\n exchange: exchange,\n blockchain: blockchain,\n pools: pools,\n exchangePath: exchangePath,\n amounts: amounts,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin,\n amountInInput: amountInInput,\n amountOutInput: amountOutInput,\n amountInMaxInput: amountInMaxInput,\n amountOutMinInput: amountOutMinInput\n });\n\n case 30:\n _yield$calculateAmoun = _context9.sent;\n amountIn = _yield$calculateAmoun.amountIn;\n amountInMax = _yield$calculateAmoun.amountInMax;\n amountOut = _yield$calculateAmoun.amountOut;\n amountOutMin = _yield$calculateAmoun.amountOutMin;\n amounts = _yield$calculateAmoun.amounts;\n _context9.next = 41;\n break;\n\n case 38:\n _context9.prev = 38;\n _context9.t1 = _context9[\"catch\"](27);\n return _context9.abrupt(\"return\", resolve());\n\n case 41:\n _context9.next = 43;\n return new Token({\n blockchain: blockchain,\n address: tokenIn\n }).decimals();\n\n case 43:\n decimalsIn = _context9.sent;\n _context9.next = 46;\n return new Token({\n blockchain: blockchain,\n address: tokenOut\n }).decimals();\n\n case 46:\n decimalsOut = _context9.sent;\n resolve(new Route({\n blockchain: blockchain,\n tokenIn: tokenIn,\n decimalsIn: decimalsIn,\n tokenOut: tokenOut,\n decimalsOut: decimalsOut,\n path: path,\n pools: pools,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin,\n exchange: exchange,\n getPrep: function () {\n var _getPrep2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref17) {\n var account;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n account = _ref17.account;\n _context7.next = 3;\n return _getPrep({\n exchange: exchange,\n blockchain: blockchain,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn || amountInMax,\n account: account\n });\n\n case 3:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 4:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n\n function getPrep(_x8) {\n return _getPrep2.apply(this, arguments);\n }\n\n return getPrep;\n }(),\n getTransaction: function () {\n var _getTransaction2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(_ref18) {\n var account, permit2, inputTokenPushed;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n account = _ref18.account, permit2 = _ref18.permit2, inputTokenPushed = _ref18.inputTokenPushed;\n _context8.next = 3;\n return _getTransaction({\n exchange: exchange,\n blockchain: blockchain,\n pools: pools,\n path: path,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin,\n amounts: amounts,\n amountInInput: amountInInput,\n amountOutInput: amountOutInput,\n amountInMaxInput: amountInMaxInput,\n amountOutMinInput: amountOutMinInput,\n account: account,\n permit2: permit2,\n inputTokenPushed: inputTokenPushed\n });\n\n case 3:\n return _context8.abrupt(\"return\", _context8.sent);\n\n case 4:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n function getTransaction(_x9) {\n return _getTransaction2.apply(this, arguments);\n }\n\n return getTransaction;\n }()\n }));\n\n case 48:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, null, [[9, 21], [27, 38]]);\n }));\n\n return function (_x7) {\n return _ref16.apply(this, arguments);\n };\n }());\n};\n\nvar Exchange = /*#__PURE__*/function () {\n function Exchange() {\n _classCallCheck(this, Exchange);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n Object.assign.apply(Object, [this].concat(args));\n }\n\n _createClass(Exchange, [{\n key: \"route\",\n value: function () {\n var _route = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref19) {\n var blockchain, tokenIn, tokenOut, amountIn, amountOut, amountInMax, amountOutMin, slippage;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n blockchain = _ref19.blockchain, tokenIn = _ref19.tokenIn, tokenOut = _ref19.tokenOut, amountIn = _ref19.amountIn, amountOut = _ref19.amountOut, amountInMax = _ref19.amountInMax, amountOutMin = _ref19.amountOutMin, slippage = _ref19.slippage;\n\n if (!(tokenIn === tokenOut)) {\n _context10.next = 3;\n break;\n }\n\n return _context10.abrupt(\"return\", Promise.resolve());\n\n case 3:\n if (blockchain === undefined) {\n if (this.scope) {\n blockchain = this.scope;\n } else if (this.blockchains.length === 1) {\n blockchain = this.blockchains[0];\n }\n }\n\n preflight({\n blockchain: blockchain,\n exchange: this,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountOut: amountOut,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n _context10.t0 = route$1;\n _context10.t1 = _objectSpread;\n _context10.t2 = _objectSpread;\n _context10.t3 = {};\n _context10.next = 11;\n return fixRouteParams({\n blockchain: blockchain,\n exchange: this,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountOut: amountOut,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 11:\n _context10.t4 = _context10.sent;\n _context10.t5 = (0, _context10.t2)(_context10.t3, _context10.t4);\n _context10.t6 = {};\n _context10.t7 = {\n blockchain: blockchain,\n findPath: this.findPath,\n getAmounts: this.getAmounts,\n getPrep: this.getPrep,\n getTransaction: this.getTransaction,\n slippage: slippage\n };\n _context10.t8 = (0, _context10.t1)(_context10.t5, _context10.t6, _context10.t7);\n _context10.next = 18;\n return (0, _context10.t0)(_context10.t8);\n\n case 18:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 19:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function route(_x10) {\n return _route.apply(this, arguments);\n }\n\n return route;\n }()\n }]);\n\n return Exchange;\n}();\n\nfunction _optionalChain$5(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value2;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_value2 = value).call.apply(_value2, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n} // Replaces 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE with the wrapped token and implies wrapping.\n//\n// We keep 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE internally\n// to be able to differentiate between ETH<>Token and WETH<>Token swaps\n// as they are not the same!\n//\n\n\nvar getExchangePath$4 = function getExchangePath$4(_ref20) {\n var blockchain = _ref20.blockchain,\n exchange = _ref20.exchange,\n path = _ref20.path;\n\n if (!path) {\n return;\n }\n\n var exchangePath = path.map(function (token, index) {\n if (token === Blockchains[blockchain].currency.address && path[index + 1] != Blockchains[blockchain].wrapped.address && path[index - 1] != Blockchains[blockchain].wrapped.address) {\n return Blockchains[blockchain].wrapped.address;\n } else {\n return token;\n }\n });\n\n if (exchangePath[0] == Blockchains[blockchain].currency.address && exchangePath[1] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(0, 1);\n } else if (exchangePath[exchangePath.length - 1] == Blockchains[blockchain].currency.address && exchangePath[exchangePath.length - 2] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(exchangePath.length - 1, 1);\n }\n\n return exchangePath;\n};\n\nvar minReserveRequirements = function minReserveRequirements(_ref21) {\n var reserves = _ref21.reserves,\n min = _ref21.min,\n token = _ref21.token,\n token0 = _ref21.token0,\n token1 = _ref21.token1,\n decimals = _ref21.decimals;\n\n if (token0.toLowerCase() == token.toLowerCase()) {\n return reserves[0].gte(ethers.utils.parseUnits(min.toString(), decimals));\n } else if (token1.toLowerCase() == token.toLowerCase()) {\n return reserves[1].gte(ethers.utils.parseUnits(min.toString(), decimals));\n } else {\n return false;\n }\n};\n\nvar pathExists$5 = /*#__PURE__*/function () {\n var _ref23 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(_ref22) {\n var blockchain, exchange, path, exchangePath, pair, _yield$Promise$all, _yield$Promise$all2, reserves, token0, token1, address, token, decimals;\n\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n blockchain = _ref22.blockchain, exchange = _ref22.exchange, path = _ref22.path;\n exchangePath = getExchangePath$4({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n });\n\n if (!(!exchangePath || exchangePath.length === 1)) {\n _context11.next = 4;\n break;\n }\n\n return _context11.abrupt(\"return\", false);\n\n case 4:\n _context11.prev = 4;\n _context11.next = 7;\n return request({\n blockchain: blockchain,\n address: exchange[blockchain].factory.address,\n method: 'getPair',\n api: exchange[blockchain].factory.api,\n cache: 3600000,\n params: getExchangePath$4({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n })\n });\n\n case 7:\n pair = _context11.sent;\n\n if (!(!pair || pair == Blockchains[blockchain].zero)) {\n _context11.next = 10;\n break;\n }\n\n return _context11.abrupt(\"return\", false);\n\n case 10:\n _context11.next = 12;\n return Promise.all([request({\n blockchain: blockchain,\n address: pair,\n method: 'getReserves',\n api: exchange[blockchain].pair.api,\n cache: 3600000\n }), request({\n blockchain: blockchain,\n address: pair,\n method: 'token0',\n api: exchange[blockchain].pair.api,\n cache: 3600000\n }), request({\n blockchain: blockchain,\n address: pair,\n method: 'token1',\n api: exchange[blockchain].pair.api,\n cache: 3600000\n })]);\n\n case 12:\n _yield$Promise$all = _context11.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);\n reserves = _yield$Promise$all2[0];\n token0 = _yield$Promise$all2[1];\n token1 = _yield$Promise$all2[2];\n\n if (!exchangePath.includes(Blockchains[blockchain].wrapped.address)) {\n _context11.next = 21;\n break;\n }\n\n return _context11.abrupt(\"return\", minReserveRequirements({\n min: 1,\n token: Blockchains[blockchain].wrapped.address,\n decimals: Blockchains[blockchain].currency.decimals,\n reserves: reserves,\n token0: token0,\n token1: token1\n }));\n\n case 21:\n if (!path.find(function (step) {\n return Blockchains[blockchain].stables.usd.includes(step);\n })) {\n _context11.next = 30;\n break;\n }\n\n address = path.find(function (step) {\n return Blockchains[blockchain].stables.usd.includes(step);\n });\n token = new Token({\n blockchain: blockchain,\n address: address\n });\n _context11.next = 26;\n return token.decimals();\n\n case 26:\n decimals = _context11.sent;\n return _context11.abrupt(\"return\", minReserveRequirements({\n min: 1000,\n token: address,\n decimals: decimals,\n reserves: reserves,\n token0: token0,\n token1: token1\n }));\n\n case 30:\n return _context11.abrupt(\"return\", true);\n\n case 31:\n _context11.next = 37;\n break;\n\n case 33:\n _context11.prev = 33;\n _context11.t0 = _context11[\"catch\"](4);\n console.log('e', _context11.t0);\n return _context11.abrupt(\"return\", false);\n\n case 37:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, null, [[4, 33]]);\n }));\n\n return function pathExists$5(_x11) {\n return _ref23.apply(this, arguments);\n };\n}();\n\nvar findPath$5 = /*#__PURE__*/function () {\n var _ref25 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref24) {\n var blockchain, exchange, tokenIn, tokenOut, path, USD, _USD, _USD2;\n\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n blockchain = _ref24.blockchain, exchange = _ref24.exchange, tokenIn = _ref24.tokenIn, tokenOut = _ref24.tokenOut;\n\n if (!([tokenIn, tokenOut].includes(Blockchains[blockchain].currency.address) && [tokenIn, tokenOut].includes(Blockchains[blockchain].wrapped.address))) {\n _context15.next = 3;\n break;\n }\n\n return _context15.abrupt(\"return\", {\n path: undefined,\n exchangePath: undefined\n });\n\n case 3:\n _context15.next = 5;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [tokenIn, tokenOut]\n });\n\n case 5:\n if (!_context15.sent) {\n _context15.next = 9;\n break;\n }\n\n // direct path\n path = [tokenIn, tokenOut];\n _context15.next = 76;\n break;\n\n case 9:\n _context15.t2 = tokenIn != Blockchains[blockchain].wrapped.address;\n\n if (!_context15.t2) {\n _context15.next = 14;\n break;\n }\n\n _context15.next = 13;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [tokenIn, Blockchains[blockchain].wrapped.address]\n });\n\n case 13:\n _context15.t2 = _context15.sent;\n\n case 14:\n _context15.t1 = _context15.t2;\n\n if (!_context15.t1) {\n _context15.next = 17;\n break;\n }\n\n _context15.t1 = tokenOut != Blockchains[blockchain].wrapped.address;\n\n case 17:\n _context15.t0 = _context15.t1;\n\n if (!_context15.t0) {\n _context15.next = 22;\n break;\n }\n\n _context15.next = 21;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [tokenOut, Blockchains[blockchain].wrapped.address]\n });\n\n case 21:\n _context15.t0 = _context15.sent;\n\n case 22:\n if (!_context15.t0) {\n _context15.next = 26;\n break;\n }\n\n // path via WRAPPED\n path = [tokenIn, Blockchains[blockchain].wrapped.address, tokenOut];\n _context15.next = 76;\n break;\n\n case 26:\n _context15.t5 = !Blockchains[blockchain].stables.usd.includes(tokenIn);\n\n if (!_context15.t5) {\n _context15.next = 31;\n break;\n }\n\n _context15.next = 30;\n return Promise.all(Blockchains[blockchain].stables.usd.map(function (stable) {\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [tokenIn, stable]\n });\n }));\n\n case 30:\n _context15.t5 = _context15.sent.filter(Boolean).length;\n\n case 31:\n _context15.t4 = _context15.t5;\n\n if (!_context15.t4) {\n _context15.next = 34;\n break;\n }\n\n _context15.t4 = tokenOut != Blockchains[blockchain].wrapped.address;\n\n case 34:\n _context15.t3 = _context15.t4;\n\n if (!_context15.t3) {\n _context15.next = 39;\n break;\n }\n\n _context15.next = 38;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [Blockchains[blockchain].wrapped.address, tokenOut]\n });\n\n case 38:\n _context15.t3 = _context15.sent;\n\n case 39:\n if (!_context15.t3) {\n _context15.next = 46;\n break;\n }\n\n _context15.next = 42;\n return Promise.all(Blockchains[blockchain].stables.usd.map( /*#__PURE__*/function () {\n var _ref26 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(stable) {\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [tokenIn, stable]\n });\n\n case 2:\n if (!_context12.sent) {\n _context12.next = 6;\n break;\n }\n\n _context12.t0 = stable;\n _context12.next = 7;\n break;\n\n case 6:\n _context12.t0 = undefined;\n\n case 7:\n return _context12.abrupt(\"return\", _context12.t0);\n\n case 8:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n\n return function (_x13) {\n return _ref26.apply(this, arguments);\n };\n }()));\n\n case 42:\n USD = _context15.sent.find(Boolean);\n path = [tokenIn, USD, Blockchains[blockchain].wrapped.address, tokenOut];\n _context15.next = 76;\n break;\n\n case 46:\n _context15.t8 = tokenIn != Blockchains[blockchain].wrapped.address;\n\n if (!_context15.t8) {\n _context15.next = 51;\n break;\n }\n\n _context15.next = 50;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [tokenIn, Blockchains[blockchain].wrapped.address]\n });\n\n case 50:\n _context15.t8 = _context15.sent;\n\n case 51:\n _context15.t7 = _context15.t8;\n\n if (!_context15.t7) {\n _context15.next = 54;\n break;\n }\n\n _context15.t7 = !Blockchains[blockchain].stables.usd.includes(tokenOut);\n\n case 54:\n _context15.t6 = _context15.t7;\n\n if (!_context15.t6) {\n _context15.next = 59;\n break;\n }\n\n _context15.next = 58;\n return Promise.all(Blockchains[blockchain].stables.usd.map(function (stable) {\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [stable, tokenOut]\n });\n }));\n\n case 58:\n _context15.t6 = _context15.sent.filter(Boolean).length;\n\n case 59:\n if (!_context15.t6) {\n _context15.next = 66;\n break;\n }\n\n _context15.next = 62;\n return Promise.all(Blockchains[blockchain].stables.usd.map( /*#__PURE__*/function () {\n var _ref27 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(stable) {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [stable, tokenOut]\n });\n\n case 2:\n if (!_context13.sent) {\n _context13.next = 6;\n break;\n }\n\n _context13.t0 = stable;\n _context13.next = 7;\n break;\n\n case 6:\n _context13.t0 = undefined;\n\n case 7:\n return _context13.abrupt(\"return\", _context13.t0);\n\n case 8:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n return function (_x14) {\n return _ref27.apply(this, arguments);\n };\n }()));\n\n case 62:\n _USD = _context15.sent.find(Boolean);\n path = [tokenIn, Blockchains[blockchain].wrapped.address, _USD, tokenOut];\n _context15.next = 76;\n break;\n\n case 66:\n _context15.t9 = tokenIn != Blockchains[blockchain].wrapped.address && tokenIn === Blockchains[blockchain].currency.address && !Blockchains[blockchain].stables.usd.includes(tokenOut);\n\n if (!_context15.t9) {\n _context15.next = 71;\n break;\n }\n\n _context15.next = 70;\n return Promise.all(Blockchains[blockchain].stables.usd.map(function (stable) {\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [stable, tokenOut]\n });\n }));\n\n case 70:\n _context15.t9 = _context15.sent.filter(Boolean).length;\n\n case 71:\n if (!_context15.t9) {\n _context15.next = 76;\n break;\n }\n\n _context15.next = 74;\n return Promise.all(Blockchains[blockchain].stables.usd.map( /*#__PURE__*/function () {\n var _ref28 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(stable) {\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.next = 2;\n return pathExists$5({\n blockchain: blockchain,\n exchange: exchange,\n path: [stable, tokenOut]\n });\n\n case 2:\n if (!_context14.sent) {\n _context14.next = 6;\n break;\n }\n\n _context14.t0 = stable;\n _context14.next = 7;\n break;\n\n case 6:\n _context14.t0 = undefined;\n\n case 7:\n return _context14.abrupt(\"return\", _context14.t0);\n\n case 8:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function (_x15) {\n return _ref28.apply(this, arguments);\n };\n }()));\n\n case 74:\n _USD2 = _context15.sent.find(Boolean);\n path = [tokenIn, _USD2, tokenOut];\n\n case 76:\n // Add WRAPPED to route path if things start or end with NATIVE\n // because that actually reflects how things are routed in reality:\n if (_optionalChain$5([path, 'optionalAccess', function (_) {\n return _.length;\n }]) && path[0] == Blockchains[blockchain].currency.address) {\n path.splice(1, 0, Blockchains[blockchain].wrapped.address);\n } else if (_optionalChain$5([path, 'optionalAccess', function (_2) {\n return _2.length;\n }]) && path[path.length - 1] == Blockchains[blockchain].currency.address) {\n path.splice(path.length - 1, 0, Blockchains[blockchain].wrapped.address);\n }\n\n return _context15.abrupt(\"return\", {\n path: path,\n exchangePath: getExchangePath$4({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n })\n });\n\n case 78:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n\n return function findPath$5(_x12) {\n return _ref25.apply(this, arguments);\n };\n}();\n\nvar getAmountOut$3 = function getAmountOut$3(_ref29) {\n var blockchain = _ref29.blockchain,\n exchange = _ref29.exchange,\n path = _ref29.path,\n amountIn = _ref29.amountIn,\n tokenIn = _ref29.tokenIn,\n tokenOut = _ref29.tokenOut;\n return new Promise(function (resolve) {\n request({\n blockchain: blockchain,\n address: exchange[blockchain].router.address,\n method: 'getAmountsOut',\n api: exchange[blockchain].router.api,\n params: {\n amountIn: amountIn,\n path: getExchangePath$4({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n })\n }\n }).then(function (amountsOut) {\n resolve(amountsOut[amountsOut.length - 1]);\n }).catch(function () {\n return resolve();\n });\n });\n};\n\nvar getAmountIn$3 = function getAmountIn$3(_ref30) {\n var blockchain = _ref30.blockchain,\n exchange = _ref30.exchange,\n path = _ref30.path,\n amountOut = _ref30.amountOut,\n block = _ref30.block;\n return new Promise(function (resolve) {\n request({\n blockchain: blockchain,\n address: exchange[blockchain].router.address,\n method: 'getAmountsIn',\n api: exchange[blockchain].router.api,\n params: {\n amountOut: amountOut,\n path: getExchangePath$4({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n })\n },\n block: block\n }).then(function (amountsIn) {\n return resolve(amountsIn[0]);\n }).catch(function () {\n return resolve();\n });\n });\n};\n\nvar getAmounts$5 = /*#__PURE__*/function () {\n var _ref32 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(_ref31) {\n var blockchain, exchange, path, block, tokenIn, tokenOut, amountOut, amountIn, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n blockchain = _ref31.blockchain, exchange = _ref31.exchange, path = _ref31.path, block = _ref31.block, tokenIn = _ref31.tokenIn, tokenOut = _ref31.tokenOut, amountOut = _ref31.amountOut, amountIn = _ref31.amountIn, amountInMax = _ref31.amountInMax, amountOutMin = _ref31.amountOutMin;\n\n if (!amountOut) {\n _context16.next = 12;\n break;\n }\n\n _context16.next = 4;\n return getAmountIn$3({\n blockchain: blockchain,\n exchange: exchange,\n block: block,\n path: path,\n amountOut: amountOut,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 4:\n amountIn = _context16.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context16.next = 9;\n break;\n }\n\n return _context16.abrupt(\"return\", {});\n\n case 9:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 10:\n _context16.next = 43;\n break;\n\n case 12:\n if (!amountIn) {\n _context16.next = 23;\n break;\n }\n\n _context16.next = 15;\n return getAmountOut$3({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n amountIn: amountIn,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 15:\n amountOut = _context16.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context16.next = 20;\n break;\n }\n\n return _context16.abrupt(\"return\", {});\n\n case 20:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 21:\n _context16.next = 43;\n break;\n\n case 23:\n if (!amountOutMin) {\n _context16.next = 34;\n break;\n }\n\n _context16.next = 26;\n return getAmountIn$3({\n blockchain: blockchain,\n exchange: exchange,\n block: block,\n path: path,\n amountOut: amountOutMin,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 26:\n amountIn = _context16.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context16.next = 31;\n break;\n }\n\n return _context16.abrupt(\"return\", {});\n\n case 31:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 32:\n _context16.next = 43;\n break;\n\n case 34:\n if (!amountInMax) {\n _context16.next = 43;\n break;\n }\n\n _context16.next = 37;\n return getAmountOut$3({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n amountIn: amountInMax,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 37:\n amountOut = _context16.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context16.next = 42;\n break;\n }\n\n return _context16.abrupt(\"return\", {});\n\n case 42:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 43:\n return _context16.abrupt(\"return\", {\n amountOut: amountOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 44:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16);\n }));\n\n return function getAmounts$5(_x16) {\n return _ref32.apply(this, arguments);\n };\n}();\n\nvar getPrep$3 = /*#__PURE__*/function () {\n var _ref34 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(_ref33) {\n var exchange, blockchain, tokenIn, amountIn, account, allowance, transaction;\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n exchange = _ref33.exchange, blockchain = _ref33.blockchain, tokenIn = _ref33.tokenIn, amountIn = _ref33.amountIn, account = _ref33.account;\n\n if (!(tokenIn === Blockchains[blockchain].currency.address)) {\n _context17.next = 3;\n break;\n }\n\n return _context17.abrupt(\"return\");\n\n case 3:\n _context17.next = 5;\n return request({\n blockchain: blockchain,\n address: tokenIn,\n method: 'allowance',\n api: Token[blockchain]['20'],\n params: [account, exchange[blockchain].router.address]\n });\n\n case 5:\n allowance = _context17.sent;\n\n if (!allowance.gte(amountIn)) {\n _context17.next = 8;\n break;\n }\n\n return _context17.abrupt(\"return\");\n\n case 8:\n transaction = {\n blockchain: blockchain,\n from: account,\n to: tokenIn,\n api: Token[blockchain]['20'],\n method: 'approve',\n params: [exchange[blockchain].router.address, amountIn.sub(allowance)]\n };\n return _context17.abrupt(\"return\", {\n transaction: transaction\n });\n\n case 10:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n\n return function getPrep$3(_x17) {\n return _ref34.apply(this, arguments);\n };\n}();\n\nvar getTransaction$5 = function getTransaction$5(_ref35) {\n var exchange = _ref35.exchange,\n blockchain = _ref35.blockchain,\n path = _ref35.path,\n amountIn = _ref35.amountIn,\n amountInMax = _ref35.amountInMax,\n amountOut = _ref35.amountOut,\n amountOutMin = _ref35.amountOutMin,\n amountInInput = _ref35.amountInInput,\n amountOutInput = _ref35.amountOutInput,\n amountInMaxInput = _ref35.amountInMaxInput,\n amountOutMinInput = _ref35.amountOutMinInput,\n account = _ref35.account;\n var transaction = {\n blockchain: blockchain,\n from: account,\n to: exchange[blockchain].router.address,\n api: exchange[blockchain].router.api\n };\n\n if (path[0] === Blockchains[blockchain].currency.address) {\n if (amountInInput || amountOutMinInput) {\n transaction.method = 'swapExactETHForTokens';\n transaction.value = amountIn.toString();\n transaction.params = {\n amountOutMin: amountOutMin.toString()\n };\n } else if (amountOutInput || amountInMaxInput) {\n transaction.method = 'swapETHForExactTokens';\n transaction.value = amountInMax.toString();\n transaction.params = {\n amountOut: amountOut.toString()\n };\n }\n } else if (path[path.length - 1] === Blockchains[blockchain].currency.address) {\n if (amountInInput || amountOutMinInput) {\n transaction.method = 'swapExactTokensForETH';\n transaction.params = {\n amountIn: amountIn.toString(),\n amountOutMin: amountOutMin.toString()\n };\n } else if (amountOutInput || amountInMaxInput) {\n transaction.method = 'swapTokensForExactETH';\n transaction.params = {\n amountInMax: amountInMax.toString(),\n amountOut: amountOut.toString()\n };\n }\n } else {\n if (amountInInput || amountOutMinInput) {\n transaction.method = 'swapExactTokensForTokens';\n transaction.params = {\n amountIn: amountIn.toString(),\n amountOutMin: amountOutMin.toString()\n };\n } else if (amountOutInput || amountInMaxInput) {\n transaction.method = 'swapTokensForExactTokens';\n transaction.params = {\n amountInMax: amountInMax.toString(),\n amountOut: amountOut.toString()\n };\n }\n }\n\n transaction.params = Object.assign({}, transaction.params, {\n path: getExchangePath$4({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n }),\n to: account,\n deadline: Math.round(Date.now() / 1000) + 60 * 60 * 24 // 24 hours\n\n });\n return transaction;\n};\n\nvar ROUTER$3 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_WETH\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"WETH\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountADesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountBDesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountAMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountBMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"addLiquidity\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountA\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountB\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenDesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETHMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"addLiquidityETH\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountToken\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETH\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserveIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserveOut\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getAmountIn\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserveIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserveOut\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getAmountOut\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }],\n \"name\": \"getAmountsIn\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }],\n \"name\": \"getAmountsOut\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountA\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserveA\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserveB\",\n \"type\": \"uint256\"\n }],\n \"name\": \"quote\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountB\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountAMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountBMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"removeLiquidity\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountA\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountB\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETHMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"removeLiquidityETH\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountToken\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETH\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETHMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"removeLiquidityETHSupportingFeeOnTransferTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountETH\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETHMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"approveMax\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"removeLiquidityETHWithPermit\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountToken\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETH\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountETHMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"approveMax\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountETH\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountAMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountBMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"approveMax\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"removeLiquidityWithPermit\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountA\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountB\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapETHForExactTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactETHForTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactETHForTokensSupportingFeeOnTransferTokens\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForETH\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForETHSupportingFeeOnTransferTokens\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapTokensForExactETH\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapTokensForExactTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n}];\nvar FACTORY$3 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_feeToSetter\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"name\": \"PairCreated\",\n \"type\": \"event\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"name\": \"allPairs\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"allPairsLength\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }],\n \"name\": \"createPair\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"feeTo\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"feeToSetter\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"getPair\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_feeTo\",\n \"type\": \"address\"\n }],\n \"name\": \"setFeeTo\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_feeToSetter\",\n \"type\": \"address\"\n }],\n \"name\": \"setFeeToSetter\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar PAIR$1 = [{\n \"inputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Approval\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"Burn\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Mint\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0In\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1In\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0Out\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1Out\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"Swap\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint112\",\n \"name\": \"reserve0\",\n \"type\": \"uint112\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint112\",\n \"name\": \"reserve1\",\n \"type\": \"uint112\"\n }],\n \"name\": \"Sync\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Transfer\",\n \"type\": \"event\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"MINIMUM_LIQUIDITY\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"PERMIT_TYPEHASH\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"allowance\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"approve\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"balanceOf\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"burn\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [{\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"getReserves\",\n \"outputs\": [{\n \"internalType\": \"uint112\",\n \"name\": \"_reserve0\",\n \"type\": \"uint112\"\n }, {\n \"internalType\": \"uint112\",\n \"name\": \"_reserve1\",\n \"type\": \"uint112\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"_blockTimestampLast\",\n \"type\": \"uint32\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_token0\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_token1\",\n \"type\": \"address\"\n }],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"kLast\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"mint\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"liquidity\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"nonces\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"permit\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"price0CumulativeLast\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"price1CumulativeLast\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"skim\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount0Out\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1Out\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"swap\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [],\n \"name\": \"sync\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"token0\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"token1\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"transfer\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar UniswapV2 = {\n findPath: findPath$5,\n pathExists: pathExists$5,\n getAmounts: getAmounts$5,\n getPrep: getPrep$3,\n getTransaction: getTransaction$5,\n ROUTER: ROUTER$3,\n FACTORY: FACTORY$3,\n PAIR: PAIR$1\n};\nvar exchange$h = {\n name: 'honeyswap',\n label: 'Honeyswap',\n logo: 'data:image/png;base64,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',\n protocol: 'uniswap_v2',\n slippage: true,\n blockchains: ['gnosis'],\n gnosis: {\n router: {\n address: '0x1C232F01118CB8B424793ae03F870aa7D0ac7f77',\n api: UniswapV2.ROUTER\n },\n factory: {\n address: '0xA818b4F111Ccac7AA31D0BCc0806d64F2E0737D7',\n api: UniswapV2.FACTORY\n },\n pair: {\n api: UniswapV2.PAIR\n }\n }\n};\n\nvar honeyswap = function honeyswap(scope) {\n return new Exchange(Object.assign(exchange$h, {\n scope: scope,\n findPath: function findPath(args) {\n return UniswapV2.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$h\n }));\n },\n pathExists: function pathExists(args) {\n return UniswapV2.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$h\n }));\n },\n getAmounts: function getAmounts(args) {\n return UniswapV2.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$h\n }));\n },\n getPrep: function getPrep(args) {\n return UniswapV2.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$h\n }));\n },\n getTransaction: function getTransaction(args) {\n return UniswapV2.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$h\n }));\n }\n }));\n};\n\nvar MAX_SQRT_PRICE = \"79226673515401279992447579055\";\nvar MIN_SQRT_PRICE = \"4295048016\";\nvar BIT_PRECISION = 14;\nvar LOG_B_2_X32 = \"59543866431248\";\nvar LOG_B_P_ERR_MARGIN_LOWER_X64 = \"184467440737095516\";\nvar LOG_B_P_ERR_MARGIN_UPPER_X64 = \"15793534762490258745\";\n\nvar toX64 = function toX64(num) {\n return new BN(num.mul(Decimal.pow(2, 64)).floor().toFixed());\n};\n\nvar fromX64 = function fromX64(num) {\n return new Decimal(num.toString()).mul(Decimal.pow(2, -64));\n};\n\nvar getInitializableTickIndex = function getInitializableTickIndex(tickIndex, tickSpacing) {\n return tickIndex - tickIndex % tickSpacing;\n};\n\nvar invertTick = function invertTick(tick) {\n return -tick;\n};\n/**\n * A collection of utility functions to convert between price, tickIndex and sqrtPrice.\n *\n * @category Whirlpool Utils\n */\n\n\nvar PriceMath = /*#__PURE__*/function () {\n function PriceMath() {\n _classCallCheck(this, PriceMath);\n }\n\n _createClass(PriceMath, null, [{\n key: \"priceToSqrtPriceX64\",\n value: function priceToSqrtPriceX64(price, decimalsA, decimalsB) {\n return toX64(price.mul(Decimal.pow(10, decimalsB - decimalsA)).sqrt());\n }\n }, {\n key: \"sqrtPriceX64ToPrice\",\n value: function sqrtPriceX64ToPrice(sqrtPriceX64, decimalsA, decimalsB) {\n return fromX64(sqrtPriceX64).pow(2).mul(Decimal.pow(10, decimalsA - decimalsB));\n }\n /**\n * @param tickIndex\n * @returns\n */\n\n }, {\n key: \"tickIndexToSqrtPriceX64\",\n value: function tickIndexToSqrtPriceX64(tickIndex) {\n if (tickIndex > 0) {\n return new BN(tickIndexToSqrtPricePositive(tickIndex));\n } else {\n return new BN(tickIndexToSqrtPriceNegative(tickIndex));\n }\n }\n /**\n *\n * @param sqrtPriceX64\n * @returns\n */\n\n }, {\n key: \"sqrtPriceX64ToTickIndex\",\n value: function sqrtPriceX64ToTickIndex(sqrtPriceX64) {\n if (sqrtPriceX64.gt(new BN(MAX_SQRT_PRICE)) || sqrtPriceX64.lt(new BN(MIN_SQRT_PRICE))) {\n throw new Error(\"Provided sqrtPrice is not within the supported sqrtPrice range.\");\n }\n\n var msb = sqrtPriceX64.bitLength() - 1;\n var adjustedMsb = new BN(msb - 64);\n var log2pIntegerX32 = signedShiftLeft(adjustedMsb, 32, 128);\n var bit = new BN(\"8000000000000000\", \"hex\");\n var precision = 0;\n var log2pFractionX64 = new BN(0);\n var r = msb >= 64 ? sqrtPriceX64.shrn(msb - 63) : sqrtPriceX64.shln(63 - msb);\n\n while (bit.gt(new BN(0)) && precision < BIT_PRECISION) {\n r = r.mul(r);\n var rMoreThanTwo = r.shrn(127);\n r = r.shrn(63 + rMoreThanTwo.toNumber());\n log2pFractionX64 = log2pFractionX64.add(bit.mul(rMoreThanTwo));\n bit = bit.shrn(1);\n precision += 1;\n }\n\n var log2pFractionX32 = log2pFractionX64.shrn(32);\n var log2pX32 = log2pIntegerX32.add(log2pFractionX32);\n var logbpX64 = log2pX32.mul(new BN(LOG_B_2_X32));\n var tickLow = signedShiftRight(logbpX64.sub(new BN(LOG_B_P_ERR_MARGIN_LOWER_X64)), 64, 128).toNumber();\n var tickHigh = signedShiftRight(logbpX64.add(new BN(LOG_B_P_ERR_MARGIN_UPPER_X64)), 64, 128).toNumber();\n\n if (tickLow == tickHigh) {\n return tickLow;\n } else {\n var derivedTickHighSqrtPriceX64 = PriceMath.tickIndexToSqrtPriceX64(tickHigh);\n\n if (derivedTickHighSqrtPriceX64.lte(sqrtPriceX64)) {\n return tickHigh;\n } else {\n return tickLow;\n }\n }\n }\n }, {\n key: \"tickIndexToPrice\",\n value: function tickIndexToPrice(tickIndex, decimalsA, decimalsB) {\n return PriceMath.sqrtPriceX64ToPrice(PriceMath.tickIndexToSqrtPriceX64(tickIndex), decimalsA, decimalsB);\n }\n }, {\n key: \"priceToTickIndex\",\n value: function priceToTickIndex(price, decimalsA, decimalsB) {\n return PriceMath.sqrtPriceX64ToTickIndex(PriceMath.priceToSqrtPriceX64(price, decimalsA, decimalsB));\n }\n }, {\n key: \"priceToInitializableTickIndex\",\n value: function priceToInitializableTickIndex(price, decimalsA, decimalsB, tickSpacing) {\n return getInitializableTickIndex(PriceMath.priceToTickIndex(price, decimalsA, decimalsB), tickSpacing);\n }\n /**\n * Utility to invert the price Pb/Pa to Pa/Pb\n * @param price Pb / Pa\n * @param decimalsA Decimals of original token A (i.e. token A in the given Pb / Pa price)\n * @param decimalsB Decimals of original token B (i.e. token B in the given Pb / Pa price)\n * @returns inverted price, i.e. Pa / Pb\n */\n\n }, {\n key: \"invertPrice\",\n value: function invertPrice(price, decimalsA, decimalsB) {\n var tick = PriceMath.priceToTickIndex(price, decimalsA, decimalsB);\n var invTick = invertTick(tick);\n return PriceMath.tickIndexToPrice(invTick, decimalsB, decimalsA);\n }\n /**\n * Utility to invert the sqrtPriceX64 from X64 repr. of sqrt(Pb/Pa) to X64 repr. of sqrt(Pa/Pb)\n * @param sqrtPriceX64 X64 representation of sqrt(Pb / Pa)\n * @returns inverted sqrtPriceX64, i.e. X64 representation of sqrt(Pa / Pb)\n */\n\n }, {\n key: \"invertSqrtPriceX64\",\n value: function invertSqrtPriceX64(sqrtPriceX64) {\n var tick = PriceMath.sqrtPriceX64ToTickIndex(sqrtPriceX64);\n var invTick = invertTick(tick);\n return PriceMath.tickIndexToSqrtPriceX64(invTick);\n }\n }]);\n\n return PriceMath;\n}(); // Private Functions\n\n\nfunction tickIndexToSqrtPricePositive(tick) {\n var ratio;\n\n if ((tick & 1) != 0) {\n ratio = new BN(\"79232123823359799118286999567\");\n } else {\n ratio = new BN(\"79228162514264337593543950336\");\n }\n\n if ((tick & 2) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79236085330515764027303304731\")), 96, 256);\n }\n\n if ((tick & 4) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79244008939048815603706035061\")), 96, 256);\n }\n\n if ((tick & 8) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79259858533276714757314932305\")), 96, 256);\n }\n\n if ((tick & 16) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79291567232598584799939703904\")), 96, 256);\n }\n\n if ((tick & 32) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79355022692464371645785046466\")), 96, 256);\n }\n\n if ((tick & 64) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79482085999252804386437311141\")), 96, 256);\n }\n\n if ((tick & 128) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"79736823300114093921829183326\")), 96, 256);\n }\n\n if ((tick & 256) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"80248749790819932309965073892\")), 96, 256);\n }\n\n if ((tick & 512) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"81282483887344747381513967011\")), 96, 256);\n }\n\n if ((tick & 1024) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"83390072131320151908154831281\")), 96, 256);\n }\n\n if ((tick & 2048) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"87770609709833776024991924138\")), 96, 256);\n }\n\n if ((tick & 4096) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"97234110755111693312479820773\")), 96, 256);\n }\n\n if ((tick & 8192) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"119332217159966728226237229890\")), 96, 256);\n }\n\n if ((tick & 16384) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"179736315981702064433883588727\")), 96, 256);\n }\n\n if ((tick & 32768) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"407748233172238350107850275304\")), 96, 256);\n }\n\n if ((tick & 65536) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"2098478828474011932436660412517\")), 96, 256);\n }\n\n if ((tick & 131072) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"55581415166113811149459800483533\")), 96, 256);\n }\n\n if ((tick & 262144) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"38992368544603139932233054999993551\")), 96, 256);\n }\n\n return signedShiftRight(ratio, 32, 256);\n}\n\nfunction tickIndexToSqrtPriceNegative(tickIndex) {\n var tick = Math.abs(tickIndex);\n var ratio;\n\n if ((tick & 1) != 0) {\n ratio = new BN(\"18445821805675392311\");\n } else {\n ratio = new BN(\"18446744073709551616\");\n }\n\n if ((tick & 2) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18444899583751176498\")), 64, 256);\n }\n\n if ((tick & 4) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18443055278223354162\")), 64, 256);\n }\n\n if ((tick & 8) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18439367220385604838\")), 64, 256);\n }\n\n if ((tick & 16) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18431993317065449817\")), 64, 256);\n }\n\n if ((tick & 32) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18417254355718160513\")), 64, 256);\n }\n\n if ((tick & 64) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18387811781193591352\")), 64, 256);\n }\n\n if ((tick & 128) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18329067761203520168\")), 64, 256);\n }\n\n if ((tick & 256) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"18212142134806087854\")), 64, 256);\n }\n\n if ((tick & 512) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"17980523815641551639\")), 64, 256);\n }\n\n if ((tick & 1024) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"17526086738831147013\")), 64, 256);\n }\n\n if ((tick & 2048) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"16651378430235024244\")), 64, 256);\n }\n\n if ((tick & 4096) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"15030750278693429944\")), 64, 256);\n }\n\n if ((tick & 8192) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"12247334978882834399\")), 64, 256);\n }\n\n if ((tick & 16384) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"8131365268884726200\")), 64, 256);\n }\n\n if ((tick & 32768) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"3584323654723342297\")), 64, 256);\n }\n\n if ((tick & 65536) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"696457651847595233\")), 64, 256);\n }\n\n if ((tick & 131072) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"26294789957452057\")), 64, 256);\n }\n\n if ((tick & 262144) != 0) {\n ratio = signedShiftRight(ratio.mul(new BN(\"37481735321082\")), 64, 256);\n }\n\n return ratio;\n}\n\nfunction signedShiftLeft(n0, shiftBy, bitWidth) {\n var twosN0 = n0.toTwos(bitWidth).shln(shiftBy);\n twosN0.imaskn(bitWidth + 1);\n return twosN0.fromTwos(bitWidth);\n}\n\nfunction signedShiftRight(n0, shiftBy, bitWidth) {\n var twoN0 = n0.toTwos(bitWidth).shrn(shiftBy);\n twoN0.imaskn(bitWidth - shiftBy + 1);\n return twoN0.fromTwos(bitWidth - shiftBy);\n}\n\nvar PROTOCOL_FEE_RATE_MUL_VALUE = new BN(10000);\nvar FEE_RATE_MUL_VALUE = new BN(1000000);\nvar ZERO = new BN(0);\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar U64_MAX = TWO.pow(new BN(64)).sub(ONE);\n\nvar fromX64_BN = function fromX64_BN(num) {\n return num.div(new BN(2).pow(new BN(64)));\n};\n\nvar u64 = /*#__PURE__*/function (_BN) {\n _inherits(u64, _BN);\n\n var _super = _createSuper(u64);\n\n function u64() {\n _classCallCheck(this, u64);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(u64, [{\n key: \"toBuffer\",\n value:\n /**\n * Convert to Buffer representation\n */\n function toBuffer() {\n var a = _get(_getPrototypeOf(u64.prototype), \"toArray\", this).call(this).reverse();\n\n var b = buffer.Buffer.from(a);\n\n if (b.length === 8) {\n return b;\n }\n\n assert__default['default'](b.length < 8, 'u64 too large');\n var zeroPad = buffer.Buffer.alloc(8);\n b.copy(zeroPad);\n return zeroPad;\n }\n /**\n * Construct a u64 from Buffer representation\n */\n\n }], [{\n key: \"fromBuffer\",\n value: function fromBuffer(buffer) {\n assert__default['default'](buffer.length === 8, \"Invalid buffer length: \".concat(buffer.length));\n return new u64(_toConsumableArray(buffer).reverse().map(function (i) {\n return \"00\".concat(i.toString(16)).slice(-2);\n }).join(''), 16);\n }\n }]);\n\n return u64;\n}(BN);\n\nvar BitMath = /*#__PURE__*/function () {\n function BitMath() {\n _classCallCheck(this, BitMath);\n }\n\n _createClass(BitMath, null, [{\n key: \"mul\",\n value: function mul(n0, n1, limit) {\n var result = n0.mul(n1);\n\n if (this.isOverLimit(result, limit)) {\n throw new Error(\"Mul result higher than u\".concat(limit));\n }\n\n return result;\n }\n }, {\n key: \"mulDiv\",\n value: function mulDiv(n0, n1, d, limit) {\n return this.mulDivRoundUpIf(n0, n1, d, false, limit);\n }\n }, {\n key: \"mulDivRoundUp\",\n value: function mulDivRoundUp(n0, n1, d, limit) {\n return this.mulDivRoundUpIf(n0, n1, d, true, limit);\n }\n }, {\n key: \"mulDivRoundUpIf\",\n value: function mulDivRoundUpIf(n0, n1, d, roundUp, limit) {\n if (d.eq(ZERO)) {\n throw new Error(\"mulDiv denominator is zero\");\n }\n\n var p = this.mul(n0, n1, limit);\n var n = p.div(d);\n return roundUp && p.mod(d).gt(ZERO) ? n.add(ONE) : n;\n }\n }, {\n key: \"checked_mul_shift_right\",\n value: function checked_mul_shift_right(n0, n1, limit) {\n return this.checked_mul_shift_right_round_up_if(n0, n1, false, limit);\n }\n }, {\n key: \"checked_mul_shift_right_round_up_if\",\n value: function checked_mul_shift_right_round_up_if(n0, n1, roundUp, limit) {\n if (n0.eq(ZERO) || n1.eq(ZERO)) {\n return ZERO;\n }\n\n var p = this.mul(n0, n1, limit);\n\n if (this.isOverLimit(p, limit)) {\n throw new Error(\"MulShiftRight overflowed u\".concat(limit, \".\"));\n }\n\n var result = fromX64_BN(p);\n var shouldRound = roundUp && result.and(U64_MAX).gt(ZERO);\n\n if (shouldRound && result.eq(U64_MAX)) {\n throw new Error(\"MulShiftRight overflowed u\".concat(limit, \".\"));\n }\n\n return shouldRound ? result.add(ONE) : result;\n }\n }, {\n key: \"isOverLimit\",\n value: function isOverLimit(n0, limit) {\n var limitBN = TWO.pow(new BN(limit)).sub(ONE);\n return n0.gt(limitBN);\n }\n }, {\n key: \"divRoundUp\",\n value: function divRoundUp(n, d) {\n return this.divRoundUpIf(n, d, true);\n }\n }, {\n key: \"divRoundUpIf\",\n value: function divRoundUpIf(n, d, roundUp) {\n if (d.eq(ZERO)) {\n throw new Error(\"divRoundUpIf - divide by zero\");\n }\n\n var q = n.div(d);\n return roundUp && n.mod(d).gt(ZERO) ? q.add(ONE) : q;\n }\n }]);\n\n return BitMath;\n}();\n\nvar getNextSqrtPriceFromBRoundDown = function getNextSqrtPriceFromBRoundDown(sqrtPrice, currLiquidity, amount, amountSpecifiedIsInput) {\n var amountX64 = amount.shln(64);\n var delta = BitMath.divRoundUpIf(amountX64, currLiquidity, !amountSpecifiedIsInput);\n\n if (amountSpecifiedIsInput) {\n sqrtPrice = sqrtPrice.add(delta);\n } else {\n sqrtPrice = sqrtPrice.sub(delta);\n }\n\n return sqrtPrice;\n};\n\nvar getNextSqrtPriceFromARoundUp = function getNextSqrtPriceFromARoundUp(sqrtPrice, currLiquidity, amount, amountSpecifiedIsInput) {\n if (amount.eq(ZERO)) {\n return sqrtPrice;\n }\n\n var p = BitMath.mul(sqrtPrice, amount, 256);\n var numerator = BitMath.mul(currLiquidity, sqrtPrice, 256).shln(64);\n\n if (BitMath.isOverLimit(numerator, 256)) {\n throw new Error(\"getNextSqrtPriceFromARoundUp - numerator overflow u256\");\n }\n\n var currLiquidityShiftLeft = currLiquidity.shln(64);\n\n if (!amountSpecifiedIsInput && currLiquidityShiftLeft.lte(p)) {\n throw new Error(\"getNextSqrtPriceFromARoundUp - Unable to divide currLiquidityX64 by product\");\n }\n\n var denominator = amountSpecifiedIsInput ? currLiquidityShiftLeft.add(p) : currLiquidityShiftLeft.sub(p);\n var price = BitMath.divRoundUp(numerator, denominator);\n\n if (price.lt(new BN(MIN_SQRT_PRICE))) {\n throw new Error(\"getNextSqrtPriceFromARoundUp - price less than min sqrt price\");\n } else if (price.gt(new BN(MAX_SQRT_PRICE))) {\n throw new Error(\"getNextSqrtPriceFromARoundUp - price less than max sqrt price\");\n }\n\n return price;\n};\n\nvar getNextSqrtPrices = function getNextSqrtPrices(nextTick, sqrtPriceLimit, aToB) {\n var nextTickPrice = PriceMath.tickIndexToSqrtPriceX64(nextTick);\n var nextSqrtPriceLimit = aToB ? BN.max(sqrtPriceLimit, nextTickPrice) : BN.min(sqrtPriceLimit, nextTickPrice);\n return {\n nextTickPrice: nextTickPrice,\n nextSqrtPriceLimit: nextSqrtPriceLimit\n };\n};\n\nvar toIncreasingPriceOrder = function toIncreasingPriceOrder(sqrtPrice0, sqrtPrice1) {\n if (sqrtPrice0.gt(sqrtPrice1)) {\n return [sqrtPrice1, sqrtPrice0];\n } else {\n return [sqrtPrice0, sqrtPrice1];\n }\n};\n\nvar getAmountDeltaA = function getAmountDeltaA(currSqrtPrice, targetSqrtPrice, currLiquidity, roundUp) {\n var _toIncreasingPriceOrd = toIncreasingPriceOrder(currSqrtPrice, targetSqrtPrice),\n _toIncreasingPriceOrd2 = _slicedToArray(_toIncreasingPriceOrd, 2),\n sqrtPriceLower = _toIncreasingPriceOrd2[0],\n sqrtPriceUpper = _toIncreasingPriceOrd2[1];\n\n var sqrtPriceDiff = sqrtPriceUpper.sub(sqrtPriceLower);\n var numerator = currLiquidity.mul(sqrtPriceDiff).shln(64);\n var denominator = sqrtPriceLower.mul(sqrtPriceUpper);\n var quotient = numerator.div(denominator);\n var remainder = numerator.mod(denominator);\n var result = roundUp && !remainder.eq(ZERO) ? quotient.add(ONE) : quotient;\n\n if (result.gt(U64_MAX)) {\n throw new Error(\"Results larger than U64\");\n }\n\n return result;\n};\n\nvar getAmountDeltaB = function getAmountDeltaB(currSqrtPrice, targetSqrtPrice, currLiquidity, roundUp) {\n var _toIncreasingPriceOrd3 = toIncreasingPriceOrder(currSqrtPrice, targetSqrtPrice),\n _toIncreasingPriceOrd4 = _slicedToArray(_toIncreasingPriceOrd3, 2),\n sqrtPriceLower = _toIncreasingPriceOrd4[0],\n sqrtPriceUpper = _toIncreasingPriceOrd4[1];\n\n var sqrtPriceDiff = sqrtPriceUpper.sub(sqrtPriceLower);\n return BitMath.checked_mul_shift_right_round_up_if(currLiquidity, sqrtPriceDiff, roundUp, 128);\n};\n\nvar getNextSqrtPrice = function getNextSqrtPrice(sqrtPrice, currLiquidity, amount, amountSpecifiedIsInput, aToB) {\n if (amountSpecifiedIsInput === aToB) {\n return getNextSqrtPriceFromARoundUp(sqrtPrice, currLiquidity, amount, amountSpecifiedIsInput);\n } else {\n return getNextSqrtPriceFromBRoundDown(sqrtPrice, currLiquidity, amount, amountSpecifiedIsInput);\n }\n};\n\nvar getAmountUnfixedDelta = function getAmountUnfixedDelta(currSqrtPrice, targetSqrtPrice, currLiquidity, amountSpecifiedIsInput, aToB) {\n if (aToB === amountSpecifiedIsInput) {\n return getAmountDeltaB(currSqrtPrice, targetSqrtPrice, currLiquidity, !amountSpecifiedIsInput);\n } else {\n return getAmountDeltaA(currSqrtPrice, targetSqrtPrice, currLiquidity, !amountSpecifiedIsInput);\n }\n};\n\nvar getAmountFixedDelta = function getAmountFixedDelta(currSqrtPrice, targetSqrtPrice, currLiquidity, amountSpecifiedIsInput, aToB) {\n if (aToB === amountSpecifiedIsInput) {\n return getAmountDeltaA(currSqrtPrice, targetSqrtPrice, currLiquidity, amountSpecifiedIsInput);\n } else {\n return getAmountDeltaB(currSqrtPrice, targetSqrtPrice, currLiquidity, amountSpecifiedIsInput);\n }\n};\n\nvar computeSwapStep = function computeSwapStep(amountRemaining, feeRate, currLiquidity, currSqrtPrice, targetSqrtPrice, amountSpecifiedIsInput, aToB) {\n var amountFixedDelta = getAmountFixedDelta(currSqrtPrice, targetSqrtPrice, currLiquidity, amountSpecifiedIsInput, aToB);\n var amountCalc = amountRemaining;\n\n if (amountSpecifiedIsInput) {\n var result = BitMath.mulDiv(amountRemaining, FEE_RATE_MUL_VALUE.sub(new BN(feeRate)), FEE_RATE_MUL_VALUE, 128);\n amountCalc = result;\n }\n\n var nextSqrtPrice = amountCalc.gte(amountFixedDelta) ? targetSqrtPrice : getNextSqrtPrice(currSqrtPrice, currLiquidity, amountCalc, amountSpecifiedIsInput, aToB);\n var isMaxSwap = nextSqrtPrice.eq(targetSqrtPrice);\n var amountUnfixedDelta = getAmountUnfixedDelta(currSqrtPrice, nextSqrtPrice, currLiquidity, amountSpecifiedIsInput, aToB);\n\n if (!isMaxSwap) {\n amountFixedDelta = getAmountFixedDelta(currSqrtPrice, nextSqrtPrice, currLiquidity, amountSpecifiedIsInput, aToB);\n }\n\n var amountIn = amountSpecifiedIsInput ? amountFixedDelta : amountUnfixedDelta;\n var amountOut = amountSpecifiedIsInput ? amountUnfixedDelta : amountFixedDelta;\n\n if (!amountSpecifiedIsInput && amountOut.gt(amountRemaining)) {\n amountOut = amountRemaining;\n }\n\n var feeAmount;\n\n if (amountSpecifiedIsInput && !isMaxSwap) {\n feeAmount = amountRemaining.sub(amountIn);\n } else {\n var feeRateBN = new BN(feeRate);\n feeAmount = BitMath.mulDivRoundUp(amountIn, feeRateBN, FEE_RATE_MUL_VALUE.sub(feeRateBN), 128);\n }\n\n return {\n amountIn: amountIn,\n amountOut: amountOut,\n nextPrice: nextSqrtPrice,\n feeAmount: feeAmount\n };\n};\n\nvar calculateNextLiquidity = function calculateNextLiquidity(tickNetLiquidity, currLiquidity, aToB) {\n return aToB ? currLiquidity.sub(tickNetLiquidity) : currLiquidity.add(tickNetLiquidity);\n};\n\nvar calculateProtocolFee = function calculateProtocolFee(globalFee, protocolFeeRate) {\n return globalFee.mul(new u64(protocolFeeRate).div(PROTOCOL_FEE_RATE_MUL_VALUE));\n};\n\nvar calculateFees = function calculateFees(feeAmount, protocolFeeRate, currLiquidity, currProtocolFee, currFeeGrowthGlobalInput) {\n var nextProtocolFee = currProtocolFee;\n var nextFeeGrowthGlobalInput = currFeeGrowthGlobalInput;\n var globalFee = feeAmount;\n\n if (protocolFeeRate > 0) {\n var delta = calculateProtocolFee(globalFee, protocolFeeRate);\n globalFee = globalFee.sub(delta);\n nextProtocolFee = nextProtocolFee.add(currProtocolFee);\n }\n\n if (currLiquidity.gt(ZERO)) {\n var globalFeeIncrement = globalFee.shln(64).div(currLiquidity);\n nextFeeGrowthGlobalInput = nextFeeGrowthGlobalInput.add(globalFeeIncrement);\n }\n\n return {\n nextProtocolFee: nextProtocolFee,\n nextFeeGrowthGlobalInput: nextFeeGrowthGlobalInput\n };\n};\n\nvar compute = function compute(_ref36) {\n var tokenAmount = _ref36.tokenAmount,\n aToB = _ref36.aToB,\n freshWhirlpoolData = _ref36.freshWhirlpoolData,\n tickSequence = _ref36.tickSequence,\n sqrtPriceLimit = _ref36.sqrtPriceLimit,\n amountSpecifiedIsInput = _ref36.amountSpecifiedIsInput;\n var amountRemaining = tokenAmount;\n var amountCalculated = ZERO;\n var currSqrtPrice = freshWhirlpoolData.sqrtPrice;\n var currLiquidity = freshWhirlpoolData.liquidity;\n var currTickIndex = freshWhirlpoolData.tickCurrentIndex;\n var totalFeeAmount = ZERO;\n var feeRate = freshWhirlpoolData.feeRate;\n var protocolFeeRate = freshWhirlpoolData.protocolFeeRate;\n var currProtocolFee = new u64(0);\n var currFeeGrowthGlobalInput = aToB ? freshWhirlpoolData.feeGrowthGlobalA : freshWhirlpoolData.feeGrowthGlobalB;\n\n while (amountRemaining.gt(ZERO) && !sqrtPriceLimit.eq(currSqrtPrice)) {\n var _tickSequence$findNex = tickSequence.findNextInitializedTickIndex(currTickIndex),\n nextTickIndex = _tickSequence$findNex.nextIndex;\n\n var _getNextSqrtPrices = getNextSqrtPrices(nextTickIndex, sqrtPriceLimit, aToB),\n nextTickPrice = _getNextSqrtPrices.nextTickPrice,\n targetSqrtPrice = _getNextSqrtPrices.nextSqrtPriceLimit;\n\n var swapComputation = computeSwapStep(amountRemaining, feeRate, currLiquidity, currSqrtPrice, targetSqrtPrice, amountSpecifiedIsInput, aToB);\n totalFeeAmount = totalFeeAmount.add(swapComputation.feeAmount);\n\n if (amountSpecifiedIsInput) {\n amountRemaining = amountRemaining.sub(swapComputation.amountIn);\n amountRemaining = amountRemaining.sub(swapComputation.feeAmount);\n amountCalculated = amountCalculated.add(swapComputation.amountOut);\n } else {\n amountRemaining = amountRemaining.sub(swapComputation.amountOut);\n amountCalculated = amountCalculated.add(swapComputation.amountIn);\n amountCalculated = amountCalculated.add(swapComputation.feeAmount);\n }\n\n var _calculateFees = calculateFees(swapComputation.feeAmount, protocolFeeRate, currLiquidity, currProtocolFee, currFeeGrowthGlobalInput),\n nextProtocolFee = _calculateFees.nextProtocolFee,\n nextFeeGrowthGlobalInput = _calculateFees.nextFeeGrowthGlobalInput;\n\n currProtocolFee = nextProtocolFee;\n currFeeGrowthGlobalInput = nextFeeGrowthGlobalInput;\n\n if (swapComputation.nextPrice.eq(nextTickPrice)) {\n var nextTick = tickSequence.getTick(nextTickIndex);\n\n if (nextTick.initialized) {\n currLiquidity = calculateNextLiquidity(nextTick.liquidityNet, currLiquidity, aToB);\n }\n\n currTickIndex = aToB ? nextTickIndex - 1 : nextTickIndex;\n } else {\n currTickIndex = PriceMath.sqrtPriceX64ToTickIndex(swapComputation.nextPrice);\n }\n\n currSqrtPrice = swapComputation.nextPrice;\n }\n\n return amountCalculated;\n};\n\nvar WHIRLPOOL_REWARD_LAYOUT = struct([publicKey(\"mint\"), publicKey(\"vault\"), publicKey(\"authority\"), u128(\"emissionsPerSecondX64\"), u128(\"growthGlobalX64\")]);\nvar WHIRLPOOL_LAYOUT = struct([u64$1(\"anchorDiscriminator\"), publicKey(\"whirlpoolsConfig\"), seq(u8(), 1, \"whirlpoolBump\"), u16(\"tickSpacing\"), seq(u8(), 2, \"tickSpacingSeed\"), u16(\"feeRate\"), u16(\"protocolFeeRate\"), u128(\"liquidity\"), u128(\"sqrtPrice\"), i32(\"tickCurrentIndex\"), u64$1(\"protocolFeeOwedA\"), u64$1(\"protocolFeeOwedB\"), publicKey(\"tokenMintA\"), publicKey(\"tokenVaultA\"), u128(\"feeGrowthGlobalA\"), publicKey(\"tokenMintB\"), publicKey(\"tokenVaultB\"), u128(\"feeGrowthGlobalB\"), u64$1(\"rewardLastUpdatedTimestamp\"), seq(WHIRLPOOL_REWARD_LAYOUT, 3, \"rewardInfos\")]);\nvar TICK_LAYOUT = struct([bool(\"initialized\"), i128(\"liquidityNet\"), u128(\"liquidityGross\"), u128(\"feeGrowthOutsideA\"), u128(\"feeGrowthOutsideB\"), seq(u128(), 3, \"reward_growths_outside\")]);\nvar TICK_ARRAY_LAYOUT = struct([u64$1(\"anchorDiscriminator\"), i32(\"startTickIndex\"), seq(TICK_LAYOUT, 88, \"ticks\"), publicKey(\"whirlpool\")]);\nvar MAX_SWAP_TICK_ARRAYS = 3;\nvar MAX_TICK_INDEX = 443636; // i32\n\nvar MIN_TICK_INDEX = -443636; // i32\n\nvar TICK_ARRAY_SIZE = 88; // i32\n\nvar getStartTickIndex = function getStartTickIndex(tickIndex, tickSpacing, offset) {\n var realIndex = Math.floor(tickIndex / tickSpacing / TICK_ARRAY_SIZE);\n var startTickIndex = (realIndex + offset) * tickSpacing * TICK_ARRAY_SIZE;\n var ticksInArray = TICK_ARRAY_SIZE * tickSpacing;\n var minTickIndex = MIN_TICK_INDEX - (MIN_TICK_INDEX % ticksInArray + ticksInArray);\n\n if (startTickIndex < minTickIndex) {\n throw \"startTickIndex is too small - - \".concat(startTickIndex);\n }\n\n if (startTickIndex > MAX_TICK_INDEX) {\n throw \"startTickIndex is too large - \".concat(startTickIndex);\n }\n\n return startTickIndex;\n};\n\nvar getTickArrayAddresses = /*#__PURE__*/function () {\n var _ref38 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(_ref37) {\n var aToB, pool, tickSpacing, tickCurrentIndex, shift, offset, tickArrayAddresses, i, startIndex, pda;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n aToB = _ref37.aToB, pool = _ref37.pool, tickSpacing = _ref37.tickSpacing, tickCurrentIndex = _ref37.tickCurrentIndex;\n shift = aToB ? 0 : tickSpacing;\n offset = 0;\n tickArrayAddresses = [];\n i = 0;\n\n case 5:\n if (!(i < MAX_SWAP_TICK_ARRAYS)) {\n _context18.next = 22;\n break;\n }\n\n startIndex = void 0;\n _context18.prev = 7;\n startIndex = getStartTickIndex(tickCurrentIndex + shift, tickSpacing, offset);\n _context18.next = 14;\n break;\n\n case 11:\n _context18.prev = 11;\n _context18.t0 = _context18[\"catch\"](7);\n return _context18.abrupt(\"return\", tickArrayAddresses);\n\n case 14:\n _context18.next = 16;\n return PublicKey.findProgramAddress([Buffer.from('tick_array'), new PublicKey(pool.toString()).toBuffer(), Buffer.from(startIndex.toString())], new PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc'));\n\n case 16:\n pda = _context18.sent[0];\n tickArrayAddresses.push(pda);\n offset = aToB ? offset - 1 : offset + 1;\n\n case 19:\n i++;\n _context18.next = 5;\n break;\n\n case 22:\n return _context18.abrupt(\"return\", tickArrayAddresses);\n\n case 23:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, null, [[7, 11]]);\n }));\n\n return function getTickArrayAddresses(_x18) {\n return _ref38.apply(this, arguments);\n };\n}();\n\nvar getTickArrays = /*#__PURE__*/function () {\n var _ref40 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref39) {\n var pool, freshWhirlpoolData, aToB, tickArrayAddresses;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n pool = _ref39.pool, freshWhirlpoolData = _ref39.freshWhirlpoolData, aToB = _ref39.aToB;\n _context20.next = 3;\n return getTickArrayAddresses({\n aToB: aToB,\n pool: pool,\n tickSpacing: freshWhirlpoolData.tickSpacing,\n tickCurrentIndex: freshWhirlpoolData.tickCurrentIndex\n });\n\n case 3:\n tickArrayAddresses = _context20.sent;\n _context20.next = 6;\n return Promise.all(tickArrayAddresses.map( /*#__PURE__*/function () {\n var _ref41 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(address, index) {\n var data;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _context19.prev = 0;\n _context19.next = 3;\n return request({\n blockchain: 'solana',\n address: address.toString(),\n api: TICK_ARRAY_LAYOUT,\n cache: 10\n });\n\n case 3:\n data = _context19.sent;\n _context19.next = 8;\n break;\n\n case 6:\n _context19.prev = 6;\n _context19.t0 = _context19[\"catch\"](0);\n\n case 8:\n return _context19.abrupt(\"return\", {\n address: address,\n data: data\n });\n\n case 9:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, null, [[0, 6]]);\n }));\n\n return function (_x20, _x21) {\n return _ref41.apply(this, arguments);\n };\n }()));\n\n case 6:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 7:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20);\n }));\n\n return function getTickArrays(_x19) {\n return _ref40.apply(this, arguments);\n };\n}();\n\nvar TickArrayIndex = /*#__PURE__*/function () {\n function TickArrayIndex(arrayIndex, offsetIndex, tickSpacing) {\n _classCallCheck(this, TickArrayIndex);\n\n if (offsetIndex >= TICK_ARRAY_SIZE) {\n throw new Error(\"Invalid offsetIndex - value has to be smaller than TICK_ARRAY_SIZE\");\n }\n\n if (offsetIndex < 0) {\n throw new Error(\"Invalid offsetIndex - value is smaller than 0\");\n }\n\n if (tickSpacing < 0) {\n throw new Error(\"Invalid tickSpacing - value is less than 0\");\n }\n\n this.arrayIndex = arrayIndex;\n this.offsetIndex = offsetIndex;\n this.tickSpacing = tickSpacing;\n }\n\n _createClass(TickArrayIndex, [{\n key: \"toTickIndex\",\n value: function toTickIndex() {\n return this.arrayIndex * TICK_ARRAY_SIZE * this.tickSpacing + this.offsetIndex * this.tickSpacing;\n }\n }, {\n key: \"toNextInitializableTickIndex\",\n value: function toNextInitializableTickIndex() {\n return TickArrayIndex.fromTickIndex(this.toTickIndex() + this.tickSpacing, this.tickSpacing);\n }\n }, {\n key: \"toPrevInitializableTickIndex\",\n value: function toPrevInitializableTickIndex() {\n return TickArrayIndex.fromTickIndex(this.toTickIndex() - this.tickSpacing, this.tickSpacing);\n }\n }], [{\n key: \"fromTickIndex\",\n value: function fromTickIndex(index, tickSpacing) {\n var arrayIndex = Math.floor(Math.floor(index / tickSpacing) / TICK_ARRAY_SIZE);\n var offsetIndex = Math.floor(index % (tickSpacing * TICK_ARRAY_SIZE) / tickSpacing);\n\n if (offsetIndex < 0) {\n offsetIndex = TICK_ARRAY_SIZE + offsetIndex;\n }\n\n return new TickArrayIndex(arrayIndex, offsetIndex, tickSpacing);\n }\n }]);\n\n return TickArrayIndex;\n}();\n\nvar TickArraySequence = /*#__PURE__*/function () {\n function TickArraySequence(tickArrays, tickSpacing, aToB) {\n _classCallCheck(this, TickArraySequence);\n\n if (!tickArrays[0] || !tickArrays[0].data) {\n throw new Error(\"TickArray index 0 must be initialized\");\n } // If an uninitialized TickArray appears, truncate all TickArrays after it (inclusive).\n\n\n this.sequence = [];\n\n var _iterator = _createForOfIteratorHelper(tickArrays),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var tickArray = _step.value;\n\n if (!tickArray || !tickArray.data) {\n break;\n }\n\n this.sequence.push({\n address: tickArray.address,\n data: tickArray.data\n });\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.tickArrays = tickArrays;\n this.tickSpacing = tickSpacing;\n this.aToB = aToB;\n this.touchedArrays = _toConsumableArray(Array(this.sequence.length).fill(false));\n this.startArrayIndex = TickArrayIndex.fromTickIndex(this.sequence[0].data.startTickIndex, this.tickSpacing).arrayIndex;\n }\n\n _createClass(TickArraySequence, [{\n key: \"isValidTickArray0\",\n value: function isValidTickArray0(tickCurrentIndex) {\n var shift = this.aToB ? 0 : this.tickSpacing;\n var tickArray = this.sequence[0].data;\n return this.checkIfIndexIsInTickArrayRange(tickArray.startTickIndex, tickCurrentIndex + shift);\n }\n }, {\n key: \"getNumOfTouchedArrays\",\n value: function getNumOfTouchedArrays() {\n return this.touchedArrays.filter(function (val) {\n return !!val;\n }).length;\n }\n }, {\n key: \"getTouchedArrays\",\n value: function getTouchedArrays(minArraySize) {\n var _this = this;\n\n var result = this.touchedArrays.reduce(function (prev, curr, index) {\n if (curr) {\n prev.push(_this.sequence[index].address);\n }\n\n return prev;\n }, []); // Edge case: nothing was ever touched.\n\n if (result.length === 0) {\n return [];\n } // The quote object should contain the specified amount of tick arrays to be plugged\n // directly into the swap instruction.\n // If the result does not fit minArraySize, pad the rest with the last touched array\n\n\n var sizeDiff = minArraySize - result.length;\n\n if (sizeDiff > 0) {\n result = result.concat(Array(sizeDiff).fill(result[result.length - 1]));\n }\n\n return result;\n }\n }, {\n key: \"getTick\",\n value: function getTick(index) {\n var targetTaIndex = TickArrayIndex.fromTickIndex(index, this.tickSpacing);\n\n if (!this.isArrayIndexInBounds(targetTaIndex, this.aToB)) {\n throw new Error(\"Provided tick index is out of bounds for this sequence.\");\n }\n\n var localArrayIndex = this.getLocalArrayIndex(targetTaIndex.arrayIndex, this.aToB);\n var tickArray = this.sequence[localArrayIndex].data;\n this.touchedArrays[localArrayIndex] = true;\n\n if (!tickArray) {\n throw new Error(\"TickArray at index \".concat(localArrayIndex, \" is not initialized.\"));\n }\n\n if (!this.checkIfIndexIsInTickArrayRange(tickArray.startTickIndex, index)) {\n throw new Error(\"TickArray at index \".concat(localArrayIndex, \" is unexpected for this sequence.\"));\n }\n\n return tickArray.ticks[targetTaIndex.offsetIndex];\n }\n /**\n * if a->b, currIndex is included in the search\n * if b->a, currIndex is always ignored\n * @param currIndex\n * @returns\n */\n\n }, {\n key: \"findNextInitializedTickIndex\",\n value: function findNextInitializedTickIndex(currIndex) {\n var searchIndex = this.aToB ? currIndex : currIndex + this.tickSpacing;\n var currTaIndex = TickArrayIndex.fromTickIndex(searchIndex, this.tickSpacing); // Throw error if the search attempted to search for an index out of bounds\n\n if (!this.isArrayIndexInBounds(currTaIndex, this.aToB)) {\n throw new Error(\"Swap input value traversed too many arrays. Out of bounds at attempt to traverse tick index - \".concat(currTaIndex.toTickIndex(), \".\"));\n }\n\n while (this.isArrayIndexInBounds(currTaIndex, this.aToB)) {\n var currTickData = this.getTick(currTaIndex.toTickIndex());\n\n if (currTickData.initialized) {\n return {\n nextIndex: currTaIndex.toTickIndex(),\n nextTickData: currTickData\n };\n }\n\n currTaIndex = this.aToB ? currTaIndex.toPrevInitializableTickIndex() : currTaIndex.toNextInitializableTickIndex();\n }\n\n var lastIndexInArray = Math.max(Math.min(this.aToB ? currTaIndex.toTickIndex() + this.tickSpacing : currTaIndex.toTickIndex() - 1, MAX_TICK_INDEX), MIN_TICK_INDEX);\n return {\n nextIndex: lastIndexInArray,\n nextTickData: null\n };\n }\n }, {\n key: \"getLocalArrayIndex\",\n value: function getLocalArrayIndex(arrayIndex, aToB) {\n return aToB ? this.startArrayIndex - arrayIndex : arrayIndex - this.startArrayIndex;\n }\n /**\n * Check whether the array index potentially exists in this sequence.\n * Note: assumes the sequence of tick-arrays are sequential\n * @param index\n */\n\n }, {\n key: \"isArrayIndexInBounds\",\n value: function isArrayIndexInBounds(index, aToB) {\n // a+0...a+n-1 array index is ok\n var localArrayIndex = this.getLocalArrayIndex(index.arrayIndex, aToB);\n var seqLength = this.sequence.length;\n return localArrayIndex >= 0 && localArrayIndex < seqLength;\n }\n }, {\n key: \"checkIfIndexIsInTickArrayRange\",\n value: function checkIfIndexIsInTickArrayRange(startTick, tickIndex) {\n var upperBound = startTick + this.tickSpacing * TICK_ARRAY_SIZE;\n return tickIndex >= startTick && tickIndex < upperBound;\n }\n }]);\n\n return TickArraySequence;\n}();\n\nvar getPrice = /*#__PURE__*/function () {\n var _ref43 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref42) {\n var account, tokenIn, tokenOut, amountIn, amountInMax, amountOut, amountOutMin, freshWhirlpoolData, aToB, tickArrays, tickSequence, sqrtPriceLimit, amount, amountSpecifiedIsInput, amountCalculated;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n account = _ref42.account, tokenIn = _ref42.tokenIn, tokenOut = _ref42.tokenOut, amountIn = _ref42.amountIn, amountInMax = _ref42.amountInMax, amountOut = _ref42.amountOut, amountOutMin = _ref42.amountOutMin;\n _context21.prev = 1;\n _context21.next = 4;\n return request({\n blockchain: 'solana',\n address: account.pubkey.toString(),\n api: WHIRLPOOL_LAYOUT,\n cache: 10\n });\n\n case 4:\n freshWhirlpoolData = _context21.sent;\n aToB = freshWhirlpoolData.tokenMintA.toString() === tokenIn;\n _context21.next = 8;\n return getTickArrays({\n pool: account.pubkey,\n freshWhirlpoolData: freshWhirlpoolData,\n aToB: aToB\n });\n\n case 8:\n tickArrays = _context21.sent;\n tickSequence = new TickArraySequence(tickArrays, freshWhirlpoolData.tickSpacing, aToB);\n sqrtPriceLimit = new BN(aToB ? MIN_SQRT_PRICE : MAX_SQRT_PRICE);\n amount = amountIn || amountInMax || amountOut || amountOutMin;\n amountSpecifiedIsInput = !!(amountIn || amountInMax);\n amountCalculated = compute({\n tokenAmount: new BN(amount.toString()),\n aToB: aToB,\n freshWhirlpoolData: freshWhirlpoolData,\n tickSequence: tickSequence,\n sqrtPriceLimit: sqrtPriceLimit,\n amountSpecifiedIsInput: amountSpecifiedIsInput\n });\n\n if (!(amountCalculated.toString() == \"0\")) {\n _context21.next = 16;\n break;\n }\n\n throw 'amountCalculated cant be zero!';\n\n case 16:\n return _context21.abrupt(\"return\", {\n price: amountCalculated.toString(),\n tickArrays: tickArrays,\n aToB: aToB,\n sqrtPriceLimit: sqrtPriceLimit\n });\n\n case 19:\n _context21.prev = 19;\n _context21.t0 = _context21[\"catch\"](1);\n return _context21.abrupt(\"return\", {\n price: undefined,\n tickArrays: undefined,\n aToB: undefined,\n sqrtPriceLimit: undefined\n });\n\n case 22:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, null, [[1, 19]]);\n }));\n\n return function getPrice(_x22) {\n return _ref43.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$4(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value3;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return (_value3 = value).call.apply(_value3, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n} // This method is cached and is only to be used to generally existing pools every 24h\n// Do not use for price calulations, fetch accounts for pools individually in order to calculate price \n\n\nvar getAccounts = /*#__PURE__*/function () {\n var _ref44 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(base, quote) {\n var whirlpoolsConfig, accounts;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n if (!(quote === Blockchains.solana.wrapped.address)) {\n _context22.next = 2;\n break;\n }\n\n return _context22.abrupt(\"return\", []);\n\n case 2:\n // WSOL is base not QUOTE!\n whirlpoolsConfig = _optionalChain$4([typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : undefined, 'optionalAccess', function (_) {\n return _._whirlpoolsConfig;\n }]) || '2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ';\n _context22.next = 5;\n return request(\"solana://whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc/getProgramAccounts\", {\n params: {\n filters: [{\n dataSize: WHIRLPOOL_LAYOUT.span\n }, {\n memcmp: {\n offset: 8,\n bytes: whirlpoolsConfig\n }\n }, {\n memcmp: {\n offset: 101,\n bytes: base\n }\n }, // tokenMintA\n {\n memcmp: {\n offset: 181,\n bytes: quote\n }\n } // tokenMintB\n ]\n },\n api: WHIRLPOOL_LAYOUT,\n cache: 86400,\n // 24h,\n cacheKey: ['whirlpool', base.toString(), quote.toString()].join('-')\n });\n\n case 5:\n accounts = _context22.sent;\n return _context22.abrupt(\"return\", accounts);\n\n case 7:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22);\n }));\n\n return function getAccounts(_x23, _x24) {\n return _ref44.apply(this, arguments);\n };\n}();\n\nvar getPairsWithPrice = /*#__PURE__*/function () {\n var _ref46 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(_ref45) {\n var tokenIn, tokenOut, amountIn, amountInMax, amountOut, amountOutMin, accounts;\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n tokenIn = _ref45.tokenIn, tokenOut = _ref45.tokenOut, amountIn = _ref45.amountIn, amountInMax = _ref45.amountInMax, amountOut = _ref45.amountOut, amountOutMin = _ref45.amountOutMin;\n _context24.prev = 1;\n _context24.next = 4;\n return getAccounts(tokenIn, tokenOut);\n\n case 4:\n accounts = _context24.sent;\n\n if (!(accounts.length === 0)) {\n _context24.next = 9;\n break;\n }\n\n _context24.next = 8;\n return getAccounts(tokenOut, tokenIn);\n\n case 8:\n accounts = _context24.sent;\n\n case 9:\n accounts = accounts.filter(function (account) {\n return account.data.liquidity.gt(1);\n });\n _context24.next = 12;\n return Promise.all(accounts.map( /*#__PURE__*/function () {\n var _ref47 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(account) {\n var _yield$getPrice, price, tickArrays, sqrtPriceLimit, aToB;\n\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _context23.next = 2;\n return getPrice({\n account: account,\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 2:\n _yield$getPrice = _context23.sent;\n price = _yield$getPrice.price;\n tickArrays = _yield$getPrice.tickArrays;\n sqrtPriceLimit = _yield$getPrice.sqrtPriceLimit;\n aToB = _yield$getPrice.aToB;\n\n if (!(price === undefined)) {\n _context23.next = 9;\n break;\n }\n\n return _context23.abrupt(\"return\", false);\n\n case 9:\n return _context23.abrupt(\"return\", {\n // return a copy, do not mutate accounts\n pubkey: account.pubkey,\n price: price,\n tickArrays: tickArrays,\n sqrtPriceLimit: sqrtPriceLimit,\n aToB: aToB,\n data: {\n tokenVaultA: account.data.tokenVaultA,\n tokenVaultB: account.data.tokenVaultB\n }\n });\n\n case 10:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23);\n }));\n\n return function (_x26) {\n return _ref47.apply(this, arguments);\n };\n }()));\n\n case 12:\n accounts = _context24.sent.filter(Boolean);\n return _context24.abrupt(\"return\", accounts);\n\n case 16:\n _context24.prev = 16;\n _context24.t0 = _context24[\"catch\"](1);\n return _context24.abrupt(\"return\", []);\n\n case 19:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, null, [[1, 16]]);\n }));\n\n return function getPairsWithPrice(_x25) {\n return _ref46.apply(this, arguments);\n };\n}();\n\nvar getHighestPrice = function getHighestPrice(pairs) {\n return pairs.reduce(function (bestPricePair, currentPair) {\n return ethers.BigNumber.from(currentPair.price).gt(ethers.BigNumber.from(bestPricePair.price)) ? currentPair : bestPricePair;\n });\n};\n\nvar getLowestPrice = function getLowestPrice(pairs) {\n return pairs.reduce(function (bestPricePair, currentPair) {\n return ethers.BigNumber.from(currentPair.price).lt(ethers.BigNumber.from(bestPricePair.price)) ? currentPair : bestPricePair;\n });\n};\n\nvar getBestPair = /*#__PURE__*/function () {\n var _ref49 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref48) {\n var tokenIn, tokenOut, amountIn, amountInMax, amountOut, amountOutMin, pairs, bestPair;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n tokenIn = _ref48.tokenIn, tokenOut = _ref48.tokenOut, amountIn = _ref48.amountIn, amountInMax = _ref48.amountInMax, amountOut = _ref48.amountOut, amountOutMin = _ref48.amountOutMin;\n _context25.next = 3;\n return getPairsWithPrice({\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 3:\n pairs = _context25.sent;\n\n if (!(!pairs || pairs.length === 0)) {\n _context25.next = 6;\n break;\n }\n\n return _context25.abrupt(\"return\");\n\n case 6:\n if (amountIn || amountInMax) {\n bestPair = getHighestPrice(pairs);\n } else {\n // amount out\n bestPair = getLowestPrice(pairs);\n }\n\n return _context25.abrupt(\"return\", bestPair);\n\n case 8:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25);\n }));\n\n return function getBestPair(_x27) {\n return _ref49.apply(this, arguments);\n };\n}();\n\nfunction _optionalChain$3(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value4;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return (_value4 = value).call.apply(_value4, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar blockchain$1 = Blockchains.solana; // Replaces 11111111111111111111111111111111 with the wrapped token and implies wrapping.\n//\n// We keep 11111111111111111111111111111111 internally\n// to be able to differentiate between SOL<>Token and WSOL<>Token swaps\n// as they are not the same!\n//\n\nvar getExchangePath$3 = function getExchangePath$3(_ref50) {\n var path = _ref50.path;\n\n if (!path) {\n return;\n }\n\n var exchangePath = path.map(function (token, index) {\n if (token === blockchain$1.currency.address && path[index + 1] != blockchain$1.wrapped.address && path[index - 1] != blockchain$1.wrapped.address) {\n return blockchain$1.wrapped.address;\n } else {\n return token;\n }\n });\n\n if (exchangePath[0] == blockchain$1.currency.address && exchangePath[1] == blockchain$1.wrapped.address) {\n exchangePath.splice(0, 1);\n } else if (exchangePath[exchangePath.length - 1] == blockchain$1.currency.address && exchangePath[exchangePath.length - 2] == blockchain$1.wrapped.address) {\n exchangePath.splice(exchangePath.length - 1, 1);\n }\n\n return exchangePath;\n};\n\nvar pathExists$4 = /*#__PURE__*/function () {\n var _ref52 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26(_ref51) {\n var path, amountIn, amountInMax, amountOut, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n path = _ref51.path, amountIn = _ref51.amountIn, amountInMax = _ref51.amountInMax, amountOut = _ref51.amountOut, amountOutMin = _ref51.amountOutMin;\n\n if (!(path.length == 1)) {\n _context26.next = 3;\n break;\n }\n\n return _context26.abrupt(\"return\", false);\n\n case 3:\n path = getExchangePath$3({\n path: path\n });\n _context26.next = 6;\n return getPairsWithPrice({\n tokenIn: path[0],\n tokenOut: path[1],\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 6:\n _context26.t0 = _context26.sent.length;\n\n if (!(_context26.t0 > 0)) {\n _context26.next = 11;\n break;\n }\n\n return _context26.abrupt(\"return\", true);\n\n case 11:\n return _context26.abrupt(\"return\", false);\n\n case 12:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26);\n }));\n\n return function pathExists$4(_x28) {\n return _ref52.apply(this, arguments);\n };\n}();\n\nvar findPath$4 = /*#__PURE__*/function () {\n var _ref54 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29(_ref53) {\n var tokenIn, tokenOut, amountIn, amountOut, amountInMax, amountOutMin, path, stablesIn, stablesOut, stable;\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n tokenIn = _ref53.tokenIn, tokenOut = _ref53.tokenOut, amountIn = _ref53.amountIn, amountOut = _ref53.amountOut, amountInMax = _ref53.amountInMax, amountOutMin = _ref53.amountOutMin;\n\n if (!([tokenIn, tokenOut].includes(blockchain$1.currency.address) && [tokenIn, tokenOut].includes(blockchain$1.wrapped.address))) {\n _context29.next = 3;\n break;\n }\n\n return _context29.abrupt(\"return\", {\n path: undefined,\n exchangePath: undefined\n });\n\n case 3:\n _context29.next = 5;\n return pathExists$4({\n path: [tokenIn, tokenOut],\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 5:\n if (!_context29.sent) {\n _context29.next = 9;\n break;\n }\n\n // direct path\n path = [tokenIn, tokenOut];\n _context29.next = 47;\n break;\n\n case 9:\n _context29.t3 = tokenIn != blockchain$1.wrapped.address && tokenIn != blockchain$1.currency.address;\n\n if (!_context29.t3) {\n _context29.next = 14;\n break;\n }\n\n _context29.next = 13;\n return pathExists$4({\n path: [tokenIn, blockchain$1.wrapped.address],\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 13:\n _context29.t3 = _context29.sent;\n\n case 14:\n _context29.t2 = _context29.t3;\n\n if (!_context29.t2) {\n _context29.next = 17;\n break;\n }\n\n _context29.t2 = tokenOut != blockchain$1.wrapped.address;\n\n case 17:\n _context29.t1 = _context29.t2;\n\n if (!_context29.t1) {\n _context29.next = 20;\n break;\n }\n\n _context29.t1 = tokenOut != blockchain$1.currency.address;\n\n case 20:\n _context29.t0 = _context29.t1;\n\n if (!_context29.t0) {\n _context29.next = 25;\n break;\n }\n\n _context29.next = 24;\n return pathExists$4({\n path: [tokenOut, blockchain$1.wrapped.address],\n amountIn: amountOut || amountOutMin,\n amountInMax: amountOut || amountOutMin,\n amountOut: amountIn || amountInMax,\n amountOutMin: amountIn || amountInMax\n });\n\n case 24:\n _context29.t0 = _context29.sent;\n\n case 25:\n if (!_context29.t0) {\n _context29.next = 29;\n break;\n }\n\n // path via blockchain.wrapped.address\n path = [tokenIn, blockchain$1.wrapped.address, tokenOut];\n _context29.next = 47;\n break;\n\n case 29:\n _context29.t7 = !blockchain$1.stables.usd.includes(tokenIn);\n\n if (!_context29.t7) {\n _context29.next = 34;\n break;\n }\n\n _context29.next = 33;\n return Promise.all(blockchain$1.stables.usd.map( /*#__PURE__*/function () {\n var _ref55 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27(stable) {\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n _context27.next = 2;\n return pathExists$4({\n path: [tokenIn, stable],\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 2:\n if (!_context27.sent) {\n _context27.next = 6;\n break;\n }\n\n _context27.t0 = stable;\n _context27.next = 7;\n break;\n\n case 6:\n _context27.t0 = undefined;\n\n case 7:\n return _context27.abrupt(\"return\", _context27.t0);\n\n case 8:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27);\n }));\n\n return function (_x30) {\n return _ref55.apply(this, arguments);\n };\n }()));\n\n case 33:\n _context29.t7 = stablesIn = _context29.sent.filter(Boolean);\n\n case 34:\n _context29.t6 = _context29.t7;\n\n if (!_context29.t6) {\n _context29.next = 37;\n break;\n }\n\n _context29.t6 = !blockchain$1.stables.usd.includes(tokenOut);\n\n case 37:\n _context29.t5 = _context29.t6;\n\n if (!_context29.t5) {\n _context29.next = 42;\n break;\n }\n\n _context29.next = 41;\n return Promise.all(blockchain$1.stables.usd.map( /*#__PURE__*/function () {\n var _ref56 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28(stable) {\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n _context28.next = 2;\n return pathExists$4({\n path: [tokenOut, stable],\n amountIn: amountOut || amountOutMin,\n amountInMax: amountOut || amountOutMin,\n amountOut: amountIn || amountInMax,\n amountOutMin: amountIn || amountInMax\n });\n\n case 2:\n if (!_context28.sent) {\n _context28.next = 6;\n break;\n }\n\n _context28.t0 = stable;\n _context28.next = 7;\n break;\n\n case 6:\n _context28.t0 = undefined;\n\n case 7:\n return _context28.abrupt(\"return\", _context28.t0);\n\n case 8:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28);\n }));\n\n return function (_x31) {\n return _ref56.apply(this, arguments);\n };\n }()));\n\n case 41:\n _context29.t5 = stablesOut = _context29.sent.filter(Boolean);\n\n case 42:\n _context29.t4 = _context29.t5;\n\n if (!_context29.t4) {\n _context29.next = 45;\n break;\n }\n\n _context29.t4 = stable = stablesIn.filter(function (stable) {\n return stablesOut.includes(stable);\n })[0];\n\n case 45:\n if (!_context29.t4) {\n _context29.next = 47;\n break;\n }\n\n // path via TOKEN_IN <> STABLE <> TOKEN_OUT\n path = [tokenIn, stable, tokenOut];\n\n case 47:\n // Add blockchain.wrapped.address to route path if things start or end with blockchain.currency.address\n // because that actually reflects how things are routed in reality:\n if (_optionalChain$3([path, 'optionalAccess', function (_) {\n return _.length;\n }]) && path[0] == blockchain$1.currency.address) {\n path.splice(1, 0, blockchain$1.wrapped.address);\n } else if (_optionalChain$3([path, 'optionalAccess', function (_2) {\n return _2.length;\n }]) && path[path.length - 1] == blockchain$1.currency.address) {\n path.splice(path.length - 1, 0, blockchain$1.wrapped.address);\n }\n\n return _context29.abrupt(\"return\", {\n path: path,\n exchangePath: getExchangePath$3({\n path: path\n })\n });\n\n case 49:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29);\n }));\n\n return function findPath$4(_x29) {\n return _ref54.apply(this, arguments);\n };\n}();\n\nvar getAmountsOut = /*#__PURE__*/function () {\n var _ref58 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee30(_ref57) {\n var path, amountIn, amountInMax, amounts;\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n path = _ref57.path, amountIn = _ref57.amountIn, amountInMax = _ref57.amountInMax;\n amounts = [ethers.BigNumber.from(amountIn || amountInMax)];\n _context30.t0 = amounts;\n _context30.t1 = ethers.BigNumber;\n _context30.next = 6;\n return getBestPair({\n tokenIn: path[0],\n tokenOut: path[1],\n amountIn: amountIn,\n amountInMax: amountInMax\n });\n\n case 6:\n _context30.t2 = _context30.sent.price;\n _context30.t3 = _context30.t1.from.call(_context30.t1, _context30.t2);\n\n _context30.t0.push.call(_context30.t0, _context30.t3);\n\n if (!(path.length === 3)) {\n _context30.next = 17;\n break;\n }\n\n _context30.t4 = amounts;\n _context30.t5 = ethers.BigNumber;\n _context30.next = 14;\n return getBestPair({\n tokenIn: path[1],\n tokenOut: path[2],\n amountIn: amountIn ? amounts[1] : undefined,\n amountInMax: amountInMax ? amounts[1] : undefined\n });\n\n case 14:\n _context30.t6 = _context30.sent.price;\n _context30.t7 = _context30.t5.from.call(_context30.t5, _context30.t6);\n\n _context30.t4.push.call(_context30.t4, _context30.t7);\n\n case 17:\n if (!(amounts.length != path.length)) {\n _context30.next = 19;\n break;\n }\n\n return _context30.abrupt(\"return\");\n\n case 19:\n return _context30.abrupt(\"return\", amounts);\n\n case 20:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30);\n }));\n\n return function getAmountsOut(_x32) {\n return _ref58.apply(this, arguments);\n };\n}();\n\nvar getAmountsIn = /*#__PURE__*/function () {\n var _ref60 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee31(_ref59) {\n var path, amountOut, amountOutMin, amounts;\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n path = _ref59.path, amountOut = _ref59.amountOut, amountOutMin = _ref59.amountOutMin;\n path = path.slice().reverse();\n amounts = [ethers.BigNumber.from(amountOut || amountOutMin)];\n _context31.t0 = amounts;\n _context31.t1 = ethers.BigNumber;\n _context31.next = 7;\n return getBestPair({\n tokenIn: path[1],\n tokenOut: path[0],\n amountOut: amountOut,\n amountOutMin: amountOutMin\n });\n\n case 7:\n _context31.t2 = _context31.sent.price;\n _context31.t3 = _context31.t1.from.call(_context31.t1, _context31.t2);\n\n _context31.t0.push.call(_context31.t0, _context31.t3);\n\n if (!(path.length === 3)) {\n _context31.next = 18;\n break;\n }\n\n _context31.t4 = amounts;\n _context31.t5 = ethers.BigNumber;\n _context31.next = 15;\n return getBestPair({\n tokenIn: path[2],\n tokenOut: path[1],\n amountOut: amountOut ? amounts[1] : undefined,\n amountOutMin: amountOutMin ? amounts[1] : undefined\n });\n\n case 15:\n _context31.t6 = _context31.sent.price;\n _context31.t7 = _context31.t5.from.call(_context31.t5, _context31.t6);\n\n _context31.t4.push.call(_context31.t4, _context31.t7);\n\n case 18:\n if (!(amounts.length != path.length)) {\n _context31.next = 20;\n break;\n }\n\n return _context31.abrupt(\"return\");\n\n case 20:\n return _context31.abrupt(\"return\", amounts.slice().reverse());\n\n case 21:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31);\n }));\n\n return function getAmountsIn(_x33) {\n return _ref60.apply(this, arguments);\n };\n}();\n\nvar getAmounts$4 = /*#__PURE__*/function () {\n var _ref62 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee32(_ref61) {\n var path, tokenIn, tokenOut, amountOut, amountIn, amountInMax, amountOutMin, amounts;\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n path = _ref61.path, tokenIn = _ref61.tokenIn, tokenOut = _ref61.tokenOut, amountOut = _ref61.amountOut, amountIn = _ref61.amountIn, amountInMax = _ref61.amountInMax, amountOutMin = _ref61.amountOutMin;\n path = getExchangePath$3({\n path: path\n });\n\n if (!amountOut) {\n _context32.next = 14;\n break;\n }\n\n _context32.next = 5;\n return getAmountsIn({\n path: path,\n amountOut: amountOut,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 5:\n amounts = _context32.sent;\n amountIn = amounts ? amounts[0] : undefined;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context32.next = 11;\n break;\n }\n\n return _context32.abrupt(\"return\", {});\n\n case 11:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 12:\n _context32.next = 48;\n break;\n\n case 14:\n if (!amountIn) {\n _context32.next = 26;\n break;\n }\n\n _context32.next = 17;\n return getAmountsOut({\n path: path,\n amountIn: amountIn,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 17:\n amounts = _context32.sent;\n amountOut = amounts ? amounts[amounts.length - 1] : undefined;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context32.next = 23;\n break;\n }\n\n return _context32.abrupt(\"return\", {});\n\n case 23:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 24:\n _context32.next = 48;\n break;\n\n case 26:\n if (!amountOutMin) {\n _context32.next = 38;\n break;\n }\n\n _context32.next = 29;\n return getAmountsIn({\n path: path,\n amountOutMin: amountOutMin,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 29:\n amounts = _context32.sent;\n amountIn = amounts ? amounts[0] : undefined;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context32.next = 35;\n break;\n }\n\n return _context32.abrupt(\"return\", {});\n\n case 35:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 36:\n _context32.next = 48;\n break;\n\n case 38:\n if (!amountInMax) {\n _context32.next = 48;\n break;\n }\n\n _context32.next = 41;\n return getAmountsOut({\n path: path,\n amountInMax: amountInMax,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 41:\n amounts = _context32.sent;\n amountOut = amounts ? amounts[amounts.length - 1] : undefined;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context32.next = 47;\n break;\n }\n\n return _context32.abrupt(\"return\", {});\n\n case 47:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 48:\n return _context32.abrupt(\"return\", {\n amountOut: amountOut || amountOutMin,\n amountIn: amountIn || amountInMax,\n amountInMax: amountInMax || amountIn,\n amountOutMin: amountOutMin || amountOut,\n amounts: amounts\n });\n\n case 49:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }));\n\n return function getAmounts$4(_x34) {\n return _ref62.apply(this, arguments);\n };\n}();\n\nvar blockchain = Blockchains.solana;\nvar SWAP_INSTRUCTION = new BN(\"14449647541112719096\");\nvar TWO_HOP_SWAP_INSTRUCTION = new BN(\"16635068063392030915\");\n\nvar createTokenAccountIfNotExisting = /*#__PURE__*/function () {\n var _ref64 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee33(_ref63) {\n var instructions, owner, token, account, outAccountExists;\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n instructions = _ref63.instructions, owner = _ref63.owner, token = _ref63.token, account = _ref63.account;\n _context33.prev = 1;\n _context33.next = 4;\n return request({\n blockchain: 'solana',\n address: account.toString()\n });\n\n case 4:\n outAccountExists = !!_context33.sent;\n _context33.next = 9;\n break;\n\n case 7:\n _context33.prev = 7;\n _context33.t0 = _context33[\"catch\"](1);\n\n case 9:\n if (outAccountExists) {\n _context33.next = 15;\n break;\n }\n\n _context33.t1 = instructions;\n _context33.next = 13;\n return Token.solana.createAssociatedTokenAccountInstruction({\n token: token,\n owner: owner,\n payer: owner\n });\n\n case 13:\n _context33.t2 = _context33.sent;\n\n _context33.t1.push.call(_context33.t1, _context33.t2);\n\n case 15:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33, null, [[1, 7]]);\n }));\n\n return function createTokenAccountIfNotExisting(_x35) {\n return _ref64.apply(this, arguments);\n };\n}();\n\nvar getTwoHopSwapInstructionKeys = /*#__PURE__*/function () {\n var _ref66 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee34(_ref65) {\n var account, poolOne, tickArraysOne, tokenAccountOneA, tokenVaultOneA, tokenAccountOneB, tokenVaultOneB, poolTwo, tickArraysTwo, tokenAccountTwoA, tokenVaultTwoA, tokenAccountTwoB, tokenVaultTwoB, lastInitializedTickOne, onlyInitializedTicksOne, lastInitializedTickTwo, onlyInitializedTicksTwo;\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n account = _ref65.account, poolOne = _ref65.poolOne, tickArraysOne = _ref65.tickArraysOne, tokenAccountOneA = _ref65.tokenAccountOneA, tokenVaultOneA = _ref65.tokenVaultOneA, tokenAccountOneB = _ref65.tokenAccountOneB, tokenVaultOneB = _ref65.tokenVaultOneB, poolTwo = _ref65.poolTwo, tickArraysTwo = _ref65.tickArraysTwo, tokenAccountTwoA = _ref65.tokenAccountTwoA, tokenVaultTwoA = _ref65.tokenVaultTwoA, tokenAccountTwoB = _ref65.tokenAccountTwoB, tokenVaultTwoB = _ref65.tokenVaultTwoB;\n lastInitializedTickOne = false;\n onlyInitializedTicksOne = tickArraysOne.map(function (tickArray, index) {\n if (lastInitializedTickOne !== false) {\n return tickArraysOne[lastInitializedTickOne];\n } else if (tickArray.data) {\n return tickArray;\n } else {\n lastInitializedTickOne = index - 1;\n return tickArraysOne[index - 1];\n }\n });\n lastInitializedTickTwo = false;\n onlyInitializedTicksTwo = tickArraysTwo.map(function (tickArray, index) {\n if (lastInitializedTickTwo !== false) {\n return tickArraysTwo[lastInitializedTickTwo];\n } else if (tickArray.data) {\n return tickArray;\n } else {\n lastInitializedTickTwo = index - 1;\n return tickArraysTwo[index - 1];\n }\n });\n _context34.t0 = // token_program\n {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isWritable: false,\n isSigner: false\n };\n _context34.t1 = // token_authority\n {\n pubkey: new PublicKey(account),\n isWritable: false,\n isSigner: true\n };\n _context34.t2 = // whirlpool_one\n {\n pubkey: new PublicKey(poolOne.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t3 = // whirlpool_two\n {\n pubkey: new PublicKey(poolTwo.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t4 = // token_owner_account_one_a\n {\n pubkey: new PublicKey(tokenAccountOneA.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t5 = // token_vault_one_a\n {\n pubkey: new PublicKey(tokenVaultOneA.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t6 = // token_owner_account_one_b\n {\n pubkey: new PublicKey(tokenAccountOneB.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t7 = // token_vault_one_b\n {\n pubkey: new PublicKey(tokenVaultOneB.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t8 = // token_owner_account_two_a\n {\n pubkey: new PublicKey(tokenAccountTwoA.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t9 = // token_vault_two_a\n {\n pubkey: new PublicKey(tokenVaultTwoA.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t10 = // token_owner_account_two_b\n {\n pubkey: new PublicKey(tokenAccountTwoB.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t11 = // token_vault_two_b\n {\n pubkey: new PublicKey(tokenVaultTwoB.toString()),\n isWritable: true,\n isSigner: false\n };\n _context34.t12 = // tick_array_one_0\n {\n pubkey: onlyInitializedTicksOne[0].address,\n isWritable: true,\n isSigner: false\n };\n _context34.t13 = // tick_array_one_1\n {\n pubkey: onlyInitializedTicksOne[1].address,\n isWritable: true,\n isSigner: false\n };\n _context34.t14 = // tick_array_one_2\n {\n pubkey: onlyInitializedTicksOne[2].address,\n isWritable: true,\n isSigner: false\n };\n _context34.t15 = // tick_array_two_0\n {\n pubkey: onlyInitializedTicksTwo[0].address,\n isWritable: true,\n isSigner: false\n };\n _context34.t16 = // tick_array_two_1\n {\n pubkey: onlyInitializedTicksTwo[1].address,\n isWritable: true,\n isSigner: false\n };\n _context34.t17 = // tick_array_two_2\n {\n pubkey: onlyInitializedTicksTwo[2].address,\n isWritable: true,\n isSigner: false\n };\n _context34.next = 25;\n return PublicKey.findProgramAddress([Buffer.from('oracle'), new PublicKey(poolOne.toString()).toBuffer()], new PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc'));\n\n case 25:\n _context34.t18 = _context34.sent[0];\n _context34.t19 = {\n pubkey: _context34.t18,\n isWritable: false,\n isSigner: false\n };\n _context34.next = 29;\n return PublicKey.findProgramAddress([Buffer.from('oracle'), new PublicKey(poolTwo.toString()).toBuffer()], new PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc'));\n\n case 29:\n _context34.t20 = _context34.sent[0];\n _context34.t21 = {\n pubkey: _context34.t20,\n isWritable: false,\n isSigner: false\n };\n return _context34.abrupt(\"return\", [_context34.t0, _context34.t1, _context34.t2, _context34.t3, _context34.t4, _context34.t5, _context34.t6, _context34.t7, _context34.t8, _context34.t9, _context34.t10, _context34.t11, _context34.t12, _context34.t13, _context34.t14, _context34.t15, _context34.t16, _context34.t17, _context34.t19, _context34.t21]);\n\n case 32:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34);\n }));\n\n return function getTwoHopSwapInstructionKeys(_x36) {\n return _ref66.apply(this, arguments);\n };\n}();\n\nvar getTwoHopSwapInstructionData = function getTwoHopSwapInstructionData(_ref67) {\n var amount = _ref67.amount,\n otherAmountThreshold = _ref67.otherAmountThreshold,\n amountSpecifiedIsInput = _ref67.amountSpecifiedIsInput,\n aToBOne = _ref67.aToBOne,\n aToBTwo = _ref67.aToBTwo,\n sqrtPriceLimitOne = _ref67.sqrtPriceLimitOne,\n sqrtPriceLimitTwo = _ref67.sqrtPriceLimitTwo;\n var LAYOUT, data;\n LAYOUT = struct([u64$1(\"anchorDiscriminator\"), u64$1(\"amount\"), u64$1(\"otherAmountThreshold\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToBOne\"), bool(\"aToBTwo\"), u128(\"sqrtPriceLimitOne\"), u128(\"sqrtPriceLimitTwo\")]);\n data = Buffer.alloc(LAYOUT.span);\n LAYOUT.encode({\n anchorDiscriminator: TWO_HOP_SWAP_INSTRUCTION,\n amount: new BN(amount.toString()),\n otherAmountThreshold: new BN(otherAmountThreshold.toString()),\n amountSpecifiedIsInput: amountSpecifiedIsInput,\n aToBOne: aToBOne,\n aToBTwo: aToBTwo,\n sqrtPriceLimitOne: sqrtPriceLimitOne,\n sqrtPriceLimitTwo: sqrtPriceLimitTwo\n }, data);\n return data;\n};\n\nvar getSwapInstructionKeys = /*#__PURE__*/function () {\n var _ref69 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee35(_ref68) {\n var account, pool, tokenAccountA, tokenVaultA, tokenAccountB, tokenVaultB, tickArrays, lastInitializedTick, onlyInitializedTicks;\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n account = _ref68.account, pool = _ref68.pool, tokenAccountA = _ref68.tokenAccountA, tokenVaultA = _ref68.tokenVaultA, tokenAccountB = _ref68.tokenAccountB, tokenVaultB = _ref68.tokenVaultB, tickArrays = _ref68.tickArrays;\n lastInitializedTick = false;\n onlyInitializedTicks = tickArrays.map(function (tickArray, index) {\n if (lastInitializedTick !== false) {\n return tickArrays[lastInitializedTick];\n } else if (tickArray.data) {\n return tickArray;\n } else {\n lastInitializedTick = index - 1;\n return tickArrays[index - 1];\n }\n });\n _context35.t0 = // token_program\n {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isWritable: false,\n isSigner: false\n };\n _context35.t1 = // token_authority\n {\n pubkey: new PublicKey(account),\n isWritable: false,\n isSigner: true\n };\n _context35.t2 = // whirlpool\n {\n pubkey: new PublicKey(pool.toString()),\n isWritable: true,\n isSigner: false\n };\n _context35.t3 = // token_owner_account_a\n {\n pubkey: new PublicKey(tokenAccountA.toString()),\n isWritable: true,\n isSigner: false\n };\n _context35.t4 = // token_vault_a\n {\n pubkey: new PublicKey(tokenVaultA.toString()),\n isWritable: true,\n isSigner: false\n };\n _context35.t5 = // token_owner_account_b\n {\n pubkey: new PublicKey(tokenAccountB.toString()),\n isWritable: true,\n isSigner: false\n };\n _context35.t6 = // token_vault_b\n {\n pubkey: new PublicKey(tokenVaultB.toString()),\n isWritable: true,\n isSigner: false\n };\n _context35.t7 = // tick_array_0\n {\n pubkey: onlyInitializedTicks[0].address,\n isWritable: true,\n isSigner: false\n };\n _context35.t8 = // tick_array_1\n {\n pubkey: onlyInitializedTicks[1].address,\n isWritable: true,\n isSigner: false\n };\n _context35.t9 = // tick_array_2\n {\n pubkey: onlyInitializedTicks[2].address,\n isWritable: true,\n isSigner: false\n };\n _context35.next = 15;\n return PublicKey.findProgramAddress([Buffer.from('oracle'), new PublicKey(pool.toString()).toBuffer()], new PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc'));\n\n case 15:\n _context35.t10 = _context35.sent[0];\n _context35.t11 = {\n pubkey: _context35.t10,\n isWritable: false,\n isSigner: false\n };\n return _context35.abrupt(\"return\", [_context35.t0, _context35.t1, _context35.t2, _context35.t3, _context35.t4, _context35.t5, _context35.t6, _context35.t7, _context35.t8, _context35.t9, _context35.t11]);\n\n case 18:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35);\n }));\n\n return function getSwapInstructionKeys(_x37) {\n return _ref69.apply(this, arguments);\n };\n}();\n\nvar getSwapInstructionData = function getSwapInstructionData(_ref70) {\n var amount = _ref70.amount,\n otherAmountThreshold = _ref70.otherAmountThreshold,\n sqrtPriceLimit = _ref70.sqrtPriceLimit,\n amountSpecifiedIsInput = _ref70.amountSpecifiedIsInput,\n aToB = _ref70.aToB;\n var LAYOUT, data;\n LAYOUT = struct([u64$1(\"anchorDiscriminator\"), u64$1(\"amount\"), u64$1(\"otherAmountThreshold\"), u128(\"sqrtPriceLimit\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToB\")]);\n data = Buffer.alloc(LAYOUT.span);\n LAYOUT.encode({\n anchorDiscriminator: SWAP_INSTRUCTION,\n amount: new BN(amount.toString()),\n otherAmountThreshold: new BN(otherAmountThreshold.toString()),\n sqrtPriceLimit: sqrtPriceLimit,\n amountSpecifiedIsInput: amountSpecifiedIsInput,\n aToB: aToB\n }, data);\n return data;\n};\n\nvar getTransaction$4 = /*#__PURE__*/function () {\n var _ref72 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee36(_ref71) {\n var path, amountIn, amountInMax, amountOut, amountOutMin, amounts, amountInInput, amountOutInput, amountInMaxInput, amountOutMinInput, account, transaction, instructions, exchangePath, tokenIn, tokenMiddle, tokenOut, pairs, startsWrapped, endsUnwrapped, wrappedAccount, provider, rent, keypair, lamports, createAccountInstruction, amountSpecifiedIsInput, amount, otherAmountThreshold, tokenAccountIn, tokenAccountOut, _amountSpecifiedIsInput, _amount, _otherAmountThreshold, _tokenAccountIn, _tokenMiddle, tokenAccountMiddle, _tokenAccountOut;\n\n return _regeneratorRuntime.wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n path = _ref71.path, amountIn = _ref71.amountIn, amountInMax = _ref71.amountInMax, amountOut = _ref71.amountOut, amountOutMin = _ref71.amountOutMin, amounts = _ref71.amounts, amountInInput = _ref71.amountInInput, amountOutInput = _ref71.amountOutInput, amountInMaxInput = _ref71.amountInMaxInput, amountOutMinInput = _ref71.amountOutMinInput, account = _ref71.account;\n transaction = {\n blockchain: 'solana'\n };\n instructions = [];\n exchangePath = getExchangePath$3({\n path: path\n });\n\n if (!(exchangePath.length > 3)) {\n _context36.next = 6;\n break;\n }\n\n throw 'Orca can only handle fixed paths with a max length of 3 (2 pools)!';\n\n case 6:\n tokenIn = exchangePath[0];\n tokenMiddle = exchangePath.length == 3 ? exchangePath[1] : undefined;\n tokenOut = exchangePath[exchangePath.length - 1];\n\n if (!(exchangePath.length == 2)) {\n _context36.next = 16;\n break;\n }\n\n _context36.next = 12;\n return getBestPair({\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountInInput || amountInMaxInput,\n amountOut: amountOutInput || amountOutMinInput\n });\n\n case 12:\n _context36.t0 = _context36.sent;\n pairs = [_context36.t0];\n _context36.next = 37;\n break;\n\n case 16:\n if (!(amountInInput || amountInMaxInput)) {\n _context36.next = 28;\n break;\n }\n\n _context36.next = 19;\n return getBestPair({\n tokenIn: tokenIn,\n tokenOut: tokenMiddle,\n amountIn: amountInInput || amountInMaxInput\n });\n\n case 19:\n _context36.t1 = _context36.sent;\n pairs = [_context36.t1];\n _context36.t2 = pairs;\n _context36.next = 24;\n return getBestPair({\n tokenIn: tokenMiddle,\n tokenOut: tokenOut,\n amountIn: pairs[0].price\n });\n\n case 24:\n _context36.t3 = _context36.sent;\n\n _context36.t2.push.call(_context36.t2, _context36.t3);\n\n _context36.next = 37;\n break;\n\n case 28:\n _context36.next = 30;\n return getBestPair({\n tokenIn: tokenMiddle,\n tokenOut: tokenOut,\n amountOut: amountOutInput || amountOutMinInput\n });\n\n case 30:\n _context36.t4 = _context36.sent;\n pairs = [_context36.t4];\n _context36.t5 = pairs;\n _context36.next = 35;\n return getBestPair({\n tokenIn: tokenIn,\n tokenOut: tokenMiddle,\n amountOut: pairs[0].price\n });\n\n case 35:\n _context36.t6 = _context36.sent;\n\n _context36.t5.unshift.call(_context36.t5, _context36.t6);\n\n case 37:\n startsWrapped = path[0] === blockchain.currency.address && exchangePath[0] === blockchain.wrapped.address;\n endsUnwrapped = path[path.length - 1] === blockchain.currency.address && exchangePath[exchangePath.length - 1] === blockchain.wrapped.address;\n _context36.next = 41;\n return getProvider('solana');\n\n case 41:\n provider = _context36.sent;\n\n if (!(startsWrapped || endsUnwrapped)) {\n _context36.next = 53;\n break;\n }\n\n _context36.next = 45;\n return provider.getMinimumBalanceForRentExemption(Token.solana.TOKEN_LAYOUT.span);\n\n case 45:\n rent = _context36.sent;\n keypair = Keypair.generate();\n wrappedAccount = keypair.publicKey.toString();\n lamports = startsWrapped ? new BN(amountIn.toString()).add(new BN(rent)) : new BN(rent);\n createAccountInstruction = SystemProgram.createAccount({\n fromPubkey: new PublicKey(account),\n newAccountPubkey: new PublicKey(wrappedAccount),\n programId: new PublicKey(Token.solana.TOKEN_PROGRAM),\n space: Token.solana.TOKEN_LAYOUT.span,\n lamports: lamports\n });\n createAccountInstruction.signers = [keypair];\n instructions.push(createAccountInstruction);\n instructions.push(Token.solana.initializeAccountInstruction({\n account: wrappedAccount,\n token: blockchain.wrapped.address,\n owner: account\n }));\n\n case 53:\n if (!(pairs.length === 1)) {\n _context36.next = 92;\n break;\n }\n\n // amount is NOT the precise part of the swap (otherAmountThreshold is)\n amountSpecifiedIsInput = !!(amountInInput || amountOutMinInput);\n amount = amountSpecifiedIsInput ? amountIn : amountOut;\n otherAmountThreshold = amountSpecifiedIsInput ? amountOutMin : amountInMax;\n\n if (!startsWrapped) {\n _context36.next = 61;\n break;\n }\n\n _context36.t7 = new PublicKey(wrappedAccount);\n _context36.next = 66;\n break;\n\n case 61:\n _context36.t8 = PublicKey;\n _context36.next = 64;\n return Token.solana.findProgramAddress({\n owner: account,\n token: tokenIn\n });\n\n case 64:\n _context36.t9 = _context36.sent;\n _context36.t7 = new _context36.t8(_context36.t9);\n\n case 66:\n tokenAccountIn = _context36.t7;\n\n if (!endsUnwrapped) {\n _context36.next = 71;\n break;\n }\n\n _context36.t10 = new PublicKey(wrappedAccount);\n _context36.next = 76;\n break;\n\n case 71:\n _context36.t11 = PublicKey;\n _context36.next = 74;\n return Token.solana.findProgramAddress({\n owner: account,\n token: tokenOut\n });\n\n case 74:\n _context36.t12 = _context36.sent;\n _context36.t10 = new _context36.t11(_context36.t12);\n\n case 76:\n tokenAccountOut = _context36.t10;\n\n if (endsUnwrapped) {\n _context36.next = 80;\n break;\n }\n\n _context36.next = 80;\n return createTokenAccountIfNotExisting({\n instructions: instructions,\n owner: account,\n token: tokenOut,\n account: tokenAccountOut\n });\n\n case 80:\n _context36.t13 = instructions;\n _context36.t14 = TransactionInstruction;\n _context36.t15 = new PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc');\n _context36.next = 85;\n return getSwapInstructionKeys({\n account: account,\n pool: pairs[0].pubkey,\n tokenAccountA: pairs[0].aToB ? tokenAccountIn : tokenAccountOut,\n tokenVaultA: pairs[0].data.tokenVaultA,\n tokenAccountB: pairs[0].aToB ? tokenAccountOut : tokenAccountIn,\n tokenVaultB: pairs[0].data.tokenVaultB,\n tickArrays: pairs[0].tickArrays\n });\n\n case 85:\n _context36.t16 = _context36.sent;\n _context36.t17 = getSwapInstructionData({\n amount: amount,\n otherAmountThreshold: otherAmountThreshold,\n sqrtPriceLimit: pairs[0].sqrtPriceLimit,\n amountSpecifiedIsInput: amountSpecifiedIsInput,\n aToB: pairs[0].aToB\n });\n _context36.t18 = {\n programId: _context36.t15,\n keys: _context36.t16,\n data: _context36.t17\n };\n _context36.t19 = new _context36.t14(_context36.t18);\n\n _context36.t13.push.call(_context36.t13, _context36.t19);\n\n _context36.next = 137;\n break;\n\n case 92:\n if (!(pairs.length === 2)) {\n _context36.next = 137;\n break;\n }\n\n // amount is NOT the precise part of the swap (otherAmountThreshold is)\n _amountSpecifiedIsInput = !!(amountInInput || amountOutMinInput);\n _amount = _amountSpecifiedIsInput ? amountIn : amountOut;\n _otherAmountThreshold = _amountSpecifiedIsInput ? amountOutMin : amountInMax;\n\n if (!startsWrapped) {\n _context36.next = 100;\n break;\n }\n\n _context36.t20 = new PublicKey(wrappedAccount);\n _context36.next = 105;\n break;\n\n case 100:\n _context36.t21 = PublicKey;\n _context36.next = 103;\n return Token.solana.findProgramAddress({\n owner: account,\n token: tokenIn\n });\n\n case 103:\n _context36.t22 = _context36.sent;\n _context36.t20 = new _context36.t21(_context36.t22);\n\n case 105:\n _tokenAccountIn = _context36.t20;\n _tokenMiddle = exchangePath[1];\n _context36.t23 = PublicKey;\n _context36.next = 110;\n return Token.solana.findProgramAddress({\n owner: account,\n token: _tokenMiddle\n });\n\n case 110:\n _context36.t24 = _context36.sent;\n tokenAccountMiddle = new _context36.t23(_context36.t24);\n _context36.next = 114;\n return createTokenAccountIfNotExisting({\n instructions: instructions,\n owner: account,\n token: _tokenMiddle,\n account: tokenAccountMiddle\n });\n\n case 114:\n if (!endsUnwrapped) {\n _context36.next = 118;\n break;\n }\n\n _context36.t25 = new PublicKey(wrappedAccount);\n _context36.next = 123;\n break;\n\n case 118:\n _context36.t26 = PublicKey;\n _context36.next = 121;\n return Token.solana.findProgramAddress({\n owner: account,\n token: tokenOut\n });\n\n case 121:\n _context36.t27 = _context36.sent;\n _context36.t25 = new _context36.t26(_context36.t27);\n\n case 123:\n _tokenAccountOut = _context36.t25;\n\n if (endsUnwrapped) {\n _context36.next = 127;\n break;\n }\n\n _context36.next = 127;\n return createTokenAccountIfNotExisting({\n instructions: instructions,\n owner: account,\n token: tokenOut,\n account: _tokenAccountOut\n });\n\n case 127:\n _context36.t28 = instructions;\n _context36.t29 = TransactionInstruction;\n _context36.t30 = new PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc');\n _context36.next = 132;\n return getTwoHopSwapInstructionKeys({\n account: account,\n poolOne: pairs[0].pubkey,\n tickArraysOne: pairs[0].tickArrays,\n tokenAccountOneA: pairs[0].aToB ? _tokenAccountIn : tokenAccountMiddle,\n tokenVaultOneA: pairs[0].data.tokenVaultA,\n tokenAccountOneB: pairs[0].aToB ? tokenAccountMiddle : _tokenAccountIn,\n tokenVaultOneB: pairs[0].data.tokenVaultB,\n poolTwo: pairs[1].pubkey,\n tickArraysTwo: pairs[1].tickArrays,\n tokenAccountTwoA: pairs[1].aToB ? tokenAccountMiddle : _tokenAccountOut,\n tokenVaultTwoA: pairs[1].data.tokenVaultA,\n tokenAccountTwoB: pairs[1].aToB ? _tokenAccountOut : tokenAccountMiddle,\n tokenVaultTwoB: pairs[1].data.tokenVaultB\n });\n\n case 132:\n _context36.t31 = _context36.sent;\n _context36.t32 = getTwoHopSwapInstructionData({\n amount: _amount,\n otherAmountThreshold: _otherAmountThreshold,\n amountSpecifiedIsInput: _amountSpecifiedIsInput,\n aToBOne: pairs[0].aToB,\n aToBTwo: pairs[1].aToB,\n sqrtPriceLimitOne: pairs[0].sqrtPriceLimit,\n sqrtPriceLimitTwo: pairs[1].sqrtPriceLimit\n });\n _context36.t33 = {\n programId: _context36.t30,\n keys: _context36.t31,\n data: _context36.t32\n };\n _context36.t34 = new _context36.t29(_context36.t33);\n\n _context36.t28.push.call(_context36.t28, _context36.t34);\n\n case 137:\n if (startsWrapped || endsUnwrapped) {\n instructions.push(Token.solana.closeAccountInstruction({\n account: wrappedAccount,\n owner: account\n }));\n } // await debug(instructions, provider)\n\n\n transaction.instructions = instructions;\n return _context36.abrupt(\"return\", transaction);\n\n case 140:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36);\n }));\n\n return function getTransaction$4(_x38) {\n return _ref72.apply(this, arguments);\n };\n}();\n\nvar Orca = {\n findPath: findPath$4,\n pathExists: pathExists$4,\n getAmounts: getAmounts$4,\n getTransaction: getTransaction$4,\n WHIRLPOOL_LAYOUT: WHIRLPOOL_LAYOUT\n};\nvar exchange$g = {\n name: 'orca',\n label: 'Orca',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9ImthdG1hbl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNjAwIDQ1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjAwIDQ1MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjRkZEMTVDIiBkPSJNNDg4LjQsMjIyLjljMCwxMDMuOC04NC4xLDE4Ny45LTE4Ny45LDE4Ny45Yy0xMDMuOCwwLTE4Ny45LTg0LjEtMTg3LjktMTg3LjlDMTEyLjYsMTE5LjEsMTk2LjcsMzUsMzAwLjUsMzUKCUM0MDQuMiwzNSw0ODguNCwxMTkuMSw0ODguNCwyMjIuOXoiLz4KPHBhdGggZmlsbD0iI0ZGRkZGRiIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjE3LjY3NTUiIGQ9Ik0yMDkuNSwyOTkuOGMxLjYtMS4xLDMuMS0yLjgsMy45LTUuMWMwLjgtMi42LDAuMy00LjksMC02LjJjMCwwLDAtMC4xLDAtMC4xbDAuMy0xLjhjMC45LDAuNSwxLjksMS4xLDMsMS45CgljMC4zLDAuMiwwLjcsMC41LDEuMSwwLjdjMC41LDAuNCwxLjEsMC44LDEuNCwxYzAuNiwwLjQsMS41LDEsMi41LDEuNWMyNS4xLDE1LjYsNDUuOCwyMiw2Mi4yLDIxLjJjMTctMC44LDI4LjktOS40LDM1LjEtMjEuOQoJYzUuOS0xMi4xLDYuMi0yNywyLTQwLjljLTQuMi0xMy45LTEzLTI3LjUtMjYuMi0zNi45Yy0yMi4yLTE1LjgtNDIuNS0zOS44LTUyLjctNjAuM2MtNS4yLTEwLjQtNy4zLTE4LjctNi43LTI0LjIKCWMwLjMtMi41LDEtNC4xLDItNS4xYzAuOS0xLDIuNi0yLjEsNS45LTIuNmM2LjktMS4xLDE1LTMuNiwyMy4xLTYuMmMzLjItMSw2LjMtMiw5LjUtMi45YzExLjctMy40LDI0LjItNi4zLDM3LjItNi4zCgljMjUuMywwLDU1LDExLDg2LjMsNTYuOGM0MC4yLDU4LjgsMTguMSwxMjQuNC0yOC4yLDE1OC45Yy0yMy4xLDE3LjItNTEuOSwyNi4zLTgxLjUsMjIuOUMyNjIuOSwzNDEuMywyMzQuOSwzMjcuOSwyMDkuNSwyOTkuOHoKCSBNMjE0LjIsMjg0LjZDMjE0LjIsMjg0LjYsMjE0LjIsMjg0LjcsMjE0LjIsMjg0LjZDMjE0LjEsMjg0LjcsMjE0LjIsMjg0LjYsMjE0LjIsMjg0LjZ6IE0yMTEuNiwyODUuOAoJQzIxMS42LDI4NS44LDIxMS43LDI4NS44LDIxMS42LDI4NS44QzIxMS43LDI4NS44LDIxMS42LDI4NS44LDIxMS42LDI4NS44eiIvPgo8cGF0aCBkPSJNMjMyLjUsMTI0LjNjMCwwLDcxLjgtMTkuMSw4Ny41LTE5LjFjMTUuNywwLDc4LjYsMzAuNSw5Ni45LDg2LjNjMjYsNzktNDQuNywxMzAuOS01Mi43LDEyNS44CgljNzYuMS02Mi45LTQ4LjQtMTc5LjEtMTA5LjYtMTcwLjRjLTcuNiwxLjEtMy40LDcuNi0zLjQsNy42bC0xLjcsMTdsLTEyLjctMjEuMkwyMzIuNSwxMjQuM3oiLz4KPHBhdGggZD0iTTQwNi41LDE2Ny42YzIyLjcsMzkuOSwxOCwxNy4xLDEyLjksNjIuN2M5LjMtMTUuMSwyMy45LTMuOCwyOS45LDJjMS4xLDEsMi45LDAuNCwyLjgtMS4xYy0wLjItNi44LTIuMi0yMS40LTEzLjQtMzcuMQoJQzQyMy40LDE3Mi42LDQwNi41LDE2Ny42LDQwNi41LDE2Ny42eiIvPgo8cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMC45OTMiIGQ9Ik00MTkuNCwyMzAuM2M1LTQ1LjYsOS43LTIyLjgtMTIuOS02Mi43YzAsMCwxNi45LDUsMzIuMywyNi41YzExLjIsMTUuNywxMy4xLDMwLjMsMTMuNCwzNy4xCgljMC4xLDEuNS0xLjcsMi4xLTIuOCwxLjFDNDQzLjMsMjI2LjUsNDI4LjcsMjE1LjMsNDE5LjQsMjMwLjN6IE00MTkuNCwyMzAuM2MwLjktMi4xLDIuMi01LjUsMi4yLTUuNSIvPgo8cGF0aCBkPSJNMjI0LDIyNC4yYy05LjYsMTYuMi0yOS4yLDE1LTI4LjgsMzQuM2MxNy41LDM5LDE3LjYsMzYuMiwxNy42LDM2LjJjMzIuNS0xOC4yLDE5LjEtNTguNSwxNC4zLTcwLjQKCUMyMjYuNiwyMjMsMjI0LjcsMjIzLDIyNCwyMjQuMnoiLz4KPHBhdGggZD0iTTE1MC40LDI2MC4xYzE4LjcsMi40LDI5LjgtMTMuOCw0NC44LTEuNmMxOS45LDM3LjgsMTcuNiwzNi4yLDE3LjYsMzYuMmMtMzQuNCwxNC40LTU3LjktMjEtNjQuMy0zMi4xCglDMTQ3LjgsMjYxLjMsMTQ5LDI1OS45LDE1MC40LDI2MC4xeiIvPgo8cGF0aCBkPSJNMzA2LjksMjM2YzAsMCwxOC43LDE5LjEsOC45LDIyLjFjLTEyLjItNy41LTM0LTEuNy00NC43LDEuOWMtMi42LDAuOS01LjItMS40LTQuMy00LjFjMy42LTEwLDEyLjYtMjguNiwyOS45LTMxCglDMzA2LjksMjIyLjQsMzA2LjksMjM2LDMwNi45LDIzNnoiLz4KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTMxOC4zLDE0Mi41Yy0yLjEtMy02LjQtMTEsNi44LTExYzEzLjIsMCwzMy4zLDE0LjksMzcuNCwyMC40Yy0xLjMsMy40LTkuOCw0LjEtMTQsMy44Yy00LjItMC4zLTExLjUtMS0xNy0zLjgKCUMzMjYsMTQ5LjIsMzIwLjUsMTQ1LjUsMzE4LjMsMTQyLjV6Ii8+Cjwvc3ZnPgo=',\n protocol: 'orca',\n slippage: true,\n blockchains: ['solana'],\n solana: {\n router: {\n address: 'whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc',\n api: Orca.WHIRLPOOL_LAYOUT\n }\n }\n};\n\nvar orca = function orca(scope) {\n return new Exchange(Object.assign(exchange$g, {\n scope: scope,\n findPath: function findPath(args) {\n return Orca.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$g\n }));\n },\n pathExists: function pathExists(args) {\n return Orca.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$g\n }));\n },\n getAmounts: function getAmounts(args) {\n return Orca.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$g\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return Orca.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$g\n }));\n }\n }));\n};\n\nvar exchange$f = {\n name: 'pancakeswap',\n label: 'PancakeSwap',\n logo: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTk4IiBoZWlnaHQ9IjE5OSIgdmlld0JveD0iMCAwIDE5OCAxOTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTguNTUyIDE5OC42MDdDNjkuMDYxMyAxOTguNTg1IDQ1LjMwNiAxOTEuNTggMjguNzA3OSAxNzguOTk4QzExLjkxMDggMTY2LjI2NSAzIDE0OC4xOTUgMyAxMjcuNzQ4QzMgMTA4LjA0NyAxMS44OTEzIDkzLjg0MTEgMjEuOTUxNyA4NC4yMzg1QzI5LjgzNTkgNzYuNzEzMiAzOC41MzYzIDcxLjg5MzYgNDQuNTk0NSA2OS4xMjEzQzQzLjIyNDUgNjQuOTU5NCA0MS41MTUzIDU5LjUxMDggMzkuOTg2MSA1My44ODMyQzM3LjkzOTkgNDYuMzUyNyAzNS45MzI1IDM3LjUxNzQgMzUuOTMyNSAzMS4wNDI5QzM1LjkzMjUgMjMuMzc5NSAzNy42MjA0IDE1LjY4MzMgNDIuMTcxNCA5LjcwMzA2QzQ2Ljk3OTcgMy4zODQ3NiA1NC4yMTgyIDAgNjIuOTI2NCAwQzY5LjczMjIgMCA3NS41MTAzIDIuNDk5MDMgODAuMDMzOSA2LjgxMDExQzg0LjM1NzkgMTAuOTMwOSA4Ny4yMzU3IDE2LjQwMzQgODkuMjIyNyAyMi4xMDgyQzkyLjcxNDMgMzIuMTMyNSA5NC4wNzM4IDQ0LjcyNjQgOTQuNDU1MSA1Ny4yOTQ1SDEwMi43OTZDMTAzLjE3OCA0NC43MjY0IDEwNC41MzcgMzIuMTMyNSAxMDguMDI5IDIyLjEwODJDMTEwLjAxNiAxNi40MDM0IDExMi44OTQgMTAuOTMwOSAxMTcuMjE4IDYuODEwMTFDMTIxLjc0MSAyLjQ5OTAzIDEyNy41MTkgMCAxMzQuMzI1IDBDMTQzLjAzMyAwIDE1MC4yNzIgMy4zODQ3NiAxNTUuMDggOS43MDMwNkMxNTkuNjMxIDE1LjY4MzMgMTYxLjMxOSAyMy4zNzk1IDE2MS4zMTkgMzEuMDQyOUMxNjEuMzE5IDM3LjUxNzQgMTU5LjMxMiA0Ni4zNTI3IDE1Ny4yNjUgNTMuODgzMkMxNTUuNzM2IDU5LjUxMDggMTU0LjAyNyA2NC45NTk0IDE1Mi42NTcgNjkuMTIxM0MxNTguNzE1IDcxLjg5MzYgMTY3LjQxNiA3Ni43MTMyIDE3NS4zIDg0LjIzODVDMTg1LjM2IDkzLjg0MTEgMTk0LjI1MiAxMDguMDQ3IDE5NC4yNTIgMTI3Ljc0OEMxOTQuMjUyIDE0OC4xOTUgMTg1LjM0MSAxNjYuMjY1IDE2OC41NDQgMTc4Ljk5OEMxNTEuOTQ1IDE5MS41OCAxMjguMTkgMTk4LjU4NSA5OC42OTk2IDE5OC42MDdIOTguNTUyWiIgZmlsbD0iIzYzMzAwMSIvPgo8cGF0aCBkPSJNNjIuOTI2MiA3LjI4ODMzQzUwLjE3MTYgNy4yODgzMyA0NC4zMDA0IDE2LjgwMzcgNDQuMzAwNCAyOS45NjMyQzQ0LjMwMDQgNDAuNDIzMSA1MS4xMjIyIDYxLjM3MTUgNTMuOTIxMiA2OS41MjYzQzU0LjU1MDggNzEuMzYwNSA1My41NjE2IDczLjM3MDEgNTEuNzU3NCA3NC4wODE0QzQxLjUzNTEgNzguMTEyMSAxMS4zNjc5IDkyLjg3IDExLjM2NzkgMTI2LjY2OUMxMS4zNjc5IDE2Mi4yNzIgNDIuMDI0NiAxODkuMTE3IDk4LjU1ODEgMTg5LjE2Qzk4LjU4MDYgMTg5LjE2IDk4LjYwMzEgMTg5LjE1OSA5OC42MjU2IDE4OS4xNTlDOTguNjQ4MSAxODkuMTU5IDk4LjY3MDYgMTg5LjE2IDk4LjY5MzEgMTg5LjE2QzE1NS4yMjcgMTg5LjExNyAxODUuODgzIDE2Mi4yNzIgMTg1Ljg4MyAxMjYuNjY5QzE4NS44ODMgOTIuODcgMTU1LjcxNiA3OC4xMTIxIDE0NS40OTQgNzQuMDgxNEMxNDMuNjkgNzMuMzcwMSAxNDIuNyA3MS4zNjA1IDE0My4zMyA2OS41MjYzQzE0Ni4xMjkgNjEuMzcxNSAxNTIuOTUxIDQwLjQyMzEgMTUyLjk1MSAyOS45NjMyQzE1Mi45NTEgMTYuODAzNyAxNDcuMDggNy4yODgzMyAxMzQuMzI1IDcuMjg4MzNDMTE1Ljk2NSA3LjI4ODMzIDExMS4zODkgMzMuMjk1NSAxMTEuMDYyIDYxLjIwNzVDMTExLjA0IDYzLjA3MDkgMTA5LjUzNCA2NC41ODI4IDEwNy42NyA2NC41ODI4SDg5LjU4MDdDODcuNzE3MiA2NC41ODI4IDg2LjIxMDggNjMuMDcwOSA4Ni4xODkgNjEuMjA3NUM4NS44NjI2IDMzLjI5NTUgODEuMjg2IDcuMjg4MzMgNjIuOTI2MiA3LjI4ODMzWiIgZmlsbD0iI0QxODg0RiIvPgo8cGF0aCBkPSJNOTguNjkzMSAxNzcuNzU1QzU3LjE1NTEgMTc3Ljc1NSAxMS40Mzk3IDE1NS41MiAxMS4zNjgxIDEyNi43MzdDMTEuMzY4IDEyNi43ODEgMTEuMzY3OSAxMjYuODI2IDExLjM2NzkgMTI2Ljg3MUMxMS4zNjc5IDE2Mi41MDMgNDIuMDczNCAxODkuMzYyIDk4LjY5MzEgMTg5LjM2MkMxNTUuMzEzIDE4OS4zNjIgMTg2LjAxOCAxNjIuNTAzIDE4Ni4wMTggMTI2Ljg3MUMxODYuMDE4IDEyNi44MjYgMTg2LjAxOCAxMjYuNzgxIDE4Ni4wMTggMTI2LjczN0MxODUuOTQ2IDE1NS41MiAxNDAuMjMxIDE3Ny43NTUgOTguNjkzMSAxNzcuNzU1WiIgZmlsbD0iI0ZFREM5MCIvPgo8cGF0aCBkPSJNNzUuNjEzNSAxMTcuODk2Qzc1LjYxMzUgMTI3LjYxNCA3MS4wMjEgMTMyLjY3NSA2NS4zNTU4IDEzMi42NzVDNTkuNjkwNyAxMzIuNjc1IDU1LjA5ODEgMTI3LjYxNCA1NS4wOTgxIDExNy44OTZDNTUuMDk4MSAxMDguMTc4IDU5LjY5MDcgMTAzLjExNyA2NS4zNTU4IDEwMy4xMTdDNzEuMDIxIDEwMy4xMTcgNzUuNjEzNSAxMDguMTc4IDc1LjYxMzUgMTE3Ljg5NloiIGZpbGw9IiM2MzMwMDEiLz4KPHBhdGggZD0iTTE0Mi4yODggMTE3Ljg5NkMxNDIuMjg4IDEyNy42MTQgMTM3LjY5NiAxMzIuNjc1IDEzMi4wMzEgMTMyLjY3NUMxMjYuMzY1IDEzMi42NzUgMTIxLjc3MyAxMjcuNjE0IDEyMS43NzMgMTE3Ljg5NkMxMjEuNzczIDEwOC4xNzggMTI2LjM2NSAxMDMuMTE3IDEzMi4wMzEgMTAzLjExN0MxMzcuNjk2IDEwMy4xMTcgMTQyLjI4OCAxMDguMTc4IDE0Mi4yODggMTE3Ljg5NloiIGZpbGw9IiM2MzMwMDEiLz4KPC9zdmc+Cg==',\n protocol: 'uniswap_v2',\n slippage: true,\n blockchains: ['bsc'],\n bsc: {\n router: {\n address: '0x10ED43C718714eb63d5aA57B78B54704E256024E',\n api: UniswapV2.ROUTER\n },\n factory: {\n address: '0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73',\n api: UniswapV2.FACTORY\n },\n pair: {\n api: UniswapV2.PAIR\n }\n }\n};\n\nvar pancakeswap = function pancakeswap(scope) {\n return new Exchange(Object.assign(exchange$f, {\n scope: scope,\n findPath: function findPath(args) {\n return UniswapV2.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$f\n }));\n },\n pathExists: function pathExists(args) {\n return UniswapV2.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$f\n }));\n },\n getAmounts: function getAmounts(args) {\n return UniswapV2.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$f\n }));\n },\n getPrep: function getPrep(args) {\n return UniswapV2.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$f\n }));\n },\n getTransaction: function getTransaction(args) {\n return UniswapV2.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$f\n }));\n }\n }));\n};\n\nfunction _optionalChain$2(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value5;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return (_value5 = value).call.apply(_value5, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n} // Replaces 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE with the wrapped token and implies wrapping.\n//\n// We keep 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE internally\n// to be able to differentiate between ETH<>Token and WETH<>Token swaps\n// as they are not the same!\n//\n\n\nvar getExchangePath$2 = function getExchangePath$2(_ref73) {\n var blockchain = _ref73.blockchain,\n exchange = _ref73.exchange,\n path = _ref73.path;\n\n if (!path) {\n return;\n }\n\n var exchangePath = path.map(function (token, index) {\n if (token === Blockchains[blockchain].currency.address && path[index + 1] != Blockchains[blockchain].wrapped.address && path[index - 1] != Blockchains[blockchain].wrapped.address) {\n return Blockchains[blockchain].wrapped.address;\n } else {\n return token;\n }\n });\n\n if (exchangePath[0] == Blockchains[blockchain].currency.address && exchangePath[1] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(0, 1);\n } else if (exchangePath[exchangePath.length - 1] == Blockchains[blockchain].currency.address && exchangePath[exchangePath.length - 2] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(exchangePath.length - 1, 1);\n }\n\n return exchangePath;\n};\n\nvar getInputAmount$1 = /*#__PURE__*/function () {\n var _ref75 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee37(_ref74) {\n var exchange, pool, outputAmount, data;\n return _regeneratorRuntime.wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n exchange = _ref74.exchange, pool = _ref74.pool, outputAmount = _ref74.outputAmount;\n _context37.next = 3;\n return request({\n blockchain: pool.blockchain,\n address: exchange[pool.blockchain].quoter.address,\n api: exchange[pool.blockchain].quoter.api,\n method: 'quoteExactOutput',\n params: {\n path: ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pool.path[1], pool.fee, pool.path[0]]),\n amountOut: outputAmount\n },\n cache: 5\n });\n\n case 3:\n data = _context37.sent;\n return _context37.abrupt(\"return\", data.amountIn);\n\n case 5:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37);\n }));\n\n return function getInputAmount$1(_x39) {\n return _ref75.apply(this, arguments);\n };\n}();\n\nvar getOutputAmount$1 = /*#__PURE__*/function () {\n var _ref77 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee38(_ref76) {\n var exchange, pool, inputAmount, data;\n return _regeneratorRuntime.wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n exchange = _ref76.exchange, pool = _ref76.pool, inputAmount = _ref76.inputAmount;\n _context38.next = 3;\n return request({\n blockchain: pool.blockchain,\n address: exchange[pool.blockchain].quoter.address,\n api: exchange[pool.blockchain].quoter.api,\n method: 'quoteExactInput',\n params: {\n path: ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pool.path[0], pool.fee, pool.path[1]]),\n amountIn: inputAmount\n },\n cache: 5\n });\n\n case 3:\n data = _context38.sent;\n return _context38.abrupt(\"return\", data.amountOut);\n\n case 5:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38);\n }));\n\n return function getOutputAmount$1(_x40) {\n return _ref77.apply(this, arguments);\n };\n}();\n\nvar getBestPool$2 = /*#__PURE__*/function () {\n var _ref79 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee40(_ref78) {\n var blockchain, exchange, path, amountIn, amountOut, block, pools;\n return _regeneratorRuntime.wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n blockchain = _ref78.blockchain, exchange = _ref78.exchange, path = _ref78.path, amountIn = _ref78.amountIn, amountOut = _ref78.amountOut, block = _ref78.block;\n path = getExchangePath$2({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n });\n\n if (!(path.length > 2)) {\n _context40.next = 4;\n break;\n }\n\n throw 'PancakeSwap V3 can only check paths for up to 2 tokens!';\n\n case 4:\n _context40.prev = 4;\n _context40.next = 7;\n return Promise.all(exchange.fees.map(function (fee) {\n return request({\n blockchain: Blockchains[blockchain].name,\n address: exchange[blockchain].factory.address,\n method: 'getPool',\n api: exchange[blockchain].factory.api,\n cache: 3600,\n params: [path[0], path[1], fee]\n }).then(function (address) {\n return {\n blockchain: blockchain,\n address: address,\n path: path,\n fee: fee,\n token0: _toConsumableArray(path).sort()[0],\n token1: _toConsumableArray(path).sort()[1]\n };\n }).catch(function () {});\n }));\n\n case 7:\n pools = _context40.sent.filter(Boolean);\n pools = pools.filter(function (pool) {\n return pool.address != Blockchains[blockchain].zero;\n });\n _context40.next = 11;\n return Promise.all(pools.map( /*#__PURE__*/function () {\n var _ref80 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee39(pool) {\n var amount;\n return _regeneratorRuntime.wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n _context39.prev = 0;\n\n if (!amountIn) {\n _context39.next = 7;\n break;\n }\n\n _context39.next = 4;\n return getOutputAmount$1({\n exchange: exchange,\n pool: pool,\n inputAmount: amountIn\n });\n\n case 4:\n amount = _context39.sent;\n _context39.next = 10;\n break;\n\n case 7:\n _context39.next = 9;\n return getInputAmount$1({\n exchange: exchange,\n pool: pool,\n outputAmount: amountOut\n });\n\n case 9:\n amount = _context39.sent;\n\n case 10:\n return _context39.abrupt(\"return\", _objectSpread(_objectSpread({}, pool), {}, {\n amountIn: amountIn || amount,\n amountOut: amountOut || amount\n }));\n\n case 13:\n _context39.prev = 13;\n _context39.t0 = _context39[\"catch\"](0);\n\n case 15:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39, null, [[0, 13]]);\n }));\n\n return function (_x42) {\n return _ref80.apply(this, arguments);\n };\n }()));\n\n case 11:\n pools = _context40.sent.filter(Boolean);\n\n if (!amountIn) {\n _context40.next = 16;\n break;\n }\n\n return _context40.abrupt(\"return\", pools.sort(function (a, b) {\n return b.amountOut.gt(a.amountOut) ? 1 : -1;\n })[0]);\n\n case 16:\n return _context40.abrupt(\"return\", pools.sort(function (a, b) {\n return b.amountIn.lt(a.amountIn) ? 1 : -1;\n })[0]);\n\n case 17:\n _context40.next = 22;\n break;\n\n case 19:\n _context40.prev = 19;\n _context40.t0 = _context40[\"catch\"](4);\n return _context40.abrupt(\"return\");\n\n case 22:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40, null, [[4, 19]]);\n }));\n\n return function getBestPool$2(_x41) {\n return _ref79.apply(this, arguments);\n };\n}();\n\nvar pathExists$3 = /*#__PURE__*/function () {\n var _ref82 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee41(_ref81) {\n var blockchain, exchange, path, amountIn, amountOut, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n blockchain = _ref81.blockchain, exchange = _ref81.exchange, path = _ref81.path, amountIn = _ref81.amountIn, amountOut = _ref81.amountOut, amountInMax = _ref81.amountInMax, amountOutMin = _ref81.amountOutMin;\n _context41.prev = 1;\n _context41.next = 4;\n return getBestPool$2({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n amountIn: amountIn || amountInMax,\n amountOut: amountOut || amountOutMin\n });\n\n case 4:\n return _context41.abrupt(\"return\", !!_context41.sent);\n\n case 7:\n _context41.prev = 7;\n _context41.t0 = _context41[\"catch\"](1);\n return _context41.abrupt(\"return\", false);\n\n case 10:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41, null, [[1, 7]]);\n }));\n\n return function pathExists$3(_x43) {\n return _ref82.apply(this, arguments);\n };\n}();\n\nvar findPath$3 = /*#__PURE__*/function () {\n var _ref84 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee43(_ref83) {\n var blockchain, exchange, tokenIn, tokenOut, amountIn, amountOut, amountInMax, amountOutMin, path, pools, allPoolsForAllUSD, usdPath;\n return _regeneratorRuntime.wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n blockchain = _ref83.blockchain, exchange = _ref83.exchange, tokenIn = _ref83.tokenIn, tokenOut = _ref83.tokenOut, amountIn = _ref83.amountIn, amountOut = _ref83.amountOut, amountInMax = _ref83.amountInMax, amountOutMin = _ref83.amountOutMin;\n\n if (!([tokenIn, tokenOut].includes(Blockchains[blockchain].currency.address) && [tokenIn, tokenOut].includes(Blockchains[blockchain].wrapped.address))) {\n _context43.next = 3;\n break;\n }\n\n return _context43.abrupt(\"return\", {\n path: undefined,\n exchangePath: undefined\n });\n\n case 3:\n pools = []; // DIRECT PATH\n\n _context43.next = 6;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, tokenOut],\n amountIn: amountIn || amountInMax,\n amountOut: amountOut || amountOutMin\n });\n\n case 6:\n _context43.t0 = _context43.sent;\n pools = [_context43.t0];\n\n if (pools.filter(Boolean).length) {\n path = [tokenIn, tokenOut];\n } // PATH VIA WRAPPED\n\n\n if (!(!path && tokenIn != Blockchains[blockchain].wrapped.address && tokenOut != Blockchains[blockchain].wrapped.address)) {\n _context43.next = 37;\n break;\n }\n\n pools = [];\n\n if (!(amountOut || amountOutMin)) {\n _context43.next = 25;\n break;\n }\n\n _context43.t1 = pools;\n _context43.next = 15;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [Blockchains[blockchain].wrapped.address, tokenOut],\n amountOut: amountOut || amountOutMin\n });\n\n case 15:\n _context43.t2 = _context43.sent;\n\n _context43.t1.push.call(_context43.t1, _context43.t2);\n\n if (!pools.filter(Boolean).length) {\n _context43.next = 23;\n break;\n }\n\n _context43.t3 = pools;\n _context43.next = 21;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, Blockchains[blockchain].wrapped.address],\n amountOut: pools[0].amountIn\n });\n\n case 21:\n _context43.t4 = _context43.sent;\n\n _context43.t3.unshift.call(_context43.t3, _context43.t4);\n\n case 23:\n _context43.next = 36;\n break;\n\n case 25:\n _context43.t5 = pools;\n _context43.next = 28;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, Blockchains[blockchain].wrapped.address],\n amountIn: amountIn || amountInMax\n });\n\n case 28:\n _context43.t6 = _context43.sent;\n\n _context43.t5.push.call(_context43.t5, _context43.t6);\n\n if (!pools.filter(Boolean).length) {\n _context43.next = 36;\n break;\n }\n\n _context43.t7 = pools;\n _context43.next = 34;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [Blockchains[blockchain].wrapped.address, tokenOut],\n amountIn: pools[0].amountOut\n });\n\n case 34:\n _context43.t8 = _context43.sent;\n\n _context43.t7.push.call(_context43.t7, _context43.t8);\n\n case 36:\n if (pools.filter(Boolean).length === 2) {\n // path via WRAPPED\n path = [tokenIn, Blockchains[blockchain].wrapped.address, tokenOut];\n }\n\n case 37:\n if (path) {\n _context43.next = 44;\n break;\n }\n\n pools = [];\n _context43.next = 41;\n return Promise.all(Blockchains[blockchain].stables.usd.map( /*#__PURE__*/function () {\n var _ref85 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee42(stable) {\n var pools;\n return _regeneratorRuntime.wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n pools = [];\n\n if (!(amountOut || amountOutMin)) {\n _context42.next = 15;\n break;\n }\n\n _context42.t0 = pools;\n _context42.next = 5;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [stable, tokenOut],\n amountOut: amountOut || amountOutMin\n });\n\n case 5:\n _context42.t1 = _context42.sent;\n\n _context42.t0.push.call(_context42.t0, _context42.t1);\n\n if (!pools.filter(Boolean).length) {\n _context42.next = 13;\n break;\n }\n\n _context42.t2 = pools;\n _context42.next = 11;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, stable],\n amountOut: pools[0].amountIn\n });\n\n case 11:\n _context42.t3 = _context42.sent;\n\n _context42.t2.unshift.call(_context42.t2, _context42.t3);\n\n case 13:\n _context42.next = 26;\n break;\n\n case 15:\n _context42.t4 = pools;\n _context42.next = 18;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, stable],\n amountIn: amountIn || amountInMax\n });\n\n case 18:\n _context42.t5 = _context42.sent;\n\n _context42.t4.push.call(_context42.t4, _context42.t5);\n\n if (!pools.filter(Boolean).length) {\n _context42.next = 26;\n break;\n }\n\n _context42.t6 = pools;\n _context42.next = 24;\n return getBestPool$2({\n exchange: exchange,\n blockchain: blockchain,\n path: [stable, tokenOut],\n amountIn: pools[0].amountOut\n });\n\n case 24:\n _context42.t7 = _context42.sent;\n\n _context42.t6.push.call(_context42.t6, _context42.t7);\n\n case 26:\n if (!(pools.filter(Boolean).length === 2)) {\n _context42.next = 28;\n break;\n }\n\n return _context42.abrupt(\"return\", [stable, pools]);\n\n case 28:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42);\n }));\n\n return function (_x45) {\n return _ref85.apply(this, arguments);\n };\n }()));\n\n case 41:\n allPoolsForAllUSD = _context43.sent;\n usdPath = allPoolsForAllUSD.filter(Boolean)[0];\n\n if (usdPath) {\n path = [tokenIn, usdPath[0], tokenOut];\n pools = usdPath[1];\n }\n\n case 44:\n // Add WRAPPED to route path if things start or end with NATIVE\n // because that actually reflects how things are routed in reality:\n if (_optionalChain$2([path, 'optionalAccess', function (_) {\n return _.length;\n }]) && path[0] == Blockchains[blockchain].currency.address) {\n path.splice(1, 0, Blockchains[blockchain].wrapped.address);\n } else if (_optionalChain$2([path, 'optionalAccess', function (_2) {\n return _2.length;\n }]) && path[path.length - 1] == Blockchains[blockchain].currency.address) {\n path.splice(path.length - 1, 0, Blockchains[blockchain].wrapped.address);\n }\n\n if (!path) {\n pools = [];\n }\n\n return _context43.abrupt(\"return\", {\n path: path,\n pools: pools,\n exchangePath: getExchangePath$2({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n })\n });\n\n case 47:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43);\n }));\n\n return function findPath$3(_x44) {\n return _ref84.apply(this, arguments);\n };\n}();\n\nvar getAmountOut$2 = function getAmountOut$2(_ref86) {\n var blockchain = _ref86.blockchain,\n exchange = _ref86.exchange,\n path = _ref86.path,\n pools = _ref86.pools,\n amountIn = _ref86.amountIn;\n return pools[pools.length - 1].amountOut;\n};\n\nvar getAmountIn$2 = /*#__PURE__*/function () {\n var _ref88 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee44(_ref87) {\n var blockchain, exchange, path, pools, amountOut, block, _path, data;\n\n return _regeneratorRuntime.wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n blockchain = _ref87.blockchain, exchange = _ref87.exchange, path = _ref87.path, pools = _ref87.pools, amountOut = _ref87.amountOut, block = _ref87.block;\n\n if (!(block === undefined)) {\n _context44.next = 5;\n break;\n }\n\n return _context44.abrupt(\"return\", pools[0].amountIn);\n\n case 5:\n if (pools.length == 2) {\n _path = ethers.utils.solidityPack([\"address\", \"uint24\", \"address\", \"uint24\", \"address\"], [pools[1].path[1], pools[1].fee, pools[0].path[1], pools[0].fee, pools[0].path[0]]);\n } else if (pools.length == 1) {\n _path = ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pools[0].path[1], pools[0].fee, pools[0].path[0]]);\n }\n\n _context44.next = 8;\n return request({\n block: block,\n blockchain: blockchain,\n address: exchange[blockchain].quoter.address,\n api: exchange[blockchain].quoter.api,\n method: 'quoteExactOutput',\n params: {\n path: _path,\n amountOut: amountOut\n }\n });\n\n case 8:\n data = _context44.sent;\n return _context44.abrupt(\"return\", data.amountIn);\n\n case 10:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44);\n }));\n\n return function getAmountIn$2(_x46) {\n return _ref88.apply(this, arguments);\n };\n}();\n\nvar getAmounts$3 = /*#__PURE__*/function () {\n var _ref90 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee45(_ref89) {\n var blockchain, exchange, path, pools, block, tokenIn, tokenOut, amountOut, amountIn, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n blockchain = _ref89.blockchain, exchange = _ref89.exchange, path = _ref89.path, pools = _ref89.pools, block = _ref89.block, tokenIn = _ref89.tokenIn, tokenOut = _ref89.tokenOut, amountOut = _ref89.amountOut, amountIn = _ref89.amountIn, amountInMax = _ref89.amountInMax, amountOutMin = _ref89.amountOutMin;\n\n if (!amountOut) {\n _context45.next = 12;\n break;\n }\n\n _context45.next = 4;\n return getAmountIn$2({\n blockchain: blockchain,\n exchange: exchange,\n block: block,\n path: path,\n pools: pools,\n amountOut: amountOut,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 4:\n amountIn = _context45.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context45.next = 9;\n break;\n }\n\n return _context45.abrupt(\"return\", {});\n\n case 9:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 10:\n _context45.next = 43;\n break;\n\n case 12:\n if (!amountIn) {\n _context45.next = 23;\n break;\n }\n\n _context45.next = 15;\n return getAmountOut$2({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n pools: pools,\n amountIn: amountIn,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 15:\n amountOut = _context45.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context45.next = 20;\n break;\n }\n\n return _context45.abrupt(\"return\", {});\n\n case 20:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 21:\n _context45.next = 43;\n break;\n\n case 23:\n if (!amountOutMin) {\n _context45.next = 34;\n break;\n }\n\n _context45.next = 26;\n return getAmountIn$2({\n blockchain: blockchain,\n exchange: exchange,\n block: block,\n path: path,\n pools: pools,\n amountOut: amountOutMin,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 26:\n amountIn = _context45.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context45.next = 31;\n break;\n }\n\n return _context45.abrupt(\"return\", {});\n\n case 31:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 32:\n _context45.next = 43;\n break;\n\n case 34:\n if (!amountInMax) {\n _context45.next = 43;\n break;\n }\n\n _context45.next = 37;\n return getAmountOut$2({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n pools: pools,\n amountIn: amountInMax,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 37:\n amountOut = _context45.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context45.next = 42;\n break;\n }\n\n return _context45.abrupt(\"return\", {});\n\n case 42:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 43:\n return _context45.abrupt(\"return\", {\n amountOut: amountOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 44:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45);\n }));\n\n return function getAmounts$3(_x47) {\n return _ref90.apply(this, arguments);\n };\n}();\n\nvar getPrep$2 = /*#__PURE__*/function () {\n var _ref92 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee46(_ref91) {\n var exchange, blockchain, tokenIn, amountIn, account, tokenOut, routerAddress, allowanceForRouter, transaction;\n return _regeneratorRuntime.wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n exchange = _ref91.exchange, blockchain = _ref91.blockchain, tokenIn = _ref91.tokenIn, amountIn = _ref91.amountIn, account = _ref91.account, tokenOut = _ref91.tokenOut;\n\n if (!(tokenIn === Blockchains[blockchain].currency.address)) {\n _context46.next = 3;\n break;\n }\n\n return _context46.abrupt(\"return\");\n\n case 3:\n if (tokenOut === Blockchains[blockchain].currency.address) {\n // unwrapping WBNB requires smart router\n routerAddress = exchange[blockchain].smartRouter.address;\n } else {\n // approve simpleRouter\n routerAddress = exchange[blockchain].router.address;\n }\n\n _context46.next = 6;\n return request({\n blockchain: blockchain,\n address: tokenIn,\n method: 'allowance',\n api: Token[blockchain]['20'],\n params: [account, routerAddress]\n });\n\n case 6:\n allowanceForRouter = _context46.sent;\n\n if (!allowanceForRouter.lt(amountIn)) {\n _context46.next = 10;\n break;\n }\n\n transaction = {\n blockchain: blockchain,\n from: account,\n to: tokenIn,\n api: Token[blockchain]['20'],\n method: 'approve',\n params: [routerAddress, Blockchains[blockchain].maxInt]\n };\n return _context46.abrupt(\"return\", {\n transaction: transaction\n });\n\n case 10:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46);\n }));\n\n return function getPrep$2(_x48) {\n return _ref92.apply(this, arguments);\n };\n}();\n\nvar getTransaction$3 = /*#__PURE__*/function () {\n var _ref94 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee47(_ref93) {\n var blockchain, exchange, pools, path, amountIn, amountInMax, amountOut, amountOutMin, amountInInput, amountOutInput, amountInMaxInput, amountOutMinInput, account, inputTokenPushed, transaction, deadline, exchangePath, routerInterface, packedPath, _packedPath;\n\n return _regeneratorRuntime.wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n blockchain = _ref93.blockchain, exchange = _ref93.exchange, pools = _ref93.pools, path = _ref93.path, amountIn = _ref93.amountIn, amountInMax = _ref93.amountInMax, amountOut = _ref93.amountOut, amountOutMin = _ref93.amountOutMin, amountInInput = _ref93.amountInInput, amountOutInput = _ref93.amountOutInput, amountInMaxInput = _ref93.amountInMaxInput, amountOutMinInput = _ref93.amountOutMinInput, account = _ref93.account, inputTokenPushed = _ref93.inputTokenPushed;\n transaction = {\n blockchain: blockchain,\n from: account\n };\n deadline = Math.floor(Date.now() / 1000) + 21600; // 6 hours\n\n exchangePath = getExchangePath$2({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n });\n\n if (path[path.length - 1] === Blockchains[blockchain].currency.address) {\n // unwraping WBNB to BNB after swap requires smart router\n transaction.to = exchange[blockchain].smartRouter.address;\n transaction.api = exchange[blockchain].smartRouter.api;\n transaction.method = 'multicall'; // multicall calls itself\n\n routerInterface = new ethers.utils.Interface(exchange[blockchain].smartRouter.api);\n transaction.params = {\n data: []\n };\n\n if (exchangePath.length === 2) {\n // single swap\n if (amountInInput || amountOutMinInput) {\n transaction.params.data.push(routerInterface.encodeFunctionData('exactInputSingle', [{\n tokenIn: exchangePath[0],\n tokenOut: exchangePath[1],\n fee: pools[0].fee,\n recipient: exchange[blockchain].smartRouter.address,\n // router must convert WRAPPED->NATIVE\n deadline: deadline,\n amountIn: (amountInMax || amountIn).toString(),\n amountOutMinimum: (amountOutMin || amountOut).toString(),\n sqrtPriceLimitX96: Blockchains[blockchain].zero\n }]));\n } else if (amountOutInput || amountInMaxInput) {\n transaction.params.data.push(routerInterface.encodeFunctionData('exactOutputSingle', [{\n tokenIn: exchangePath[0],\n tokenOut: exchangePath[1],\n fee: pools[0].fee,\n recipient: exchange[blockchain].smartRouter.address,\n // router must convert WRAPPED->NATIVE\n deadline: deadline,\n amountInMaximum: (amountInMax || amountIn).toString(),\n amountOut: (amountOutMin || amountOut).toString(),\n sqrtPriceLimitX96: Blockchains[blockchain].zero\n }]));\n }\n } else {\n // multi swap\n packedPath = ethers.utils.solidityPack([\"address\", \"uint24\", \"address\", \"uint24\", \"address\"], [pools[0].path[0], pools[0].fee, pools[0].path[1], pools[1].fee, pools[1].path[1]]);\n\n if (amountInInput || amountOutMinInput) {\n transaction.params.data.push(routerInterface.encodeFunctionData('exactInput', [{\n path: packedPath,\n recipient: exchange[blockchain].smartRouter.address,\n // router must convert WRAPPED->NATIVE\n deadline: deadline,\n amountIn: (amountInMax || amountIn).toString(),\n amountOutMinimum: (amountOutMin || amountOut).toString()\n }]));\n } else if (amountOutInput || amountInMaxInput) {\n transaction.params.data.push(routerInterface.encodeFunctionData('exactOutput', [{\n path: packedPath,\n recipient: exchange[blockchain].smartRouter.address,\n // router must convert WRAPPED->NATIVE\n deadline: deadline,\n amountInMaximum: (amountInMax || amountIn).toString(),\n amountOut: (amountOutMin || amountOut).toString()\n }]));\n }\n } // unwrap WRAPPED to NATIVE\n\n\n transaction.params.data.push(routerInterface.encodeFunctionData('unwrapWETH9', [(amountOutMin || amountOut).toString(), account]));\n } else {\n // use simple router (for every swap not resulting in NATIVE)\n transaction.to = exchange[blockchain].router.address;\n transaction.api = exchange[blockchain].router.api;\n\n if (path[0] === Blockchains[blockchain].currency.address) {\n transaction.value = (amountIn || amountInMax).toString();\n }\n\n if (exchangePath.length === 2) {\n // single swap\n if (amountInInput || amountOutMinInput) {\n transaction.method = 'exactInputSingle';\n transaction.params = {\n params: {\n tokenIn: exchangePath[0],\n tokenOut: exchangePath[1],\n fee: pools[0].fee,\n recipient: account,\n deadline: deadline,\n amountIn: (amountInMax || amountIn).toString(),\n amountOutMinimum: (amountOutMin || amountOut).toString(),\n sqrtPriceLimitX96: Blockchains[blockchain].zero\n }\n };\n } else if (amountOutInput || amountInMaxInput) {\n transaction.method = 'exactOutputSingle';\n transaction.params = {\n params: {\n tokenIn: exchangePath[0],\n tokenOut: exchangePath[1],\n fee: pools[0].fee,\n recipient: account,\n deadline: deadline,\n amountInMaximum: (amountInMax || amountIn).toString(),\n amountOut: (amountOutMin || amountOut).toString(),\n sqrtPriceLimitX96: Blockchains[blockchain].zero\n }\n };\n }\n } else {\n // multi swap\n _packedPath = ethers.utils.solidityPack([\"address\", \"uint24\", \"address\", \"uint24\", \"address\"], [pools[0].path[0], pools[0].fee, pools[0].path[1], pools[1].fee, pools[1].path[1]]);\n\n if (amountInInput || amountOutMinInput) {\n transaction.method = 'exactInput';\n transaction.params = {\n params: {\n path: _packedPath,\n recipient: account,\n deadline: deadline,\n amountIn: (amountInMax || amountIn).toString(),\n amountOutMinimum: (amountOutMin || amountOut).toString()\n }\n };\n } else if (amountOutInput || amountInMaxInput) {\n transaction.method = 'exactOutput';\n transaction.params = {\n params: {\n path: _packedPath,\n recipient: account,\n deadline: deadline,\n amountInMaximum: (amountInMax || amountIn).toString(),\n amountOut: (amountOutMin || amountOut).toString()\n }\n };\n }\n }\n }\n\n return _context47.abrupt(\"return\", transaction);\n\n case 6:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47);\n }));\n\n return function getTransaction$3(_x49) {\n return _ref94.apply(this, arguments);\n };\n}();\n\nvar ROUTER$2 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_deployer\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_WETH9\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"WETH9\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"deployer\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinimum\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISwapRouter.ExactInputParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactInput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct ISwapRouter.ExactInputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactInputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMaximum\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISwapRouter.ExactOutputParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactOutput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMaximum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct ISwapRouter.ExactOutputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactOutputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"results\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"_data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"pancakeV3SwapCallback\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"refundETH\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermit\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitAllowed\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitAllowedIfNecessary\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitIfNecessary\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepToken\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepTokenWithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9WithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n}];\nvar SMART_ROUTER = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_factoryV2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_deployer\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_factoryV3\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_positionManager\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_stableFactory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_stableInfo\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_WETH9\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"factory\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"info\",\n \"type\": \"address\"\n }],\n \"name\": \"SetStableSwap\",\n \"type\": \"event\"\n}, {\n \"inputs\": [],\n \"name\": \"WETH9\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveMax\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveMaxMinusOne\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveZeroThenMax\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveZeroThenMaxMinusOne\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"callPositionManager\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"result\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"paths\",\n \"type\": \"bytes[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"amounts\",\n \"type\": \"uint128[]\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maximumTickDivergence\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsAgo\",\n \"type\": \"uint32\"\n }],\n \"name\": \"checkOracleSlippage\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maximumTickDivergence\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsAgo\",\n \"type\": \"uint32\"\n }],\n \"name\": \"checkOracleSlippage\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"deployer\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinimum\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactInputParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactInput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactInputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactInputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"flag\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"exactInputStableSwap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMaximum\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactOutputParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactOutput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMaximum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactOutputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactOutputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"flag\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"exactOutputStableSwap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factoryV2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getApprovalType\",\n \"outputs\": [{\n \"internalType\": \"enum IApproveAndCall.ApprovalType\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount0Min\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1Min\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IApproveAndCall.IncreaseLiquidityParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"increaseLiquidity\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"result\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount0Min\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1Min\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IApproveAndCall.MintParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"mint\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"result\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"previousBlockhash\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"results\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"_data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"pancakeV3SwapCallback\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"positionManager\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"pull\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"refundETH\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermit\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitAllowed\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitAllowedIfNecessary\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitIfNecessary\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_info\",\n \"type\": \"address\"\n }],\n \"name\": \"setStableSwap\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"stableSwapFactory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"stableSwapInfo\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"swapExactTokensForTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"swapTokensForExactTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepToken\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }],\n \"name\": \"sweepToken\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepTokenWithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepTokenWithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9WithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9WithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"wrapETH\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n}];\nvar FACTORY$2 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_poolDeployer\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }],\n \"name\": \"FeeAmountEnabled\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"whitelistRequested\",\n \"type\": \"bool\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }],\n \"name\": \"FeeAmountExtraInfoUpdated\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnerChanged\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }],\n \"name\": \"PoolCreated\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"lmPoolDeployer\",\n \"type\": \"address\"\n }],\n \"name\": \"SetLmPoolDeployer\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"verified\",\n \"type\": \"bool\"\n }],\n \"name\": \"WhiteListAdded\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount0Requested\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1Requested\",\n \"type\": \"uint128\"\n }],\n \"name\": \"collectProtocol\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }],\n \"name\": \"createPool\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }],\n \"name\": \"enableFeeAmount\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"name\": \"feeAmountTickSpacing\",\n \"outputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"\",\n \"type\": \"int24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"name\": \"feeAmountTickSpacingExtraInfo\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"whitelistRequested\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"name\": \"getPool\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"lmPoolDeployer\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"poolDeployer\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"whitelistRequested\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }],\n \"name\": \"setFeeAmountExtraInfo\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol0\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol1\",\n \"type\": \"uint32\"\n }],\n \"name\": \"setFeeProtocol\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"lmPool\",\n \"type\": \"address\"\n }],\n \"name\": \"setLmPool\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_lmPoolDeployer\",\n \"type\": \"address\"\n }],\n \"name\": \"setLmPoolDeployer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }],\n \"name\": \"setOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"verified\",\n \"type\": \"bool\"\n }],\n \"name\": \"setWhiteListAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar POOL$1 = [{\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Burn\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"name\": \"Collect\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"name\": \"CollectProtocol\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"paid0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"paid1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Flash\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNextOld\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNextNew\",\n \"type\": \"uint16\"\n }],\n \"name\": \"IncreaseObservationCardinalityNext\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int24\",\n \"name\": \"tick\",\n \"type\": \"int24\"\n }],\n \"name\": \"Initialize\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Mint\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol0Old\",\n \"type\": \"uint32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol1Old\",\n \"type\": \"uint32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol0New\",\n \"type\": \"uint32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol1New\",\n \"type\": \"uint32\"\n }],\n \"name\": \"SetFeeProtocol\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"addr\",\n \"type\": \"address\"\n }],\n \"name\": \"SetLmPoolEvent\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int256\",\n \"name\": \"amount0\",\n \"type\": \"int256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int256\",\n \"name\": \"amount1\",\n \"type\": \"int256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"liquidity\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int24\",\n \"name\": \"tick\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"protocolFeesToken0\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"protocolFeesToken1\",\n \"type\": \"uint128\"\n }],\n \"name\": \"Swap\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }],\n \"name\": \"burn\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount0Requested\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1Requested\",\n \"type\": \"uint128\"\n }],\n \"name\": \"collect\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount0Requested\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1Requested\",\n \"type\": \"uint128\"\n }],\n \"name\": \"collectProtocol\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"fee\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"feeGrowthGlobal0X128\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"feeGrowthGlobal1X128\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"flash\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNext\",\n \"type\": \"uint16\"\n }],\n \"name\": \"increaseObservationCardinalityNext\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"liquidity\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"lmPool\",\n \"outputs\": [{\n \"internalType\": \"contract IPancakeV3LmPool\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"maxLiquidityPerTick\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"mint\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"name\": \"observations\",\n \"outputs\": [{\n \"internalType\": \"uint32\",\n \"name\": \"blockTimestamp\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"int56\",\n \"name\": \"tickCumulative\",\n \"type\": \"int56\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"secondsPerLiquidityCumulativeX128\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"initialized\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint32[]\",\n \"name\": \"secondsAgos\",\n \"type\": \"uint32[]\"\n }],\n \"name\": \"observe\",\n \"outputs\": [{\n \"internalType\": \"int56[]\",\n \"name\": \"tickCumulatives\",\n \"type\": \"int56[]\"\n }, {\n \"internalType\": \"uint160[]\",\n \"name\": \"secondsPerLiquidityCumulativeX128s\",\n \"type\": \"uint160[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"positions\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"liquidity\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthInside0LastX128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthInside1LastX128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"tokensOwed0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"tokensOwed1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"protocolFees\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"token0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"token1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol0\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol1\",\n \"type\": \"uint32\"\n }],\n \"name\": \"setFeeProtocol\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_lmPool\",\n \"type\": \"address\"\n }],\n \"name\": \"setLmPool\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"slot0\",\n \"outputs\": [{\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tick\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"observationIndex\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinality\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNext\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"feeProtocol\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"unlocked\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }],\n \"name\": \"snapshotCumulativesInside\",\n \"outputs\": [{\n \"internalType\": \"int56\",\n \"name\": \"tickCumulativeInside\",\n \"type\": \"int56\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"secondsPerLiquidityInsideX128\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsInside\",\n \"type\": \"uint32\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"zeroForOne\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amountSpecified\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"swap\",\n \"outputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1\",\n \"type\": \"int256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int16\",\n \"name\": \"\",\n \"type\": \"int16\"\n }],\n \"name\": \"tickBitmap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"tickSpacing\",\n \"outputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"\",\n \"type\": \"int24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"\",\n \"type\": \"int24\"\n }],\n \"name\": \"ticks\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"liquidityGross\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"int128\",\n \"name\": \"liquidityNet\",\n \"type\": \"int128\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthOutside0X128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthOutside1X128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int56\",\n \"name\": \"tickCumulativeOutside\",\n \"type\": \"int56\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"secondsPerLiquidityOutsideX128\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsOutside\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"initialized\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"token0\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"token1\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar QUOTER$2 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_deployer\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_WETH9\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"WETH9\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"deployer\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }],\n \"name\": \"pancakeV3SwapCallback\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"name\": \"quoteExactInput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160[]\",\n \"name\": \"sqrtPriceX96AfterList\",\n \"type\": \"uint160[]\"\n }, {\n \"internalType\": \"uint32[]\",\n \"name\": \"initializedTicksCrossedList\",\n \"type\": \"uint32[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IQuoterV2.QuoteExactInputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"quoteExactInputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96After\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"initializedTicksCrossed\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"name\": \"quoteExactOutput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160[]\",\n \"name\": \"sqrtPriceX96AfterList\",\n \"type\": \"uint160[]\"\n }, {\n \"internalType\": \"uint32[]\",\n \"name\": \"initializedTicksCrossedList\",\n \"type\": \"uint32[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IQuoterV2.QuoteExactOutputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"quoteExactOutputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96After\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"initializedTicksCrossed\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar PancakeSwapV3 = {\n findPath: findPath$3,\n pathExists: pathExists$3,\n getAmounts: getAmounts$3,\n getPrep: getPrep$2,\n getTransaction: getTransaction$3,\n ROUTER: ROUTER$2,\n SMART_ROUTER: SMART_ROUTER,\n FACTORY: FACTORY$2,\n POOL: POOL$1,\n QUOTER: QUOTER$2\n};\nvar exchange$e = {\n name: 'pancakeswap_v3',\n label: 'PancakeSwap v3',\n logo: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTk4IiBoZWlnaHQ9IjE5OSIgdmlld0JveD0iMCAwIDE5OCAxOTkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTguNTUyIDE5OC42MDdDNjkuMDYxMyAxOTguNTg1IDQ1LjMwNiAxOTEuNTggMjguNzA3OSAxNzguOTk4QzExLjkxMDggMTY2LjI2NSAzIDE0OC4xOTUgMyAxMjcuNzQ4QzMgMTA4LjA0NyAxMS44OTEzIDkzLjg0MTEgMjEuOTUxNyA4NC4yMzg1QzI5LjgzNTkgNzYuNzEzMiAzOC41MzYzIDcxLjg5MzYgNDQuNTk0NSA2OS4xMjEzQzQzLjIyNDUgNjQuOTU5NCA0MS41MTUzIDU5LjUxMDggMzkuOTg2MSA1My44ODMyQzM3LjkzOTkgNDYuMzUyNyAzNS45MzI1IDM3LjUxNzQgMzUuOTMyNSAzMS4wNDI5QzM1LjkzMjUgMjMuMzc5NSAzNy42MjA0IDE1LjY4MzMgNDIuMTcxNCA5LjcwMzA2QzQ2Ljk3OTcgMy4zODQ3NiA1NC4yMTgyIDAgNjIuOTI2NCAwQzY5LjczMjIgMCA3NS41MTAzIDIuNDk5MDMgODAuMDMzOSA2LjgxMDExQzg0LjM1NzkgMTAuOTMwOSA4Ny4yMzU3IDE2LjQwMzQgODkuMjIyNyAyMi4xMDgyQzkyLjcxNDMgMzIuMTMyNSA5NC4wNzM4IDQ0LjcyNjQgOTQuNDU1MSA1Ny4yOTQ1SDEwMi43OTZDMTAzLjE3OCA0NC43MjY0IDEwNC41MzcgMzIuMTMyNSAxMDguMDI5IDIyLjEwODJDMTEwLjAxNiAxNi40MDM0IDExMi44OTQgMTAuOTMwOSAxMTcuMjE4IDYuODEwMTFDMTIxLjc0MSAyLjQ5OTAzIDEyNy41MTkgMCAxMzQuMzI1IDBDMTQzLjAzMyAwIDE1MC4yNzIgMy4zODQ3NiAxNTUuMDggOS43MDMwNkMxNTkuNjMxIDE1LjY4MzMgMTYxLjMxOSAyMy4zNzk1IDE2MS4zMTkgMzEuMDQyOUMxNjEuMzE5IDM3LjUxNzQgMTU5LjMxMiA0Ni4zNTI3IDE1Ny4yNjUgNTMuODgzMkMxNTUuNzM2IDU5LjUxMDggMTU0LjAyNyA2NC45NTk0IDE1Mi42NTcgNjkuMTIxM0MxNTguNzE1IDcxLjg5MzYgMTY3LjQxNiA3Ni43MTMyIDE3NS4zIDg0LjIzODVDMTg1LjM2IDkzLjg0MTEgMTk0LjI1MiAxMDguMDQ3IDE5NC4yNTIgMTI3Ljc0OEMxOTQuMjUyIDE0OC4xOTUgMTg1LjM0MSAxNjYuMjY1IDE2OC41NDQgMTc4Ljk5OEMxNTEuOTQ1IDE5MS41OCAxMjguMTkgMTk4LjU4NSA5OC42OTk2IDE5OC42MDdIOTguNTUyWiIgZmlsbD0iIzYzMzAwMSIvPgo8cGF0aCBkPSJNNjIuOTI2MiA3LjI4ODMzQzUwLjE3MTYgNy4yODgzMyA0NC4zMDA0IDE2LjgwMzcgNDQuMzAwNCAyOS45NjMyQzQ0LjMwMDQgNDAuNDIzMSA1MS4xMjIyIDYxLjM3MTUgNTMuOTIxMiA2OS41MjYzQzU0LjU1MDggNzEuMzYwNSA1My41NjE2IDczLjM3MDEgNTEuNzU3NCA3NC4wODE0QzQxLjUzNTEgNzguMTEyMSAxMS4zNjc5IDkyLjg3IDExLjM2NzkgMTI2LjY2OUMxMS4zNjc5IDE2Mi4yNzIgNDIuMDI0NiAxODkuMTE3IDk4LjU1ODEgMTg5LjE2Qzk4LjU4MDYgMTg5LjE2IDk4LjYwMzEgMTg5LjE1OSA5OC42MjU2IDE4OS4xNTlDOTguNjQ4MSAxODkuMTU5IDk4LjY3MDYgMTg5LjE2IDk4LjY5MzEgMTg5LjE2QzE1NS4yMjcgMTg5LjExNyAxODUuODgzIDE2Mi4yNzIgMTg1Ljg4MyAxMjYuNjY5QzE4NS44ODMgOTIuODcgMTU1LjcxNiA3OC4xMTIxIDE0NS40OTQgNzQuMDgxNEMxNDMuNjkgNzMuMzcwMSAxNDIuNyA3MS4zNjA1IDE0My4zMyA2OS41MjYzQzE0Ni4xMjkgNjEuMzcxNSAxNTIuOTUxIDQwLjQyMzEgMTUyLjk1MSAyOS45NjMyQzE1Mi45NTEgMTYuODAzNyAxNDcuMDggNy4yODgzMyAxMzQuMzI1IDcuMjg4MzNDMTE1Ljk2NSA3LjI4ODMzIDExMS4zODkgMzMuMjk1NSAxMTEuMDYyIDYxLjIwNzVDMTExLjA0IDYzLjA3MDkgMTA5LjUzNCA2NC41ODI4IDEwNy42NyA2NC41ODI4SDg5LjU4MDdDODcuNzE3MiA2NC41ODI4IDg2LjIxMDggNjMuMDcwOSA4Ni4xODkgNjEuMjA3NUM4NS44NjI2IDMzLjI5NTUgODEuMjg2IDcuMjg4MzMgNjIuOTI2MiA3LjI4ODMzWiIgZmlsbD0iI0QxODg0RiIvPgo8cGF0aCBkPSJNOTguNjkzMSAxNzcuNzU1QzU3LjE1NTEgMTc3Ljc1NSAxMS40Mzk3IDE1NS41MiAxMS4zNjgxIDEyNi43MzdDMTEuMzY4IDEyNi43ODEgMTEuMzY3OSAxMjYuODI2IDExLjM2NzkgMTI2Ljg3MUMxMS4zNjc5IDE2Mi41MDMgNDIuMDczNCAxODkuMzYyIDk4LjY5MzEgMTg5LjM2MkMxNTUuMzEzIDE4OS4zNjIgMTg2LjAxOCAxNjIuNTAzIDE4Ni4wMTggMTI2Ljg3MUMxODYuMDE4IDEyNi44MjYgMTg2LjAxOCAxMjYuNzgxIDE4Ni4wMTggMTI2LjczN0MxODUuOTQ2IDE1NS41MiAxNDAuMjMxIDE3Ny43NTUgOTguNjkzMSAxNzcuNzU1WiIgZmlsbD0iI0ZFREM5MCIvPgo8cGF0aCBkPSJNNzUuNjEzNSAxMTcuODk2Qzc1LjYxMzUgMTI3LjYxNCA3MS4wMjEgMTMyLjY3NSA2NS4zNTU4IDEzMi42NzVDNTkuNjkwNyAxMzIuNjc1IDU1LjA5ODEgMTI3LjYxNCA1NS4wOTgxIDExNy44OTZDNTUuMDk4MSAxMDguMTc4IDU5LjY5MDcgMTAzLjExNyA2NS4zNTU4IDEwMy4xMTdDNzEuMDIxIDEwMy4xMTcgNzUuNjEzNSAxMDguMTc4IDc1LjYxMzUgMTE3Ljg5NloiIGZpbGw9IiM2MzMwMDEiLz4KPHBhdGggZD0iTTE0Mi4yODggMTE3Ljg5NkMxNDIuMjg4IDEyNy42MTQgMTM3LjY5NiAxMzIuNjc1IDEzMi4wMzEgMTMyLjY3NUMxMjYuMzY1IDEzMi42NzUgMTIxLjc3MyAxMjcuNjE0IDEyMS43NzMgMTE3Ljg5NkMxMjEuNzczIDEwOC4xNzggMTI2LjM2NSAxMDMuMTE3IDEzMi4wMzEgMTAzLjExN0MxMzcuNjk2IDEwMy4xMTcgMTQyLjI4OCAxMDguMTc4IDE0Mi4yODggMTE3Ljg5NloiIGZpbGw9IiM2MzMwMDEiLz4KPC9zdmc+Cg==',\n protocol: 'pancakeswap_v3',\n slippage: true,\n fees: [100, 500, 2500, 10000],\n blockchains: ['bsc'],\n bsc: {\n router: {\n address: '0x1b81D678ffb9C0263b24A97847620C99d213eB14',\n api: PancakeSwapV3.ROUTER\n },\n smartRouter: {\n address: '0x13f4EA83D0bd40E75C8222255bc855a974568Dd4',\n api: PancakeSwapV3.SMART_ROUTER\n },\n factory: {\n address: '0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865',\n api: PancakeSwapV3.FACTORY\n },\n pair: {\n api: PancakeSwapV3.POOL\n },\n quoter: {\n address: '0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997',\n api: PancakeSwapV3.QUOTER\n }\n }\n};\n\nvar pancakeswap_v3 = function pancakeswap_v3(scope) {\n return new Exchange(Object.assign(exchange$e, {\n scope: scope,\n findPath: function findPath(args) {\n return PancakeSwapV3.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$e\n }));\n },\n pathExists: function pathExists(args) {\n return PancakeSwapV3.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$e\n }));\n },\n getAmounts: function getAmounts(args) {\n return PancakeSwapV3.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$e\n }));\n },\n getPrep: function getPrep(args) {\n return PancakeSwapV3.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$e\n }));\n },\n getTransaction: function getTransaction(args) {\n return PancakeSwapV3.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$e\n }));\n }\n }));\n};\n\nvar exchange$d = {\n name: 'quickswap',\n label: 'QuickSwap',\n logo: 'data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzAyLjQ1IDcwMi40NyI+PGRlZnM+PGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIj48cmVjdCB3aWR0aD0iNzUwIiBoZWlnaHQ9Ijc1MCIgZmlsbD0ibm9uZSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgpIj48cGF0aCBkPSJNMzU0Ljc0LDI0LjM3YTM1MS4yNywzNTEuMjcsMCwwLDEsMzYzLjc0LDI3NywzNTQsMzU0LDAsMCwxLDEuMjMsMTQxLjI2QTM1MS43NiwzNTEuNzYsMCwwLDEsNTEwLjEyLDY5OS4zYy03My43NywzMS0xNTguMjUsMzUuMzUtMjM0LjkxLDEyLjU0QTM1MiwzNTIsMCwwLDEsNDYuNTEsNDk5LjU2Yy0yOC03My40NS0zMC4xNi0xNTYuMzgtNi4yNC0yMzEuMjVBMzUwLjg4LDM1MC44OCwwLDAsMSwzNTQuNzQsMjQuMzciIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTE1OC44MSwzNDkuNThjMS4zOSw2LjQxLDIuMjMsMTIuOTIsMy42MSwxOS4zNS44NSwzLjkzLDIuMTMsMyw0LjE1LDEuMjgsMy44Ny0zLjI1LDcuNTktNi42OSwxMS45NC05LjMxLDEuMjMuMjQsMS44NiwxLjIyLDIuNTMsMi4xLDExLjM5LDE0Ljg3LDI2LjUzLDI0LDQ0LjM3LDI4Ljk0YTE0Ny4yMywxNDcuMjMsMCwwLDAsMjUuMTcsNC42Nyw0Mi42OCw0Mi42OCwwLDAsMS02LjYxLTkuOTVjLTIuODUtNi40MS0xLjg1LTEyLjE1LDIuOTUtMTcuMjIsNS44Ny02LjE5LDEzLjYyLTguNzYsMjEuNDgtMTAuOCwxNi40OC00LjMsMzMuMjctNC43Myw1MC4xOC0zLjUzQTIwMi4xMSwyMDIuMTEsMCwwLDEsMzU4Ljc1LDM2MmMxMSwzLjA2LDIxLjcyLDYuNzMsMzEuNDQsMTIuODgsMS4zNiwxLjA5LDIuMywyLjYsMy42MSwzLjc0LDEyLjQ5LDEzLjQxLDE5Ljc4LDI5LjI1LDIwLjI4LDQ3LjU1LjM0LDEyLjY1LTMuMTYsMjQuNzItOS41LDM1LjgyLTExLjQyLDIwLTI4LjA5LDM0LjU2LTQ4LDQ1LjcxQTE3MC41LDE3MC41LDAsMCwxLDI5MSw1MjguNDJjLTQxLjI0LDQuNDctNzkuNDUtNC40Ny0xMTQuNTktMjYuMzYtMjkuMjEtMTguMTktNTEuNjUtNDMuMDgtNzAtNzEuOTJhMzM5LjU3LDMzOS41NywwLDAsMS0yMi41Mi00Mi43NWMtLjgxLTEuOC0xLTMuODEtMS44Mi01LjI5LjUyLDEuNzUsMS40OSwzLjczLS40Myw1LjYtLjU4LTcuNDUuMDgtMTQuOS40Ny0yMi4zMWEyODcuMTMsMjg3LjEzLDAsMCwxLDkuNDgtNjAuNTRBMjkyLjkxLDI5Mi45MSwwLDAsMSwyNjYuMDYsMTA5LjA5LDI4Ny4yLDI4Ny4yLDAsMCwxLDM0Ni41OSw4OS45YzQzLjU3LTQsODUuNzksMS43MywxMjcsMTYuMzQtNi4yNywxMS44OS00Miw0My43Mi02OS44LDYyLjE1YTk0LjExLDk0LjExLDAsMCwwLTUuNDQtMjMuNTFjLS4xNC0yLDEuNjYtMi42NSwyLjc4LTMuNjFxOC42Ny03LjQ2LDE3LjQzLTE0Ljc3YTE3LjE0LDE3LjE0LDAsMCwwLDEuNjktMS40OWMuNjYtLjcxLDEuNzctMS4zLDEuNTQtMi40cy0xLjU1LTEuMTUtMi40Ny0xLjNhNDYuODIsNDYuODIsMCwwLDAtOC4xNy0xYy0zLjgxLS40NS03LjU2LTEuMy0xMS40LTEuMzgtMi45NS0uMTgtNS44NS0uOTMtOC44My0uNjlhMjguMjIsMjguMjIsMCwwLDEtNC41LS4zMmMtMi41LS43OS01LjA3LS40NC03LjYxLS40My0xLjUyLDAtMy0uMTEtNC41NiwwLTQuMzUuMjUtOC43My0uNDgtMTMuMDcuMzRhMTIuODcsMTIuODcsMCwwLDEtMy4yMS4zMmMtMS4yNiwwLTIuNTEuMDYtMy43NywwYTEyLjM1LDEyLjM1LDAsMCwwLTQuODcuNDdjLTQuNTkuNDEtOS4xOS43OC0xMy43MywxLjYxLTUuNDgsMS4xNi0xMS4wOSwxLjQ0LTE2LjUzLDIuNzktNSwxLjMtMTAuMTMsMi0xNSwzLjc0LTYuNTEsMS43OS0xMi45NSwzLjg0LTE5LjM1LDYtOS4zNCwzLjcxLTE4LjgyLDcuMS0yNy43MSwxMS44NmEyNDguNzQsMjQ4Ljc0LDAsMCwwLTU1LjY2LDM2Ljk0QTI2Ni41NSwyNjYuNTUsMCwwLDAsMTU5LjY4LDIyN2EyNTQuODcsMjU0Ljg3LDAsMCwwLTE2LjU0LDI2LjE2Yy0zLjE3LDUuOS02LjIyLDExLjg1LTksMTgtMiw0LjcxLTQuNDIsOS4yNy02LDE0LjE4LTIsNC45LTMuNjQsOS45Mi01LjIyLDE1LTEuODgsNS4wNi0zLDEwLjM1LTQuNDUsMTUuNTMtLjYzLDItMSw0LjExLTEuNTMsNi4xOC0uNjMsMi40OS0xLDUtMS40Nyw3LjU1LS43Nyw0LjI1LTEuNDgsOC41LTIuMDksMTIuNzhhMTE4LjY0LDExOC42NCwwLDAsMC0xLjU3LDEzLjI5Yy0uNzQsMi45NC0uMiw2LS43NCw5LS44MiwzLjY5LS4yOCw3LjQ1LS41MiwxMS4xNi0uMTEsMi42MS0uMTYsNS4yMy0uMDksNy44NSwwLDEuMDctLjQ5LDIuNTcuNjQsMy4wOSwxLjI5LjYsMi4yMy0uNzcsMy4xNi0xLjUzLDMuMTgtMi42LDYuMjktNS4yOSw5LjQtOCwxMC40Ny05LDIxLjA3LTE3Ljg4LDMxLjU4LTI2Ljg1LjkxLS43NywxLjktMi43OSwzLjUyLS43MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM0MTg5YzkiLz48cGF0aCBkPSJNMzkwLjExLDM3NS43OGMtMTIuMzctNy4zNS0yNS44OS0xMS42My0zOS43Ny0xNC45MmExOTcuMjUsMTk3LjI1LDAsMCwwLTU1LjY4LTUuMWMtMTMuMjEuNjYtMjYuMzEsMi41LTM4LjQ4LDguM2EzMi42MSwzMi42MSwwLDAsMC00LjIxLDIuNDNjLTkuODUsNi42LTExLjM1LDE1LjQtNC4yMywyNC45MSwxLjQ4LDIsMy4xMiwzLjgxLDUuMSw2LjIyLTYuMzksMC0xMi4wNS0xLjE5LTE3LjY5LTIuMzEtMTUuMTItMy0yOS4zMi04LjI0LTQxLjUtMTgtNS44Ni00LjY4LTExLjIyLTkuOTMtMTUuMTQtMTYuNDUsMS42LTIuNjEsNC4yOC0zLjgzLDYuNzgtNS4yNyw0LjgyLTIsOS4xOS00LjkxLDE0LTcuMDlhMjA3LjU1LDIwNy41NSwwLDAsMSw2Ny40LTE4YzkuMzItLjg3LDE4LjY1LTEuNzYsMjgtMS40MUEzMTEuMzgsMzExLjM4LDAsMCwxLDM3NiwzNDMuMjVjNi44LDIuMTIsMTMuNTIsNC40NSwyMC41OSw2Ljg0LDAtMi0xLjE0LTMuMTktMS45LTQuNDhBOTYuMTgsOTYuMTgsMCwwLDAsMzg1LDMzMS44OGMtMS4zMy0xLjU2LTMuMTgtMi45My0zLjE0LTUuMzMsMy43My44NSw3LjQ2LDEuNjgsMTEuMTgsMi41NiwxLC4yMywyLjE3LjgzLDIuODEsMCwuODUtMS4wOC0uNDMtMi0xLTIuODQtNS40OS04LjE5LTEyLjMzLTE1LjE3LTE5LjY3LTIxLjY4LDMuODktMi4yNiw3Ljg5LS40MiwxMS42OC4wNiwzOC44Nyw1LDc0LjI5LDE4LjgxLDEwNS4xOCw0Myw0MC45LDMyLjA5LDY3LjMzLDczLjU0LDc4LjQ3LDEyNC41MUExODAuNTQsMTgwLjU0LDAsMCwxLDU3My44Nyw1MjRjLTIuMTksMzAuMTEtMTEuNjUsNTcuOS0yOS40NSw4Mi41OC0xLjE3LDEuNjItMi43NSwyLjkxLTMuNjEsNC43Ni00LDYtMTAsMTAuMDgtMTUuNDQsMTQuNTItMjkuNTUsMjQtNjQsMzYuNDYtMTAxLjE0LDQyLjI4YTMxMC4zNCwzMTAuMzQsMCwwLDEtODcuMzEsMS41NCwyODguMTcsMjg4LjE3LDAsMCwxLTEyNy4zOS00OC4xNGMtOS4yNy02LjI5LTE4LjM2LTEyLjg1LTI2LjUxLTIwLjYyYS42NS42NSwwLDAsMSwwLTFjMS43NC0uNjksMi44NC41Nyw0LDEuNDNhMTg5LjA4LDE4OS4wOCwwLDAsMCw2NSwzMS41NiwyMjguNDYsMjI4LjQ2LDAsMCwwLDIzLjg3LDQuNzVjMS44Mi42NiwzLjc1LjM1LDUuNjIuNjZhNy41NSw3LjU1LDAsMCwxLDEuMTMuMjNjMTguMjQsMi4xNiwzNi4zNy44OSw1NC4zNi0yLjI4LDM5LjU0LTcsNzQuNjYtMjMuNTUsMTA0Ljc1LTUwLjE1LDIwLjUtMTguMTIsMzYuNjgtMzkuNTMsNDUuMjQtNjUuOTVzNy4zNS01Mi4xLTQuNjctNzcuNDhjLTIuNDcsMTEuMzgtOC40NCwyMC44LTE1LjkxLDI5LjM4YTEwNi4wOSwxMDYuMDksMCwwLDEtMjYuMDcsMjEuMTljLTEuMTQuNjYtMi40LDEuOTEtMy43MS45LTEuMTMtLjg2LS40NS0yLjM3LS4xLTMuNTFhMTM5LjY0LDEzOS42NCwwLDAsMCw0Ljk0LTI0LjJjMy41LTM0LjUxLTkuODItNjEuMzctMzcuMy04MS43NGExMTkuOCwxMTkuOCwwLDAsMC0xNC4wNi05IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzI2MmY3MSIvPjxwYXRoIGQ9Ik0yNzYuMDgsNjM4LjQxYTE1MS4xNiwxNTEuMTYsMCwwLDEtMjkuODYtNi4xQTE5OC41MywxOTguNTMsMCwwLDEsMTk0LjM1LDYwOGMtMy44My0yLjUxLTcuMDctNS44Ni0xMS4yNC03Ljg5LTIuMzktLjM0LTMuMzktMi42OC01LjMtMy43LTQwLjM4LTM1LjktNjgtODAtODMuODMtMTMxLjQ4QTI4MC41NCwyODAuNTQsMCwwLDEsODEuNjMsMzg3LjdjLjEtMiwuMi0zLjkzLjM2LTcsMiw0LjM2LDMuNDgsNy44Miw1LjA1LDExLjI2LDE0LjUzLDMxLjg2LDMzLjEzLDYwLjkzLDU4Ljc0LDg1LjEyQzE3Myw1MDIuODIsMjA0LjY4LDUyMCwyNDIsNTI2YzQzLjcxLDcuMTEsODQuNjEtLjUxLDEyMi4yMi0yNC4wNiwxOC43NS0xMS43NSwzNC4xNC0yNi45NCw0My00Ny42NSwxMC43Mi0yNS4xMSw2LjY4LTQ4LjQ0LTkuNjUtNjkuOTUtMS40My0xLjg4LTIuOTUtMy42OS00LjQzLTUuNTQsMS45NC0xLjY2LDMsLjI2LDQuMDcsMS4xOGE4My4yMiw4My4yMiwwLDAsMSwyMi42LDI5LjksODgsODgsMCwwLDEsNy44NSwzNS4xOSw3OS43NSw3OS43NSwwLDAsMS04LDM1Ljg3LDUuMzksNS4zOSwwLDAsMCwzLjI0LTEuMTcsOTguMzQsOTguMzQsMCwwLDAsMTQuNjUtMTAuMzVjMS40Mi0xLjIzLDIuNjctMy4wOCw1LTIuOGExNjUuMywxNjUuMywwLDAsMS02LjA5LDI3Ljc1LDEzMS43NCwxMzEuNzQsMCwwLDAsMTcuMjctMTEuNDhjNC4zMy0zLjM4LDcuODMtNy42MiwxMi4wOC0xMS4wNiwxLjgxLjc3LDEuODEsMi41NiwyLjIzLDQuMDgsNi45MiwyNSwxLjkxLDQ4LjI4LTEwLjQyLDcwLjMtMTUsMjYuNy0zNyw0Ni41Ny02Mi42Miw2Mi42NWEyMTMuMzMsMjEzLjMzLDAsMCwxLTY3LjI3LDI3LjU1LDE0Mi4yLDE0Mi4yLDAsMCwxLTQ1LjY3LDIuNjloMGMtMS45LTEtNC4wNy4xOS02LS43MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiMxNjFmNDIiLz48cGF0aCBkPSJNNjU0LjE3LDQ1My4wN2EyMTIsMjEyLDAsMCwwLTIwLjc3LTgyLjM1QTIxOC45LDIxOC45LDAsMCwwLDYwMywzMjRjLTEwLjktMTIuOTEtMjMuNDItMjMuOTMtMzYuNTYtMzQuMzgsMS4yMy0xLjIxLDIuNzYtMSw0LjI0LS44YTIzNi4yOCwyMzYuMjgsMCwwLDEsNTMuNzksMTIuNzhBODAuMiw4MC4yLDAsMCwxLDYzNywzMDcuNDNhNDAuMzgsNDAuMzgsMCwwLDEsNC4xNiwyLjQ0Yy4zNC4xOS41My42OSwxLC41OGExLjI3LDEuMjcsMCwwLDEtLjIxLTEuMzdjLTExLjg0LTE1LjQyLTI2LjE1LTI4LjI4LTQxLjE3LTQwLjVhMzAyLDMwMiwwLDAsMC01OC4xOC0zNi45LDI4Ny42NCwyODcuNjQsMCwwLDAtOTEuNTctMjcuNDVjLTIuODMtLjM1LTUuNzUsMC04LjUxLTEtLjI0LTEuODksMS4zNS0yLjUyLDIuNDUtMy40NCwxOC42Ny0xNS41NSwzMy42OS0zNCw0NC4yOC01NS45NGExNTcuMSwxNTcuMSwwLDAsMCw4LjE0LTIwLjUzYy42NC0yLDEtNC4xNywzLTUuNDRhMjg4LjE2LDI4OC4xNiwwLDAsMSw4OC40Nyw2NiwyOTIuMSwyOTIuMSwwLDAsMSw2Ni42NCwyNzBjLS44NC40Ni0xLS4yNi0xLjM0LS43NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM0MTg5YzkiLz48cGF0aCBkPSJNNTQwLjgxLDYxMS4zN2MwLTIuOTQsMi4zNC00LjYsMy43OS02LjY2LDEzLjY2LTE5LjUxLDIyLTQxLjEyLDI2LjMxLTY0LjQ4LDIuNjctMTQuNDcsMi45LTI5LjA4LDItNDMuNTctMS40Ny0yMi4zNC03LjE4LTQzLjgzLTE2LjE5LTY0LjQyYTIxMi4yNSwyMTIuMjUsMCwwLDAtMjQuNzMtNDIuNTcsMjIxLjI0LDIyMS4yNCwwLDAsMC0zNi4xNi0zNy42MkEyMDcuNTYsMjA3LjU2LDAsMCwwLDQyNS4xOSwzMTRhMTk4LjEsMTk4LjEsMCwwLDAtNDIuMjUtOC42OWMtMi41OS0uMjMtNS4xNS0uODUtNy43OC0uNjktOS4xMy02LjczLTE4LjM5LTEzLjI0LTI4Ljc5LTE3Ljk0LDAtLjMzLDAtLjY3LjA3LTEsMy43NCwwLDcuNDkuMDYsMTEuMjMsMCw1Mi40My0uOTQsMTAwLjc1LDExLjkxLDE0Myw0My44NEM1NDQuNCwzNjIuNTksNTcxLjc0LDQwNi4zMiw1ODIsNDYwLjNjOC43Myw0Ni4wNSwyLDg5LjU0LTIzLjU2LDEyOS40NC01LDcuODUtMTAuNTMsMTUuNDEtMTcuNjEsMjEuNjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjMTYxZjQyIi8+PHBhdGggZD0iTTUwMC40LDExNy45MWMtNS4yNSwxNi4wNS0xMS44NCwzMS40Ny0yMS4yNyw0NS41OWExNzIuNzgsMTcyLjc4LDAsMCwxLTM0LjQyLDM3LjczYy0uNzYuNjMtMS40NSwxLjM1LTIuMTcsMi00LjU4LDIuMzMtOC4zNSw1Ljg1LTEyLjU5LDguNjhhMjY3LjY4LDI2Ny42OCwwLDAsMS00OS4zOSwyNS41Myw4LjA5LDguMDksMCwwLDEtMS4yOS4zMmMtLjc2LTEuMTIuMTQtMS41My42LTIsOS44Mi05LjM1LDE1LjkxLTIwLjkyLDIwLTMzLjY2YTUsNSwwLDAsMSwzLjE3LTMuNjVjMzAuNTEtMTIuMDgsNTQuODYtMzIuMTUsNzQuOC01Ny45LDEuODEtMi4zNCwzLjU4LTQuNzEsNS44Mi03LjY2LTYuMTctLjEyLTEwLjksMy0xNi4xMiwzLjgyLTEsLjA2LTIuMjcuODgtMi41LTFhMjE1LjI3LDIxNS4yNywwLDAsMCw0MS44NC03NS42NWMuNTUtMS43OCwwLTQuMjMsMi40OC01LjEzYS40NC40NCwwLDAsMSwuMjUuNDVjMCwuMTgtLjA4LjI2LS4xMy4yNmEyMzAuNDksMjMwLjQ5LDAsMCwxLTguMzUsNTguNTYsMzYuODgsMzYuODgsMCwwLDAtLjY5LDMuNjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjMTYxZjQyIi8+PHBhdGggZD0iTTM4MS44MiwzMjYuNTRhMTIwLDEyMCwwLDAsMSwxNi4wNiwyMi40Yy40My43OSwxLjU0LDEuNjguNTUsMi42MS0uNzUuNy0xLjYyLS4xNi0yLjQxLS40NmEzNDksMzQ5LDAsMCwwLTYyLjU2LTE3Yy0xMC43NS0xLjg1LTIxLjY2LTIuNjYtMzIuNTgtMy40NWExOTQuMDksMTk0LjA5LDAsMCwwLTI5LjQ1LjQyYy0yMi40MiwxLjgtNDQuMjQsNi41OS02NSwxNS41Ni02LjQsMi43Ny0xMi45NCw1LjI1LTE4Ljg5LDktLjY4LjQzLTEuNDksMS4xMy0yLjI3LjA2YTE5OS41OSwxOTkuNTksMCwwLDEsNTkuMi0yOC40MWMyOS4xNS04LjcsNTguOTMtMTAuODQsODkuMTUtOC40NmEzMjguNDIsMzI4LjQyLDAsMCwxLDQ1Ljc0LDYuOTUsMjEuOTIsMjEuOTIsMCwwLDEsMi40NC44MyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiMxNjFmNDIiLz48cGF0aCBkPSJNMzc0LjMyLDExNi4zOGg0LjVjMi40MiwxLDUuMDctLjI4LDcuNS43NGg0LjQ5Yy4zOCwyLjE3LTEuNDEsMy4wOC0yLjY1LDQuMTMtMjAuNzgsMTcuNTYtNDEuNDEsMzUuMjktNjIuMiw1Mi44My02Ljg3LDUuNzktMTMuNjgsMTEuNjUtMjAuNTQsMTcuNDVhNi4xNCw2LjE0LDAsMCwwLTIuMzUsMi44M2MtOSwzLjM3LTE3LjM2LDcuNi0yNCwxNC45NC0zLjEzLDMuNDgtNS4xOCw3LjUtNy40NCwxMS40Ni02LjE3LDQtMTEuMzYsOS4yNi0xNywxNC0xNC43NywxMi40Mi0yOS4zNSwyNS4wNi00NC4xNiwzNy40My0xLjI1LDEtMi4wNywyLjUtMy41MiwzLjMxLTIuNTUtMy44LTItOC0xLjM5LTEyLjEyLDEuODYtMy4wNiw0LjgtNSw3LjQ0LTcuMjhxMjEuNTQtMTguMjcsNDMtMzYuNTljMTQtMTEuODUsMjcuOTItMjMuNzcsNDEuOS0zNS42M3EyNC4xMi0yMC40NSw0OC4xNy00MWM4LjkzLTcuNiwxNy44LTE1LjI2LDI2Ljg2LTIyLjcxLDEuMzctMS4xMywyLjMzLTIsMS4yOC0zLjgxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzVjOTRjZSIvPjxwYXRoIGQ9Ik02MzcuNTEsMzA4LjQxYy0xNy42My04LjU2LTM2LjI3LTEzLjc4LTU1LjU0LTE2LjktNS4xNS0uODQtMTAuMy0xLjg3LTE1LjU1LTEuOTEtNi43Mi00LjI1LTEzLjMxLTguNzMtMjAuMTktMTIuN2EyMDkuNzMsMjA5LjczLDAsMCwwLTcyLjE4LTI1Ljc1LDkuMDksOS4wOSwwLDAsMS0xLjY1LS42NGM3LjY1LTEuNCwzMy42OSwyLjUxLDUxLjcyLDcuNDdhMjQzLjA3LDI0My4wNywwLDAsMSw0OC40NywxOWMtMS42Mi00Ljg1LTQuNTgtOC4xMy02LjM5LTEyLS4xOC0xLTEuNjMtMS45NC0uNjYtM3MyLjA3LjA4LDMsLjQ5YzIuNiwxLjE4LDUuMDgsMi42MSw3LjY5LDMuNzdhMzQ3LjUyLDM0Ny41MiwwLDAsMSw2MS40LDQwLjQ5YzEuMDYsMS40LDEuMDYsMS40LS4xMSwxLjY5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzE2MWY0MiIvPjxwYXRoIGQ9Ik0zNzQuMzIsMTE2LjM4Yy40NiwxLjEsMS45Mi4zLDIuNjEsMS41My00LjE4LDMuNjItOC4zNiw3LjMtMTIuNjEsMTAuOTFxLTExLjUxLDkuNzgtMjMuMDcsMTkuNDhRMzI0Ljg3LDE2Mi4xMywzMDguNSwxNzZjLTcuNTgsNi40NC0xNS4wNSwxMy0yMi42MywxOS40Ni05LjE4LDcuOC0xOC40NSwxNS41MS0yNy42NSwyMy4zLTcuMyw2LjE5LTE0LjUzLDEyLjQ3LTIxLjgyLDE4LjY4LTcuNjcsNi41Mi0xNS4zNywxMy0yMy4wNiwxOS40OWwtNy43MSw2LjQ3LDIuMTktOS43NmMtMS4yNC0zLjE5LDEuMzUtNC42MywzLjEzLTYuMSw3LTUuODQsMTMuODgtMTEuODEsMjAuODMtMTcuNzFxMjQuMjUtMjAuNTgsNDguNDktNDEuMjIsMjAuODQtMTcuNyw0MS42Ni0zNS4zOWMxMi45Mi0xMSwyNS45My0yMS45MSwzOC43Mi0zMy4wNywxLS44NiwyLjg1LTEuODcuMTUtMyw0LjQzLTEuNjEsOS0uMzMsMTMuNTItLjczIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzY0OTdkMCIvPjxwYXRoIGQ9Ik0zNjAuOCwxMTcuMTFjMS4wNS4xOSwyLjItLjM3LDMuMy40OS0yLjY1LDMuOS02LjU1LDYuNDUtMTAsOS40NC05LjgyLDguNTYtMTkuNzksMTctMjkuNzQsMjUuMzctOS4xLDcuNjgtMTguMjksMTUuMjYtMjcuMzcsMjNzLTE4LjIzLDE1Ljc0LTI3LjQsMjMuNTQtMTguMjksMTUuMjctMjcuMzYsMjNTMjI0LDIzNy41OCwyMTQuODcsMjQ1LjQ1Yy0yLjc0LDIuMzctNi4zNyw0LTcuMDUsOC4xNS00Ljg0LjU1LTcuNCw0LjY0LTEwLjk0LDcuMTYtNS41OSw0LTkuODQsOS40Ny0xNSwxMy45NS01LjE5LDMuNjktOS43Nyw4LjEtMTQuNjEsMTIuMi0xNC4zOCwxMi4xOS0yOC43LDI0LjQ2LTQzLjEzLDM2LjU5LTIsMS42OC0zLjc3LDMuNjYtNiw1LjA2LTEsLjYyLTEuOTEsMS43OS0zLjMyLjgxYTE2LjksMTYuOSwwLDAsMSwxLjUxLTcuNTFjNy4xOS00LjU5LDEzLjE3LTEwLjY3LDE5LjY2LTE2LjEsMTcuODgtMTUsMzUuNjEtMzAuMTYsNTMuMzgtNDUuMjlzMzUuMy0zMC4xMyw1My00NS4xNXEyNi0yMiw1MS45NC00NC4wOGMxNy42OC0xNSwzNS40NC0zMCw1My00NS4xNSwzLjQ5LTMsNy4xNi01LjgzLDEwLjU2LTloMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM2ODlhZDEiLz48cGF0aCBkPSJNMzk5LjgxLDExNy44N2M0LjA3LS4wNSw4LDEsMTIsMS41LDEuMDksMi4zOS0xLDMuMzItMi4yMyw0LjQzLTUsNC4zNy0xMC4yMyw4LjQ4LTE1LjEsMTMtLjUyLS42OS0xLjA4LTEuMzYtMS41Ni0yLjA5LTEuMTEtMS42NS0xLjg5LTEuMjEtMi42MS4zMy01LjksMTIuNjYtMTYuMDUsMjEuNDYtMjcuMSwyOS4zYTIwMi4xNCwyMDIuMTQsMCwwLDEtMzkuODcsMjEuNzljLS43Ni0xLjQ0LS44My0xLjUuNDctMi44NCwyLjY5LTIuNzgsNS43Ny01LjE0LDguNzItNy42NCwyMS4yOS0xOC4xLDQyLjY0LTM2LjEyLDYzLjgxLTU0LjM3LDEuMjMtMS4wNywyLjI5LTIuMywzLjQ3LTMuNDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNGU4ZmNjIi8+PHBhdGggZD0iTTM5OS44MSwxMTcuODdhNC41NSw0LjU1LDAsMCwxLTEuNzUsMy4xNHEtMjAuNiwxNy40My00MS4xMywzNC45My0xNS43MiwxMy40LTMxLjM2LDI2Ljg5Yy0uOTQuODItMi43MSwxLjQtMi4yMywzLjNhMTg3LjQsMTg3LjQsMCwwLDEtMjAuMjcsOC4yNGMtMi4zMy0uNjQtLjQtMS40NywwLTEuODUsNC4wOS0zLjYyLDguMjMtNy4xOCwxMi4zOS0xMC43MnExMS40Ny05Ljc1LDIzLTE5LjQ3YzcuNTctNi40LDE1LjE4LTEyLjc3LDIyLjczLTE5LjE5czE1LjEyLTEyLjg3LDIyLjU3LTE5LjQyYzIuNDEtMi4xMiw1LjM2LTMuNjgsNy02LjU5LDMuMDYtLjQ0LDYsLjYsOSwuNzQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNTU5MWNkIi8+PHBhdGggZD0iTTM0Ni42MSwyMDhjNy45Mi0zLjkyLDE2LjE5LTcuMjEsMjMuMS0xMi45MywxLjQ0LS4wNiwxLjI4Ljc2Ljk0LDEuNjktNi4zOCwyNi40Mi0yNi40Miw0My43Ny01My41Miw0Ni4zLTUuMjIuNDktMTAuNDMsMS4wOS0xNS42OS41OS42OC0xLjkzLDIuNTEtMS43Niw0LTIuMTcsNS44OC0xLjYsMTEuNzEtMy4zMSwxNy4xNi02LjEzLDEwLjIyLTUuMjgsMTcuNzEtMTMuMDcsMjItMjMuODRhOC4yMiw4LjIyLDAsMCwxLDIuMDUtMy41MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiMxNjFmNDIiLz48cGF0aCBkPSJNMzQ2LjYxLDIwOGMtMy4yNiwxMi42LTExLjI5LDIxLjMxLTIyLjM5LDI3LjU1LTcuMTMsNC0xNSw1Ljg2LTIyLjc3LDguMS0xLjkxLTUuNTkuMTYtMTAuMzIsMy41Mi0xNC41NywzLjk0LTUsOS4zLTguMDgsMTUtMTAuNjlBMjc3LjA4LDI3Ny4wOCwwLDAsMSwzNDYuNjEsMjA4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzQxOGFjOSIvPjxwYXRoIGQ9Ik0xMTQuOCwzMjkuMzdjNC40NS0xLjY1LDcuMzEtNS40MSwxMC44MS04LjI4LDExLjI5LTkuMjcsMjIuMzgtMTguNzgsMzMuNTEtMjguMjQsNS44NS01LDExLjYxLTEwLjA1LDE3LjQxLTE1LjA4LDEuNTgtMS4zNywzLjA1LTIuOTQsNS4zNC0zLjA2LTYsNy41Mi0xMS43MywxNS4yNC0xNiwyMy45M3EtMTcuMjUsMTQuNi0zNC40NCwyOS4yN2MtNS4zLDQuNTMtMTAuNzEsOC45NC0xNS45MywxMy41Ny0uOC43MS0xLjcsMS42LTIuOTQuNjRhNTQuMTMsNTQuMTMsMCwwLDEsMi4yNC0xMi43NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM2NDk3ZDAiLz48cGF0aCBkPSJNMTU4LjgxLDM0OS41OGMtMy41NC4yNy01LjE0LDMuNDQtNy40OCw1LjMzLTkuODUsNy45NS0xOS40NSwxNi4yMi0yOSwyNC40OS0zLjIsMi43Ni02LjMsNS42Mi05LjY5LDguMTYtMi4yMywxLjY4LTMuMDcsMS0zLTEuNTgsMC0zLjEyLDAtNi4yNCwwLTkuMzYsMy40Ni0zLjc1LDcuNjEtNi43MiwxMS40OC0xMCwxMS4xNy05LjQ4LDIyLjIzLTE5LjEsMzMuNTUtMjguNDIsMS0uOCwxLjc5LTIuMjYsMy40Ni0xLjMxbC43NSwxMi42OSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM0NjhjY2EiLz48cGF0aCBkPSJNMjA3LDI3NS40OGE0LjE3LDQuMTcsMCwwLDEsMS45MS0zLjA4YzktNy42LDE4LTE1LjE1LDI3LTIyLjc2LDcuMzktNi4yNSwxNC43Mi0xMi41NiwyMi4wNy0xOC44NywzLjg2LTMuMzEsNy42OS02LjY2LDExLjUyLTEwLC43My0uNjQsMS40MS0xLjEyLDIuMTIsMC0uODMsMy40MS0xLjgyLDYuNzktMS43MiwxMC4zNS00LDQuNDMtOC44OSw3LjkzLTEzLjQyLDExLjgtMTQsMTItMjcuOTUsMjMuOTMtNDIsMzUuNzZhMTEuMzQsMTEuMzQsMCwwLDAtMS40OCwxLjY4LDcuOTMsNy45MywwLDAsMS02LTQuODgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNTU5MWNkIi8+PHBhdGggZD0iTTExMi41NiwzNDIuMTJjMy4yNC0xLDUuMTMtMy44MSw3LjU2LTUuODIsMTMuMTctMTAuODksMjYuMTMtMjIsMzkuMTctMzMuMDgsMi4wNS0xLjczLDMuNDktNC4zMyw2LjU4LTQuNThhMTUwLjg5LDE1MC44OSwwLDAsMC02LDE4Yy0yLjM0LS4yMy0zLjUzLDEuNjQtNSwyLjg4LTEzLjU4LDExLjY3LTI3LjI4LDIzLjItNDAuOTIsMzQuOC0uODIuNjktMS41NSwxLjcxLTIuODksMS4yNmE0NC44OCw0NC44OCwwLDAsMSwxLjUtMTMuNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM1Yzk0Y2UiLz48cGF0aCBkPSJNMjEzLDI4MC4zNmMtLjkzLTEuNjguNjUtMi4yMywxLjQ3LTIuOTNxMTcuMi0xNC43MSwzNC40OS0yOS4zNCw5Ljc3LTguMjgsMTkuNTktMTYuNDlhNC4xNiw0LjE2LDAsMCwxLDEuMzgtLjQ3LDI5LjkyLDI5LjkyLDAsMCwwLDEuMzgsOWMtMy45Myw0LjU2LTguODcsOC0xMy4zOSwxMS44NnEtMTUuMTMsMTMtMzAuNDUsMjUuOTNhMy41LDMuNSwwLDAsMC0xLjU0LDJjLTQuMjYsMS41OC04LjU2LDIuMjEtMTIuOTMuNDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNGU4ZmNjIi8+PHBhdGggZD0iTTE1OC4wNiwzMzYuODljLTQuMjEsMi40MS03LjU3LDUuOTEtMTEuMjcsOS05Ljc2LDgtMTkuMzcsMTYuMjUtMjguOTQsMjQuNS0yLjY0LDIuMjgtNSw0LjgyLTguMjgsNi4yNy4zOS00LS44NC04LjA4Ljc0LTEycTIyLjE3LTE4Ljk0LDQ0LjQ2LTM3Ljc2YzEtLjg2LDIuMDYtMS45MSwzLjY0LTEuMjMtLjEyLDMuNzUtLjIzLDcuNS0uMzUsMTEuMjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNGU4ZmNjIi8+PHBhdGggZD0iTTE1OC40MSwzMjUuNjNjLTQuNzUsMi41NS04LjQyLDYuNS0xMi41Miw5Ljg4LTkuNjgsNy45NS0xOS4xNCwxNi4xNi0yOC43MywyNC4yMi0yLjE0LDEuODEtMy42NCw0LjU2LTYuODUsNC44OS4zOC0zLS44LTYuMTEuNzUtOXExNC0xMiwyOC4wNi0yMy45MmM2LjM0LTUuMzksMTIuNzQtMTAuNzEsMTkuMDctMTYuMSwyLTEuNzIsMS40Ny4xNywxLjY1LDEuMDhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzU1OTFjZCIvPjxwYXRoIGQ9Ik0yMjYsMjgwYy0xLjM4LTEtLjQxLTEuNzQuMzItMi4zNSw4LjgyLTcuNCwxNy42OC0xNC43NSwyNi40OS0yMi4xNiw1LjUtNC42MywxMC45My05LjM0LDE2LjM3LTE0YTMuNjYsMy42NiwwLDAsMSwyLjItMS4yOGwyLjI1LDQuNDljLTEuNzMsMi42Ny00LjUsNC4zMy02LjQ1LDYuNzktMTAuODMsMTItMjIuOTUsMjIuMTQtMzguMjksMjcuOTFBMTkuNTMsMTkuNTMsMCwwLDEsMjI2LDI4MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM0ODhkY2EiLz48cGF0aCBkPSJNMzk0LjQ4LDEzNi44YzEuMzYtNC4yNSw1Ljc3LTUuNDcsOC4zOC04LjQ3LDIuNzgtMy4xOSw3LjMzLTQuNjEsOC45NS05LDMuMjYsMCw2LjM4Ljg2LDkuNTUsMS40NSwyLjc0LjUxLDIuODYsMS43LDEsMy4zOS00LjA4LDMuNjQtOC4yLDcuMjYtMTIuMzQsMTAuODItMy44NiwzLjMyLTcuNzgsNi41Ny0xMS42OCw5Ljg1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM0NjhjY2EiLz48cGF0aCBkPSJNMjA5LjM3LDMwNy44MWMuNjYsMS42Ni0xLjMzLDIuNDktMS4xLDQtMS00LjU2LTMuNTEtNi4zMy04LjA4LTUuNDJhMjMuNjUsMjMuNjUsMCwwLDAtMTIuNjQsNy4zNWMtLjk0LDEtMiwxLjg5LTMsMi44NC0uODItMSwwLTEuODcuMzMtMi43NiwyLTYuNTEsNi4zOS0xMS4xNCwxMS45My0xNC44M2ExMi41NywxMi41NywwLDAsMSw0LjA2LTEuODVjNi40Mi0xLjUzLDkuOTQsMS42MSw5LjA2LDguMTJhOC4yOCw4LjI4LDAsMCwxLS42MSwyLjUzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzQyOGFjOSIvPjxwYXRoIGQ9Ik0yMDkuMzcsMzA3LjgxYzAtMSwuMDYtMiwuMDctMywuMTEtNi41NC0zLjYtOS05LjY3LTYuMjUtNywzLjItMTEuNDIsOC45Mi0xNC40OSwxNS43OS0uNzEuMTMtMS4wOC0uMDctLjg2LS44NiwyLjIxLTguMTYsNi40Ny0xNC45MiwxMy41Ni0xOS43M2ExNC44MiwxNC44MiwwLDAsMSw1Ljg1LTIuMjgsNi4yNSw2LjI1LDAsMCwxLDcuNDEsNC42MSwxNC44OCwxNC44OCwwLDAsMS0xLjg3LDExLjciIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjMTgyMTQ0Ii8+PHBhdGggZD0iTTI2Ny4xMywyNTEuNDFjLTEuMjYtMS0uMTUtMS40LjUyLTEuODcsMi4xMS0xLjQ3LDMuMjctNC4xLDUuOTMtNC45MiwzLjQsNS4zOCw4LjgzLDcuNzUsMTQuNDksOS43NywxLjE0LjQxLDIuMzMuNjcsNC4xOSwxLjE5LTguNzIsMi4yNy0xNi4yNCwxLjM5LTIzLjE1LTMuMzNhMywzLDAsMCwwLTItLjg0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzQ1OGNjYSIvPjxwYXRoIGQ9Ik01NzYuMjIsMjY2LjIzYy0yLjc1LS4zMi00Ljg0LTIuMi03LjM0LTMuMTMtMS0uMzYtMS44OS0xLjY0LTIuOTItLjgtLjg1LjcuNTQsMS43NC4yNCwyLjcxLTEuNTMtMS4zNC0yLjA2LTMuMjYtMi44Ni01LjIxLDQuNDYsMS44NSw4LjkxLDMuNjQsMTIuODgsNi40MyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM2MzY1N2QiLz48cGF0aCBkPSJNNjM3LjUxLDMwOC40MWMuODEtLjUxLDAtMS4xMy4xMS0xLjY5bDQuMzUsMi4zNiwyLjM0LDNjLTIuODUtLjc2LTQuNzgtMi4zMS02LjgtMy42NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiMyNjMxNTQiLz48cGF0aCBkPSJNNDY1LjE5LDI0OS4yNmExNC4yNiwxNC4yNiwwLDAsMSw2LC40NWMtMi4zMiwxLjI2LTMuOTIsMS4wOS02LS40NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiNhMDlhYTkiLz48cGF0aCBkPSJNMTc3LjgxLDU5Ni4zNmMyLjMzLjQyLDMuMzksMi42Nyw1LjMsMy43TDE4Myw2MDFhMTQuMjIsMTQuMjIsMCwwLDEtNS4yMS00LjU5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzQyNGE3ZiIvPjxwYXRoIGQ9Ik02NTQuMTcsNDUzLjA3bDEuMzQuNzVjLjE5LDEuNTEtLjQ1LDIuNzUtMS4zNCw0LjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzhjYjdkZSIvPjxwYXRoIGQ9Ik00NjUsMTM1Ljc5Yy41MSwxLjE1LDEuNjYuNjgsMi41LDFsLTQsMS41NWMtLjMxLTEuNTkuNzctMS45NSwxLjUxLTIuNTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNWE1ZDc2Ii8+PHBhdGggZD0iTTE4NC40MiwzMTMuNTFsLjg2Ljg2Yy0uMjMuNzQtLjQ1LDEuNDktLjY4LDIuMjNMMTgzLDMxOC42N2MuNDgtMi40Mi41MS0zLjksMS40My01LjE2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzRmNjY4YSIvPjxwYXRoIGQ9Ik0zNzAuNjUsMTk2LjczYy0uMjItLjYyLS4xMy0xLjQtLjk0LTEuNjkuMjQtLjU4Ljg5LTEuMzksMS4xOS0xLjEuOS44Ny41MiwxLjkxLS4yNSwyLjc5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzU1NWE3MyIvPjxwYXRoIGQ9Ik0xMTcuOCwzMTUuODZhNjEuNDQsNjEuNDQsMCwwLDEsNC41LTE1Ljc3YzguODItNi4xNSwxNi41OC0xMy42LDI0Ljc5LTIwLjVxMjEuMzUtMTgsNDIuNTMtMzYuMTQsMTkuMzUtMTYuNTUsMzguNzktMzMsMjEtMTcuOCw0Mi0zNS42NmMxMi43NC0xMC44MywyNS41Mi0yMS42MywzOC4yMS0zMi41Myw4LjktNy42NSwxOC0xNS4wNywyNi43NC0yMi44OGE1Myw1MywwLDAsMSwxNC4yNC0xLjUyLDEuNDQsMS40NCwwLDAsMSwxLjU0LS4xOGMxLjA2LDEuODEtLjI5LDIuODQtMS4zOSwzLjc2cS0xOC4xMywxNS4zNi0zNi4xOSwzMC44MVEyOTQuMjgsMTY4LjYzLDI3NSwxODVxLTE3Ljc5LDE1LjE4LTM1LjY0LDMwLjI5UTIxNy43LDIzMy42NywxOTYsMjUyLjFjLTE4LDE1LjI1LTM1Ljg4LDMwLjU5LTUzLjksNDUuNzktNyw1Ljg3LTEzLjgxLDExLjg4LTIwLjg3LDE3LjYzLS44OC43MS0yLjA3LDMtMy40Ny4zNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM2ZDljZDIiLz48cGF0aCBkPSJNMzM1LjMxLDExOS4zOGMtMS4yNiw0LjIxLTUuMzMsNS43OS04LjIyLDguMzYtOS40Nyw4LjQyLTE5LjI2LDE2LjQ5LTI4Ljk0LDI0LjY3LTEwLjgzLDkuMTMtMjEuNzIsMTguMi0zMi41MSwyNy4zOC05LjM4LDgtMTguNjIsMTYuMTEtMjgsMjQuMS05LjA5LDcuNzQtMTguMjksMTUuMzQtMjcuMzgsMjMuMDZzLTE4LjExLDE1LjU1LTI3LjIxLDIzLjI4LTE4LjI1LDE1LjM3LTI3LjM1LDIzLjA5Yy03LjQ5LDYuMzYtMTQuOTIsMTIuNzktMjIuMzksMTkuMTYtMywyLjU4LTYuMTEsNS4xLTkuMTYsNy42NS0uNjYuNTUtMS4yNi44Mi0xLjg2LDBhNjAsNjAsMCwwLDEsNS4yNS0xNWM2LjktNC4zNSwxMi42Ny0xMC4xLDE4Ljg2LTE1LjMycTIxLjMzLTE4LDQyLjUxLTM2LjEzLDIxLjkyLTE4Ljc1LDQzLjkyLTM3LjM5LDE4LjEtMTUuNDIsMzYuMjUtMzAuNzljMTUuNzMtMTMuMywzMS4zMy0yNi43Niw0Ny4xMy00MGE2Ljk0LDYuOTQsMCwwLDAsMi41OC0zLjEzYzUuMzEtMi4wNiwxMS0xLjkzLDE2LjUxLTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjNzI5ZmQ0Ii8+PHBhdGggZD0iTTMxOC44LDEyMi4zNmMyLjMzLjYxLjQzLDEuNDYsMCwxLjg1LTQuMjUsMy44Mi04LjU0LDcuNjEtMTIuODksMTEuMzEtNy41Nyw2LjQzLTE1LjIsMTIuNzktMjIuNzksMTkuMnEtMTYuNjcsMTQtMzMuMjksMjguMTNjLTkuMDksNy43My0xOC4wOCwxNS41Ni0yNy4xNiwyMy4yOS05LjM2LDgtMTguNzksMTUuODUtMjguMTYsMjMuODItOS4wOCw3LjczLTE4LjA5LDE1LjU0LTI3LjE3LDIzLjI3UzE0OS4xLDI2OC42MSwxNDAsMjc2LjI5Yy0zLjMzLDIuOC02LjY0LDUuNjItMTAsOC4zNy0uNjYuNTQtMS4zNywxLjc2LTIuNDQuNDQsMS01LjE2LDMuNzItOS42MSw2LTE0LjI0LDEyLjMzLTEwLjU0LDI0LjcyLTIxLDM3LjA2LTMxLjU2cTE5LjA4LTE2LjI5LDM4LjIxLTMyLjUyLDE4LjI1LTE1LjUzLDM2LjUzLTMxUTI2NC42LDE1OS4zOSwyODMuODYsMTQzYzYuNjUtNS42NCwxMy4wOS0xMS41NCwxOS45NS0xNyw0Ljc1LTIuMjEsOS45LTIuODMsMTUtMy43MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM3OGEyZDUiLz48cGF0aCBkPSJNMzAzLjgxLDEyNi4wN2MtNC43Niw2LjE5LTExLjIyLDEwLjU1LTE3LDE1LjYzLTcuNTcsNi42NC0xNS4zMiwxMy4wNS0yMywxOS41NS03LjQ5LDYuMzQtMTUsMTIuNjUtMjIuNDksMTlTMjI2LjM5LDE5MywyMTguOSwxOTkuNHMtMTUuMjEsMTIuOC0yMi43OSwxOS4yM2MtNy4zOSw2LjI4LTE0LjcxLDEyLjYzLTIyLjEsMTguOTFxLTE0LjA2LDEyLTI4LjE3LDIzLjg1Yy0zLjMyLDIuODEtNi42Niw1LjYtMTAsOC40YTMuNDMsMy40MywwLDAsMS0yLjMyLDEuMDcsOTkuOTMsOTkuOTMsMCwwLDEsOS0xOGMxNy4xMi0xMy45MSwzMy43Ny0yOC40LDUwLjU3LTQyLjcsMTkuNDUtMTYuNTcsMzktMzMsNTguMzQtNDkuNzMsMTAuOTQtOS40NSwyMi4zLTE4LjQxLDMyLjg1LTI4LjMyYTExMy40MywxMTMuNDMsMCwwLDEsMTkuNS02IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzdkYTVkNiIvPjxwYXRoIGQ9Ik0yODQuMzEsMTMyLjExYy43NSwxLjM0LS42LDEuNzQtMS4xOCwyLjI2cS0xMi40OCwxMC45NC0yNS4wNiwyMS43M2MtNy4zNSw2LjMxLTE0Ljc3LDEyLjU0LTIyLjE2LDE4LjhxLTEzLjc4LDExLjY3LTI3LjU4LDIzLjM0Yy03LjQ3LDYuMzUtMTQuOSwxMi43Ni0yMi4zOCwxOS4xMS05LjM3LDgtMTguNzgsMTUuODctMjguMTUsMjMuODJxLTUuODQsNS0xMS42MSwxMGE2LjQ1LDYuNDUsMCwwLDEtMy42NCwxLjc0LDE1OS4yNiwxNTkuMjYsMCwwLDEsMTYuNTItMjYuMjRjNS44LTQuMjcsMTEuMS05LjE2LDE2LjU5LTEzLjgxcTIxLjM5LTE4LjEyLDQyLjcyLTM2LjMyLDE2LjUtMTQuMDYsMzMtMjguMTRjMS43LTEuNDUsMy44My0yLjM4LDUuMTMtNC4yOSw4LjcyLTUuMjgsMTguMy04LjUzLDI3LjgyLTExLjk1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzgxYTdkOCIvPjxwYXRoIGQ9Ik00NDIuNTUsNDY2LjY0Yy03LjU1LDYuMTYtMTQuOTUsMTIuNTQtMjUsMTYuODFhODguODYsODguODYsMCwwLDAsNi42My0xOC4yNGM1LjkyLTI2LC40My00OS42Ni0xNC44Ny03MS4yNC0zLjc4LTUuMzItOC44Ni05LjQ0LTEzLjM2LTE0LjA5LS43My0uNzUtMS41Mi0xLjY5LTIuODMtMS4wNi0xLjM1LS42Ni0yLTItMy0zLC42NS0uODMsMS4zMi0uMzcsMiwwLDE4LjEzLDEwLjI4LDMzLjI0LDIzLjYyLDQyLjQ3LDQyLjY5YTg1LjIzLDg1LjIzLDAsMCwxLDguMTgsMzAsODYuODYsODYuODYsMCwwLDEtLjE3LDE4LjE3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuNzggLTIzLjc3KSIgZmlsbD0iIzBlMWY2NiIvPjxwYXRoIGQ9Ik0xMTcuOCwzMTUuODZjMywxLjA4LDQtMS45MSw1LjU0LTMuMTQsMTUuMjEtMTIuNTksMzAuMjEtMjUuNDQsNDUuMjMtMzguMjYsMTQuMTctMTIuMSwyOC4yNS0yNC4zMSw0Mi40NS0zNi4zOCwxNS44MS0xMy40MywzMS43NC0yNi43LDQ3LjU1LTQwLjEzLDE0LjItMTIuMDcsMjguMjgtMjQuMjcsNDIuNDQtMzYuMzhRMzI0LDE0MiwzNDcsMTIyLjRjMS41Ny0xLjM0LDMuODMtMiw0LjExLTQuNTMuODYtLjgyLDIuMTMuMDgsMy0uNzNsMy43NiwwYy0xLjE1LDQtNSw1LjM5LTcuNyw3LjgxLTcuNzYsNy0xNS44NSwxMy41OS0yMy44MiwyMC4zMy05LjExLDcuNy0xOC4yNiwxNS4zNi0yNy4zNiwyMy4wOC03LjM5LDYuMjctMTQuNzIsMTIuNjItMjIuMTIsMTguOS0xMC45LDkuMjQtMjEuODUsMTguNDItMzIuNzQsMjcuNjctNy40LDYuMjgtMTQuNzIsMTIuNjQtMjIuMSwxOC45Mi05LjM4LDgtMTguOCwxNS44OC0yOC4xOCwyMy44NS03LjM5LDYuMjgtMTQuNzEsMTIuNjQtMjIuMSwxOC45Mi03LjU3LDYuNDQtMTUuMjEsMTIuODEtMjIuNzgsMTkuMjVzLTE1LjA4LDEzLTIyLjY1LDE5LjQzYy0yLjY0LDIuMjUtNS4zOCw0LjQtOC4wOCw2LjYtLjY0LjUyLTEuMjUuODUtMS44NywwYTExLjc1LDExLjc1LDAsMCwxLDEuNDktNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM2OTlhZDEiLz48cGF0aCBkPSJNMjU2LjQ5LDE0NC4wNmMtLjYzLDMuNTUtNC4wOSw0LjQ4LTYuMjksNi40Ni03LjY2LDYuODktMTUuNjMsMTMuNDMtMjMuNDksMjAuMDgtOS4yLDcuNzctMTguNDIsMTUuNS0yNy42LDIzLjI5LTcuMzksNi4yNi0xNC43MywxMi41OS0yMi4wOCwxOC44OXEtOC4wNiw2LjktMTYuMSwxMy44M2MtLjYzLjU0LTEuMjQuODctMS44NiwwYTE0MS43MiwxNDEuNzIsMCwwLDEsMTMuMTQtMTcuMTFjMTcuNjUtMjAuNSwzNy43LTM4LjMsNjAuNzMtNTIuNiw3LjYtNC43MSwxNS4xNC05LjYsMjMuNTUtMTIuODUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy43OCAtMjMuNzcpIiBmaWxsPSIjODhhYmQ5Ii8+PHBhdGggZD0iTTM4Ni4zMiwxMTcuMTJjLTIuNDktLjMzLTUuMTMuNzctNy41LS43NCwyLjQ5LjMyLDUuMTItLjc4LDcuNS43NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM1NTkxY2QiLz48cGF0aCBkPSJNMzU0LjA1LDExNy4xNGMtLjc5LDEuMDctMiwuNjItMywuNzNoLTEuNTFjMS4zMy0xLjMsMy0uNTIsNC41LS43MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiM2ODlhZDEiLz48cGF0aCBkPSJNMjgyLjA2LDYzOS4xMmExODIuMywxODIuMywwLDAsMCw3MS44MS0xMS4zMSwyMTQsMjE0LDAsMCwwLDYxLjYxLTM0LjY3YzE4LjA5LTE0LjY4LDMzLjY2LTMxLjUzLDQ0LjA2LTUyLjYxYTEwMS4zNiwxMDEuMzYsMCwwLDAsMTAuMjItMzZjMS0xMS4zMS0uODgtMjItMy45NS0zMi42NC4zNC0yLjYxLDIuNzItMy44LDQuMTEtNS42Myw1LjM4LTcuMDcsOS4zNS0xNC42OSwxMS0yMy40NmEyNy40MywyNy40MywwLDAsMSwxLjIxLTMuNDMsMTExLDExMSwwLDAsMSw4LDIxLjE2YzIuNjMsMTAuMzEsNC4xMSwyMC44LDMuMzMsMzEuNGExMjMuMzEsMTIzLjMxLDAsMCwxLTE2LjA2LDUyLjMyYy05LjE2LDE2LjE1LTIxLDMwLTM0LjYsNDIuMzdhMTk5Ljg5LDE5OS44OSwwLDAsMS0zOS4zNywyNy41NCwyMTkuNSwyMTkuNSwwLDAsMS01NC4yNiwyMC43MSwyMDkuMjcsMjA5LjI3LDAsMCwxLTM2LjA1LDUuMmMtNS44NS4zMy0xMS43MS44My0xNy41Mi40Ni00LjUxLS4yOS05LjE0LDAtMTMuNTYtMS4zNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjc4IC0yMy43NykiIGZpbGw9IiMwZTFmNjYiLz48L2c+PC9zdmc+',\n protocol: 'uniswap_v2',\n slippage: true,\n blockchains: ['polygon'],\n polygon: {\n router: {\n address: '0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff',\n api: UniswapV2.ROUTER\n },\n factory: {\n address: '0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32',\n api: UniswapV2.FACTORY\n },\n pair: {\n api: UniswapV2.PAIR\n }\n }\n};\n\nvar quickswap = function quickswap(scope) {\n return new Exchange(Object.assign(exchange$d, {\n scope: scope,\n findPath: function findPath(args) {\n return UniswapV2.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$d\n }));\n },\n pathExists: function pathExists(args) {\n return UniswapV2.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$d\n }));\n },\n getAmounts: function getAmounts(args) {\n return UniswapV2.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$d\n }));\n },\n getPrep: function getPrep(args) {\n return UniswapV2.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$d\n }));\n },\n getTransaction: function getTransaction(args) {\n return UniswapV2.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$d\n }));\n }\n }));\n};\n\nvar exchange$c = {\n name: 'spookyswap',\n label: 'SpookySwap',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNjQxIDY0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjQxIDY0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGZpbGw9IiMxMjExMjIiIGQ9Ik0zNC4yLDMyMGMwLDE1OC41LDEyOC41LDI4Ni4zLDI4Ni4zLDI4Ni4zYzE1OC41LDAsMjg2LjMtMTI4LjUsMjg2LjMtMjg2LjNjMC0xNTguNS0xMjguNS0yODYuMy0yODYuMy0yODYuMwoJCUMxNjIuNywzMy43LDM0LjIsMTYyLjIsMzQuMiwzMjBMMzQuMiwzMjB6Ii8+Cgk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0YyRjRGOCIgZD0iTTEyMC45LDI0Ny42Yy0zLjMsMjIuMiwwLjcsNDUuNyw0LjYsNjcuOGMyLDMuMyw1LjIsNS45LDkuOCw3LjJjLTkuMSwxOS42LTE0LjMsNDAuNC0xNC4zLDYyLjYKCQljMCw5My4zLDkwLDE2OC45LDIwMS41LDE2OC45UzUyNCw0NzguNSw1MjQsMzg1LjJjMC0yMS41LTUuMi00My0xNC4zLTYyLjZjMy45LTEuMyw2LjUtMy45LDcuOC03LjJjNC42LTIyLjIsOC41LTQ1LjcsNS4yLTY3LjgKCQljLTMuMy0zMC0xMy43LTM5LjgtNDUtMzJjLTE1LjcsMy45LTM2LjUsMTMtNTIuOCwyNC4xYy0zMC0xNS02NS4yLTIzLjUtMTAyLjQtMjMuNWMtMzcuOCwwLTczLjcsOS4xLTEwMy43LDI0LjEKCQljLTE2LjMtMTEuMS0zNy4yLTIwLjktNTMuNS0yNC44QzEzNCwyMDcuOCwxMjQuMiwyMTcuNiwxMjAuOSwyNDcuNkwxMjAuOSwyNDcuNnogTTIzOC4zLDM4MC43Yy0yMy41LTEwLjQtNjMuOS03LjgtNjMuOS03LjgKCQlzMiwzNy44LDI0LjgsNTAuOWMyNy40LDE1LDc4LjksNy44LDc4LjksNy44UzI3My41LDM5Ni4zLDIzOC4zLDM4MC43TDIzOC4zLDM4MC43eiBNMzY5LjQsNDMyLjJjMCwwLDUwLjksNy44LDc4LjktNy44CgkJYzIzLjUtMTMsMjQuOC01MC45LDI0LjgtNTAuOXMtNDAuNC0yLjYtNjMuOSw3LjhDMzc0LDM5Ni4zLDM2OS40LDQzMS41LDM2OS40LDQzMi4yTDM2OS40LDQzMi4yeiBNMzEyLjcsNDU4LjkKCQljMCwyLjYsNS4yLDUuMiwxMS43LDUuMnMxMS43LTIsMTEuNy01LjJjMC0yLjYtNS4yLTUuMi0xMS43LTUuMkMzMTcuOSw0NTMuNywzMTIuNyw0NTUuNywzMTIuNyw0NTguOUwzMTIuNyw0NTguOXoiLz4KCTxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjRjJGNEY4IiBkPSJNNTUyLjcsNDM1LjRjLTE4LjktNy4yLTM5LjEtMTEuMS01OS4zLTExLjFjLTUuMiwwLTUuMi03LjgsMC03LjhjMjAuOSwwLDQxLjcsMy45LDYxLjMsMTEuNwoJCWMyLDAuNywzLjMsMi42LDIuNiw0LjZDNTU2LjYsNDM0LjgsNTU0LjYsNDM2LjEsNTUyLjcsNDM1LjRMNTUyLjcsNDM1LjR6IE05Mi4yLDQyNy42YzE5LjYtNy44LDQwLjQtMTEuMSw2MS4zLTExLjcKCQljNS4yLDAsNS4yLDcuOCwwLDcuOGMtMjAuMiwwLTQwLjQsMy45LTU5LjMsMTEuMWMtMiwwLjctNC42LTAuNy01LjItMi42Qzg5LDQzMC45LDkwLjMsNDI4LjMsOTIuMiw0MjcuNkw5Mi4yLDQyNy42eiBNMTMyLjcsNDUwLjQKCQljOS44LTMuMywyMC4yLTQuNiwzMC01LjJjNS4yLDAsNS4yLDcuOCwwLDcuOGMtOS4xLDAtMTguOSwyLTI3LjQsNC42Yy04LjUsMi42LTE3LjYsNS45LTI0LjEsMTEuN2MtMy45LDMuMy05LjEtMi01LjktNS45CgkJQzExMy4xLDQ1NywxMjMuNSw0NTMuNywxMzIuNyw0NTAuNEwxMzIuNyw0NTAuNHogTTE3MS44LDQ2NS40Yy03LjgsMy4zLTE1LjcsNy44LTIyLjgsMTIuNGMtNy4yLDQuNi0xMy43LDEwLjQtMTguOSwxNwoJCWMtMS4zLDItMC43LDQuNiwxLjMsNS4yYzIsMS4zLDQuNiwwLjcsNS4yLTEuM2M0LjYtNS45LDExLjEtMTEuMSwxNy0xNWM3LjItNC42LDE0LjMtOC41LDIxLjUtMTEuN2MyLTEuMywyLjYtMy4zLDEuMy01LjIKCQlDMTc2LjQsNDY0LjgsMTczLjgsNDY0LjEsMTcxLjgsNDY1LjRMMTcxLjgsNDY1LjR6IE00ODMuNSw0NTMuN2M5LjEsMCwxOC45LDIsMjcuNCw0LjZjNC42LDEuMyw5LjEsMy4zLDEzLjcsNS4yCgkJYzMuOSwxLjMsNy4yLDMuOSwxMC40LDYuNWMzLjksMy4zLDkuMS0yLDUuOS01LjljLTcuMi02LjUtMTcuNi0xMC40LTI2LjctMTNjLTkuOC0zLjMtMjAuMi00LjYtMzAtNS4yCgkJQzQ3OSw0NDUuMiw0NzksNDUzLjcsNDgzLjUsNDUzLjdMNDgzLjUsNDUzLjd6IE00OTIuNyw0ODMuN2MtNy4yLTQuNi0xNC4zLTcuOC0yMS41LTExLjFsMCwwYy0yLTEuMy0yLjYtMy4zLTEuMy01LjIKCQljMS4zLTIsMy4zLTIuNiw1LjItMS4zYzE1LjcsNi41LDMyLDE1LjcsNDEuNywyOS4zYzEuMywyLDAuNyw0LjYtMS4zLDUuMmMtMiwxLjMtNC42LDAuNy01LjItMS4zCgkJQzUwNS43LDQ5Mi44LDQ5OS4yLDQ4Ny42LDQ5Mi43LDQ4My43TDQ5Mi43LDQ4My43eiIvPgoJPHBhdGggZmlsbD0iIzY2NjVERCIgZD0iTTYyLjIsMzM1LjdjMy45LTUuOSwzNS45LTIyLjgsNzUuNy0zMy4zYzguNS0yNC44LDE5LjYtNDguMywzMi03MS4xbDMyLTU4Yy05LjEtMy45LTE4LjMtOS4xLTI2LjctMTUKCQljLTEuMy0xLjMtMi42LTIuNi0zLjktMy45Yy0wLjctMS4zLTEuMy0zLjMtMS4zLTQuNnMyLTMuOSwyLjYtNC42YzItMi42LDQuNi00LjYsNy4yLTcuMmM1LjktNS4yLDEyLjQtOS44LDE5LjYtMTMuNwoJCWMzLjMtMiw2LjUtMy45LDkuOC02LjVjMjIuOC0xNC4zLDM1LjktMjUuNCw1Ni43LTM3LjhjMjAuMi0xMS43LDMwLTE4LjMsNTIuOC0xNy42YzI5LjMsMCwxMDEuNyw5Mi42LDEzNC4zLDE0MC4yCgkJYzE5LjYsMjguNyw0Ni4zLDgwLjIsNTYuMSw5OS44YzIsMC43LDQuNiwxLjMsNi41LDJjMzAsOS4xLDU4LjcsMjIuMiw2NS45LDMwLjdjNi41LDcuMi0yMS41LDEwLjQtNDguOSwxNS43CgkJYy0yNy40LDQuNi0xMjAuNyw3LjItMjEwLDcuOGMtODkuMywwLjctMTkzLjctMi42LTIxNi41LTUuOUM4My4xLDM0OS4zLDU3LjcsMzQyLjgsNjIuMiwzMzUuN0w2Mi4yLDMzNS43eiIvPgoJPHBhdGggZmlsbD0iI0ZGOTlBNSIgZD0iTTQ4My41LDI1Ni4xYzAsMC01OC43LTE1LTE2Mi40LTE1Yy0xMTEuNSwwLTE2NSwxNy0xNjUsMTdzLTYuNSwxMi40LTkuMSwxOC45Yy0yLjYsNy4yLTkuMSwyNS40LTkuMSwyNS40CgkJUzIxOC44LDI4OCwzMjIuNSwyODhjNjIuNiwwLDEyNC42LDUuMiwxODYuNSwxNS43YzAsMC05LjEtMjIuMi0xNS0zMS4zQzQ5MC43LDI2Ny4yLDQ4Ny41LDI2MS4zLDQ4My41LDI1Ni4xTDQ4My41LDI1Ni4xeiIvPgoJPHBhdGggZmlsbD0iI0ZGRTYwMCIgZD0iTTEzMy4zLDEzMS41YzYuNS0wLjcsMTUuNywxOS42LDE1LjcsMTkuNnMyMC45LTUuOSwyNC44LDBjMy4zLDUuOS0xNSwxOS42LTE1LDE5LjZzMTEuMSwxOS42LDcuMiwyMy41CgkJYy0zLjMsMy45LTIyLjgtOC41LTIyLjgtOC41cy0xNSwxNy0xOS42LDE0LjNjLTUuMi0yLjYsMC43LTI0LjgsMC43LTI0LjhzLTIxLjUtOS4xLTE5LjYtMTQuM2MxLjMtNS4yLDIzLjUtNy4yLDIzLjUtNy4yCgkJUzEyNi44LDEzMi44LDEzMy4zLDEzMS41TDEzMy4zLDEzMS41eiIvPgo8L2c+Cjwvc3ZnPgo=',\n protocol: 'uniswap_v2',\n slippage: true,\n blockchains: ['fantom'],\n fantom: {\n router: {\n address: '0xF491e7B69E4244ad4002BC14e878a34207E38c29',\n api: UniswapV2.ROUTER\n },\n factory: {\n address: '0x152eE697f2E276fA89E96742e9bB9aB1F2E61bE3',\n api: UniswapV2.FACTORY\n },\n pair: {\n api: UniswapV2.PAIR\n }\n }\n};\n\nvar spookyswap = function spookyswap(scope) {\n return new Exchange(Object.assign(exchange$c, {\n scope: scope,\n findPath: function findPath(args) {\n return UniswapV2.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$c\n }));\n },\n pathExists: function pathExists(args) {\n return UniswapV2.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$c\n }));\n },\n getAmounts: function getAmounts(args) {\n return UniswapV2.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$c\n }));\n },\n getPrep: function getPrep(args) {\n return UniswapV2.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$c\n }));\n },\n getTransaction: function getTransaction(args) {\n return UniswapV2.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$c\n }));\n }\n }));\n};\n\nfunction _optionalChain$1(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value6;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return (_value6 = value).call.apply(_value6, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n} // Replaces 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE with the wrapped token and implies wrapping.\n//\n// We keep 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE internally\n// to be able to differentiate between ETH<>Token and WETH<>Token swaps\n// as they are not the same!\n//\n\n\nvar getExchangePath$1 = function getExchangePath$1(_ref95) {\n var blockchain = _ref95.blockchain,\n path = _ref95.path;\n\n if (!path) {\n return;\n }\n\n var exchangePath = path.map(function (token, index) {\n if (token === Blockchains[blockchain].currency.address && path[index + 1] != Blockchains[blockchain].wrapped.address && path[index - 1] != Blockchains[blockchain].wrapped.address) {\n return Blockchains[blockchain].wrapped.address;\n } else {\n return token;\n }\n });\n\n if (exchangePath[0] == Blockchains[blockchain].currency.address && exchangePath[1] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(0, 1);\n } else if (exchangePath[exchangePath.length - 1] == Blockchains[blockchain].currency.address && exchangePath[exchangePath.length - 2] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(exchangePath.length - 1, 1);\n }\n\n return exchangePath;\n};\n\nvar getBestPool$1 = /*#__PURE__*/function () {\n var _ref97 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee48(_ref96) {\n var exchange, blockchain, path, amountIn, amountOut, block, bestPool;\n return _regeneratorRuntime.wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n exchange = _ref96.exchange, blockchain = _ref96.blockchain, path = _ref96.path, amountIn = _ref96.amountIn, amountOut = _ref96.amountOut, block = _ref96.block;\n path = getExchangePath$1({\n blockchain: blockchain,\n path: path\n });\n\n if (!amountIn) {\n _context48.next = 8;\n break;\n }\n\n _context48.next = 5;\n return request({\n blockchain: Blockchains[blockchain].name,\n address: exchange[blockchain].quoter.address,\n method: 'findBestPathFromAmountIn',\n api: exchange[blockchain].quoter.api,\n cache: 5,\n block: block,\n params: {\n route: path,\n amountIn: amountIn\n }\n }).catch(function () {});\n\n case 5:\n bestPool = _context48.sent;\n _context48.next = 11;\n break;\n\n case 8:\n _context48.next = 10;\n return request({\n blockchain: Blockchains[blockchain].name,\n address: exchange[blockchain].quoter.address,\n method: 'findBestPathFromAmountOut',\n api: exchange[blockchain].quoter.api,\n cache: 5,\n block: block,\n params: {\n route: path,\n amountOut: amountOut\n }\n }).catch(function () {});\n\n case 10:\n bestPool = _context48.sent;\n\n case 11:\n if (!(!bestPool || bestPool.virtualAmountsWithoutSlippage.some(function (amount) {\n return amount.toString() === '0';\n }))) {\n _context48.next = 13;\n break;\n }\n\n return _context48.abrupt(\"return\");\n\n case 13:\n return _context48.abrupt(\"return\", bestPool);\n\n case 14:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48);\n }));\n\n return function getBestPool$1(_x50) {\n return _ref97.apply(this, arguments);\n };\n}();\n\nvar pathExists$2 = /*#__PURE__*/function () {\n var _ref99 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee49(_ref98) {\n var exchange, blockchain, path, amountIn, amountOut, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n exchange = _ref98.exchange, blockchain = _ref98.blockchain, path = _ref98.path, amountIn = _ref98.amountIn, amountOut = _ref98.amountOut, amountInMax = _ref98.amountInMax, amountOutMin = _ref98.amountOutMin;\n _context49.next = 3;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: path,\n amountIn: amountIn || amountInMax,\n amountOut: amountOut || amountOutMin\n });\n\n case 3:\n return _context49.abrupt(\"return\", !!_context49.sent);\n\n case 4:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49);\n }));\n\n return function pathExists$2(_x51) {\n return _ref99.apply(this, arguments);\n };\n}();\n\nvar findPath$2 = /*#__PURE__*/function () {\n var _ref101 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee51(_ref100) {\n var exchange, blockchain, tokenIn, tokenOut, amountIn, amountOut, amountInMax, amountOutMin, path, pools, allPoolsForAllUSD, usdPath;\n return _regeneratorRuntime.wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n exchange = _ref100.exchange, blockchain = _ref100.blockchain, tokenIn = _ref100.tokenIn, tokenOut = _ref100.tokenOut, amountIn = _ref100.amountIn, amountOut = _ref100.amountOut, amountInMax = _ref100.amountInMax, amountOutMin = _ref100.amountOutMin;\n\n if (!([tokenIn, tokenOut].includes(Blockchains[blockchain].currency.address) && [tokenIn, tokenOut].includes(Blockchains[blockchain].wrapped.address))) {\n _context51.next = 3;\n break;\n }\n\n return _context51.abrupt(\"return\", {\n path: undefined,\n exchangePath: undefined\n });\n\n case 3:\n pools = []; // DIRECT PATH\n\n _context51.next = 6;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, tokenOut],\n amountIn: amountIn || amountInMax,\n amountOut: amountOut || amountOutMin\n });\n\n case 6:\n _context51.t0 = _context51.sent;\n pools = [_context51.t0];\n\n if (pools.filter(Boolean).length) {\n path = [tokenIn, tokenOut];\n } // PATH VIA WRAPPED\n\n\n if (!(!path && tokenIn != Blockchains[blockchain].wrapped.address && tokenOut != Blockchains[blockchain].wrapped.address)) {\n _context51.next = 37;\n break;\n }\n\n pools = [];\n\n if (!(amountOut || amountOutMin)) {\n _context51.next = 25;\n break;\n }\n\n _context51.t1 = pools;\n _context51.next = 15;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [Blockchains[blockchain].wrapped.address, tokenOut],\n amountOut: amountOut || amountOutMin\n });\n\n case 15:\n _context51.t2 = _context51.sent;\n\n _context51.t1.push.call(_context51.t1, _context51.t2);\n\n if (!pools.filter(Boolean).length) {\n _context51.next = 23;\n break;\n }\n\n _context51.t3 = pools;\n _context51.next = 21;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, Blockchains[blockchain].wrapped.address],\n amountOut: pools[0].virtualAmountsWithoutSlippage[0]\n });\n\n case 21:\n _context51.t4 = _context51.sent;\n\n _context51.t3.unshift.call(_context51.t3, _context51.t4);\n\n case 23:\n _context51.next = 36;\n break;\n\n case 25:\n _context51.t5 = pools;\n _context51.next = 28;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, Blockchains[blockchain].wrapped.address],\n amountIn: amountIn || amountInMax\n });\n\n case 28:\n _context51.t6 = _context51.sent;\n\n _context51.t5.push.call(_context51.t5, _context51.t6);\n\n if (!pools.filter(Boolean).length) {\n _context51.next = 36;\n break;\n }\n\n _context51.t7 = pools;\n _context51.next = 34;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [Blockchains[blockchain].wrapped.address, tokenOut],\n amountIn: pools[0].virtualAmountsWithoutSlippage[1]\n });\n\n case 34:\n _context51.t8 = _context51.sent;\n\n _context51.t7.push.call(_context51.t7, _context51.t8);\n\n case 36:\n if (pools.filter(Boolean).length === 2) {\n // path via WRAPPED\n path = [tokenIn, Blockchains[blockchain].wrapped.address, tokenOut];\n }\n\n case 37:\n if (path) {\n _context51.next = 44;\n break;\n }\n\n pools = [];\n _context51.next = 41;\n return Promise.all(Blockchains[blockchain].stables.usd.map( /*#__PURE__*/function () {\n var _ref102 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee50(stable) {\n var pools;\n return _regeneratorRuntime.wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n pools = [];\n\n if (!(amountOut || amountOutMin)) {\n _context50.next = 15;\n break;\n }\n\n _context50.t0 = pools;\n _context50.next = 5;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [stable, tokenOut],\n amountOut: amountOut || amountOutMin\n });\n\n case 5:\n _context50.t1 = _context50.sent;\n\n _context50.t0.push.call(_context50.t0, _context50.t1);\n\n if (!pools.filter(Boolean).length) {\n _context50.next = 13;\n break;\n }\n\n _context50.t2 = pools;\n _context50.next = 11;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, stable],\n amountOut: pools[0].virtualAmountsWithoutSlippage[0]\n });\n\n case 11:\n _context50.t3 = _context50.sent;\n\n _context50.t2.unshift.call(_context50.t2, _context50.t3);\n\n case 13:\n _context50.next = 26;\n break;\n\n case 15:\n _context50.t4 = pools;\n _context50.next = 18;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, stable],\n amountIn: amountIn || amountInMax\n });\n\n case 18:\n _context50.t5 = _context50.sent;\n\n _context50.t4.push.call(_context50.t4, _context50.t5);\n\n if (!pools.filter(Boolean).length) {\n _context50.next = 26;\n break;\n }\n\n _context50.t6 = pools;\n _context50.next = 24;\n return getBestPool$1({\n exchange: exchange,\n blockchain: blockchain,\n path: [stable, tokenOut],\n amountIn: pools[0].virtualAmountsWithoutSlippage[1]\n });\n\n case 24:\n _context50.t7 = _context50.sent;\n\n _context50.t6.push.call(_context50.t6, _context50.t7);\n\n case 26:\n if (!(pools.filter(Boolean).length === 2)) {\n _context50.next = 28;\n break;\n }\n\n return _context50.abrupt(\"return\", [stable, pools]);\n\n case 28:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50);\n }));\n\n return function (_x53) {\n return _ref102.apply(this, arguments);\n };\n }()));\n\n case 41:\n allPoolsForAllUSD = _context51.sent;\n usdPath = allPoolsForAllUSD.filter(Boolean)[0];\n\n if (usdPath) {\n path = [tokenIn, usdPath[0], tokenOut];\n pools = usdPath[1];\n }\n\n case 44:\n // Add WRAPPED to route path if things start or end with NATIVE\n // because that actually reflects how things are routed in reality:\n if (_optionalChain$1([path, 'optionalAccess', function (_) {\n return _.length;\n }]) && path[0] == Blockchains[blockchain].currency.address) {\n path.splice(1, 0, Blockchains[blockchain].wrapped.address);\n } else if (_optionalChain$1([path, 'optionalAccess', function (_2) {\n return _2.length;\n }]) && path[path.length - 1] == Blockchains[blockchain].currency.address) {\n path.splice(path.length - 1, 0, Blockchains[blockchain].wrapped.address);\n }\n\n if (!path) {\n pools = [];\n }\n\n return _context51.abrupt(\"return\", {\n path: path,\n pools: pools,\n exchangePath: getExchangePath$1({\n blockchain: blockchain,\n path: path\n })\n });\n\n case 47:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51);\n }));\n\n return function findPath$2(_x52) {\n return _ref101.apply(this, arguments);\n };\n}();\n\nvar getAmountOut$1 = /*#__PURE__*/function () {\n var _ref104 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee52(_ref103) {\n var exchange, blockchain, path, pools, amountIn, bestPath;\n return _regeneratorRuntime.wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n exchange = _ref103.exchange, blockchain = _ref103.blockchain, path = _ref103.path, pools = _ref103.pools, amountIn = _ref103.amountIn;\n _context52.next = 3;\n return request({\n blockchain: Blockchains[blockchain].name,\n address: exchange[blockchain].quoter.address,\n method: 'findBestPathFromAmountIn',\n api: exchange[blockchain].quoter.api,\n cache: 5,\n params: {\n route: getExchangePath$1({\n blockchain: blockchain,\n path: path\n }),\n amountIn: amountIn\n }\n }).catch(function () {});\n\n case 3:\n bestPath = _context52.sent;\n\n if (!bestPath) {\n _context52.next = 6;\n break;\n }\n\n return _context52.abrupt(\"return\", bestPath.virtualAmountsWithoutSlippage[bestPath.virtualAmountsWithoutSlippage.length - 1]);\n\n case 6:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52);\n }));\n\n return function getAmountOut$1(_x54) {\n return _ref104.apply(this, arguments);\n };\n}();\n\nvar getAmountIn$1 = /*#__PURE__*/function () {\n var _ref106 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee53(_ref105) {\n var exchange, blockchain, path, pools, amountOut, block, bestPath;\n return _regeneratorRuntime.wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n exchange = _ref105.exchange, blockchain = _ref105.blockchain, path = _ref105.path, pools = _ref105.pools, amountOut = _ref105.amountOut, block = _ref105.block;\n _context53.next = 3;\n return request({\n blockchain: Blockchains[blockchain].name,\n address: exchange[blockchain].quoter.address,\n method: 'findBestPathFromAmountOut',\n api: exchange[blockchain].quoter.api,\n cache: 5,\n block: block,\n params: {\n route: getExchangePath$1({\n blockchain: blockchain,\n path: path\n }),\n amountOut: amountOut\n }\n }).catch(function () {});\n\n case 3:\n bestPath = _context53.sent;\n\n if (!bestPath) {\n _context53.next = 6;\n break;\n }\n\n return _context53.abrupt(\"return\", bestPath.virtualAmountsWithoutSlippage[0]);\n\n case 6:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53);\n }));\n\n return function getAmountIn$1(_x55) {\n return _ref106.apply(this, arguments);\n };\n}();\n\nvar getAmounts$2 = /*#__PURE__*/function () {\n var _ref108 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee54(_ref107) {\n var exchange, blockchain, path, pools, block, tokenIn, tokenOut, amountOut, amountIn, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n exchange = _ref107.exchange, blockchain = _ref107.blockchain, path = _ref107.path, pools = _ref107.pools, block = _ref107.block, tokenIn = _ref107.tokenIn, tokenOut = _ref107.tokenOut, amountOut = _ref107.amountOut, amountIn = _ref107.amountIn, amountInMax = _ref107.amountInMax, amountOutMin = _ref107.amountOutMin;\n\n if (!amountOut) {\n _context54.next = 12;\n break;\n }\n\n _context54.next = 4;\n return getAmountIn$1({\n exchange: exchange,\n blockchain: blockchain,\n block: block,\n path: path,\n pools: pools,\n amountOut: amountOut,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 4:\n amountIn = _context54.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context54.next = 9;\n break;\n }\n\n return _context54.abrupt(\"return\", {});\n\n case 9:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 10:\n _context54.next = 43;\n break;\n\n case 12:\n if (!amountIn) {\n _context54.next = 23;\n break;\n }\n\n _context54.next = 15;\n return getAmountOut$1({\n exchange: exchange,\n blockchain: blockchain,\n path: path,\n pools: pools,\n amountIn: amountIn,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 15:\n amountOut = _context54.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context54.next = 20;\n break;\n }\n\n return _context54.abrupt(\"return\", {});\n\n case 20:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 21:\n _context54.next = 43;\n break;\n\n case 23:\n if (!amountOutMin) {\n _context54.next = 34;\n break;\n }\n\n _context54.next = 26;\n return getAmountIn$1({\n exchange: exchange,\n blockchain: blockchain,\n block: block,\n path: path,\n pools: pools,\n amountOut: amountOutMin,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 26:\n amountIn = _context54.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context54.next = 31;\n break;\n }\n\n return _context54.abrupt(\"return\", {});\n\n case 31:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 32:\n _context54.next = 43;\n break;\n\n case 34:\n if (!amountInMax) {\n _context54.next = 43;\n break;\n }\n\n _context54.next = 37;\n return getAmountOut$1({\n exchange: exchange,\n blockchain: blockchain,\n path: path,\n pools: pools,\n amountIn: amountInMax,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 37:\n amountOut = _context54.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context54.next = 42;\n break;\n }\n\n return _context54.abrupt(\"return\", {});\n\n case 42:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 43:\n return _context54.abrupt(\"return\", {\n amountOut: amountOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 44:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54);\n }));\n\n return function getAmounts$2(_x56) {\n return _ref108.apply(this, arguments);\n };\n}();\n\nvar getPrep$1 = /*#__PURE__*/function () {\n var _ref110 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee55(_ref109) {\n var exchange, blockchain, tokenIn, amountIn, account, allowance, transaction;\n return _regeneratorRuntime.wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n exchange = _ref109.exchange, blockchain = _ref109.blockchain, tokenIn = _ref109.tokenIn, amountIn = _ref109.amountIn, account = _ref109.account;\n\n if (!(tokenIn === Blockchains[blockchain].currency.address)) {\n _context55.next = 3;\n break;\n }\n\n return _context55.abrupt(\"return\");\n\n case 3:\n _context55.next = 5;\n return request({\n blockchain: blockchain,\n address: tokenIn,\n method: 'allowance',\n api: Token[blockchain]['20'],\n params: [account, exchange[blockchain].router.address]\n });\n\n case 5:\n allowance = _context55.sent;\n\n if (!allowance.gte(amountIn)) {\n _context55.next = 8;\n break;\n }\n\n return _context55.abrupt(\"return\");\n\n case 8:\n transaction = {\n blockchain: blockchain,\n from: account,\n to: tokenIn,\n api: Token[blockchain]['20'],\n method: 'approve',\n params: [exchange[blockchain].router.address, amountIn.sub(allowance)]\n };\n return _context55.abrupt(\"return\", {\n transaction: transaction\n });\n\n case 10:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55);\n }));\n\n return function getPrep$1(_x57) {\n return _ref110.apply(this, arguments);\n };\n}();\n\nvar getTransaction$2 = /*#__PURE__*/function () {\n var _ref112 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee56(_ref111) {\n var exchange, blockchain, pools, path, amountIn, amountInMax, amountOut, amountOutMin, amountInInput, amountOutInput, amountInMaxInput, amountOutMinInput, account, transaction, deadline, fullPath;\n return _regeneratorRuntime.wrap(function _callee56$(_context56) {\n while (1) {\n switch (_context56.prev = _context56.next) {\n case 0:\n exchange = _ref111.exchange, blockchain = _ref111.blockchain, pools = _ref111.pools, path = _ref111.path, amountIn = _ref111.amountIn, amountInMax = _ref111.amountInMax, amountOut = _ref111.amountOut, amountOutMin = _ref111.amountOutMin, amountInInput = _ref111.amountInInput, amountOutInput = _ref111.amountOutInput, amountInMaxInput = _ref111.amountInMaxInput, amountOutMinInput = _ref111.amountOutMinInput, account = _ref111.account;\n transaction = {\n blockchain: blockchain,\n from: account,\n to: exchange[blockchain].router.address,\n api: exchange[blockchain].router.api\n };\n deadline = Math.round(Date.now() / 1000) + 60 * 60 * 24; // 24 hours\n\n fullPath = [pools.map(function (pool) {\n return pool.binSteps[0];\n }), pools.map(function (pool) {\n return pool.versions[0];\n }), getExchangePath$1({\n blockchain: blockchain,\n path: path\n })];\n\n if (path[0] === Blockchains[blockchain].currency.address) {\n // NATIVE START\n if (amountInMaxInput) {\n transaction.method = 'swapNATIVEForExactTokens';\n transaction.params = {\n amountOut: amountOut,\n path: fullPath,\n to: account,\n deadline: deadline\n };\n transaction.value = amountInMax;\n } else {\n transaction.method = 'swapExactNATIVEForTokens';\n transaction.params = {\n amountOutMin: amountOutMin || amountOut,\n path: fullPath,\n to: account,\n deadline: deadline\n };\n transaction.value = amountIn;\n }\n } else if (path[path.length - 1] === Blockchains[blockchain].currency.address) {\n // NATIVE END\n if (amountInMaxInput) {\n transaction.method = 'swapTokensForExactNATIVE';\n transaction.params = {\n amountNATIVEOut: amountOut,\n amountInMax: amountInMax,\n path: fullPath,\n to: account,\n deadline: deadline\n };\n } else {\n transaction.method = 'swapExactTokensForNATIVE';\n transaction.params = {\n amountIn: amountIn,\n amountOutMinNATIVE: amountOutMin || amountOut,\n path: fullPath,\n to: account,\n deadline: deadline\n };\n }\n } else {\n // TOKENS\n if (amountInMaxInput) {\n transaction.method = 'swapTokensForExactTokens';\n transaction.params = {\n amountOut: amountOut,\n amountInMax: amountInMax,\n path: fullPath,\n to: account,\n deadline: deadline\n };\n } else {\n transaction.method = 'swapExactTokensForTokens';\n transaction.params = {\n amountIn: amountIn,\n amountOutMin: amountOutMin || amountOut,\n path: fullPath,\n to: account,\n deadline: deadline\n };\n }\n }\n\n return _context56.abrupt(\"return\", transaction);\n\n case 6:\n case \"end\":\n return _context56.stop();\n }\n }\n }, _callee56);\n }));\n\n return function getTransaction$2(_x58) {\n return _ref112.apply(this, arguments);\n };\n}();\n\nvar ROUTER$1 = [{\n \"inputs\": [{\n \"internalType\": \"contract ILBFactory\",\n \"name\": \"factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IJoeFactory\",\n \"name\": \"factoryV1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract ILBLegacyFactory\",\n \"name\": \"legacyFactory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract ILBLegacyRouter\",\n \"name\": \"legacyRouter\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IWNATIVE\",\n \"name\": \"wnative\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"AddressHelper__CallFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"AddressHelper__NonContract\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"JoeLibrary__InsufficientAmount\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"JoeLibrary__InsufficientLiquidity\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountSlippage\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__AmountSlippageBPTooBig\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountXMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountX\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountY\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__AmountSlippageCaught\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__BinReserveOverflows\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBRouter__BrokenSwapSafetyCheck\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"currentTimestamp\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__DeadlineExceeded\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__FailedToSendNATIVE\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"idDesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"idSlippage\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__IdDesiredOverflows\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"id\",\n \"type\": \"int256\"\n }],\n \"name\": \"LBRouter__IdOverflows\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"activeIdDesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"idSlippage\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"activeId\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__IdSlippageCaught\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__InsufficientAmountOut\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"wrongToken\",\n \"type\": \"address\"\n }],\n \"name\": \"LBRouter__InvalidTokenPath\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"version\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__InvalidVersion\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBRouter__LengthsMismatch\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__MaxAmountInExceeded\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBRouter__NotFactoryOwner\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__PairNotCreated\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBRouter__SenderIsNotWNATIVE\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__SwapOverflows\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"excess\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__TooMuchTokensIn\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reserve\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__WrongAmounts\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountX\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountY\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"msgValue\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBRouter__WrongNativeLiquidityParameters\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBRouter__WrongTokenOrder\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"TokenHelper__TransferFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountX\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountY\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountXMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"activeIdDesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"idSlippage\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int256[]\",\n \"name\": \"deltaIds\",\n \"type\": \"int256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"distributionX\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"distributionY\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"refundTo\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ILBRouter.LiquidityParameters\",\n \"name\": \"liquidityParameters\",\n \"type\": \"tuple\"\n }],\n \"name\": \"addLiquidity\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountXAdded\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYAdded\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountXLeft\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYLeft\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"depositIds\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"liquidityMinted\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountX\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountY\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountXMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"activeIdDesired\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"idSlippage\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int256[]\",\n \"name\": \"deltaIds\",\n \"type\": \"int256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"distributionX\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"distributionY\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"refundTo\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ILBRouter.LiquidityParameters\",\n \"name\": \"liquidityParameters\",\n \"type\": \"tuple\"\n }],\n \"name\": \"addLiquidityNATIVE\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountXAdded\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYAdded\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountXLeft\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYLeft\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"depositIds\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"liquidityMinted\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"activeId\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }],\n \"name\": \"createLBPair\",\n \"outputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getFactory\",\n \"outputs\": [{\n \"internalType\": \"contract ILBFactory\",\n \"name\": \"lbFactory\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"price\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getIdFromPrice\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getLegacyFactory\",\n \"outputs\": [{\n \"internalType\": \"contract ILBLegacyFactory\",\n \"name\": \"legacyLBfactory\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getLegacyRouter\",\n \"outputs\": [{\n \"internalType\": \"contract ILBLegacyRouter\",\n \"name\": \"legacyRouter\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"getPriceFromId\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountOut\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"swapForY\",\n \"type\": \"bool\"\n }],\n \"name\": \"getSwapIn\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amountIn\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountOutLeft\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"fee\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountIn\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"swapForY\",\n \"type\": \"bool\"\n }],\n \"name\": \"getSwapOut\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amountInLeft\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountOut\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"fee\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getV1Factory\",\n \"outputs\": [{\n \"internalType\": \"contract IJoeFactory\",\n \"name\": \"factoryV1\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getWNATIVE\",\n \"outputs\": [{\n \"internalType\": \"contract IWNATIVE\",\n \"name\": \"wnative\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountXMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountYMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"removeLiquidity\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountX\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountY\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountTokenMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountNATIVEMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"address payable\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"removeLiquidityNATIVE\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountToken\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountNATIVE\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactNATIVEForTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactNATIVEForTokensSupportingFeeOnTransferTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinNATIVE\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address payable\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForNATIVE\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinNATIVE\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address payable\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForNATIVESupportingFeeOnTransferTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapNATIVEForExactTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amountsIn\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountNATIVEOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address payable\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapTokensForExactNATIVE\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amountsIn\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"components\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"pairBinSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"contract IERC20[]\",\n \"name\": \"tokenPath\",\n \"type\": \"address[]\"\n }],\n \"internalType\": \"struct ILBRouter.Path\",\n \"name\": \"path\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"swapTokensForExactTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"amountsIn\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"sweep\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBToken\",\n \"name\": \"lbToken\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"sweepLBToken\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n}];\nvar FACTORY$1 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"flashLoanFee\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"LBFactory__AddressZero\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__BinStepHasNoPreset\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__BinStepTooLow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"fees\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"maxFees\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__FlashLoanFeeAboveMax\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"LBFactory__IdenticalAddresses\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBFactory__ImplementationNotSet\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"_binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__LBPairAlreadyExists\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__LBPairDoesNotExist\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBFactory__LBPairIgnoredIsAlreadyInTheSameState\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__LBPairNotCreated\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"LBPairImplementation\",\n \"type\": \"address\"\n }],\n \"name\": \"LBFactory__LBPairSafetyCheckFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__PresetIsLockedForUsers\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBFactory__PresetOpenStateIsAlreadyInTheSameState\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"quoteAsset\",\n \"type\": \"address\"\n }],\n \"name\": \"LBFactory__QuoteAssetAlreadyWhitelisted\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"quoteAsset\",\n \"type\": \"address\"\n }],\n \"name\": \"LBFactory__QuoteAssetNotWhitelisted\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"LBFactory__SameFeeRecipient\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"flashLoanFee\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBFactory__SameFlashLoanFee\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"LBPairImplementation\",\n \"type\": \"address\"\n }],\n \"name\": \"LBFactory__SameImplementation\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PairParametersHelper__InvalidParameter\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PendingOwnable__AddressZero\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PendingOwnable__NoPendingOwner\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PendingOwnable__NotOwner\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PendingOwnable__NotPendingOwner\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PendingOwnable__PendingOwnerAlreadySet\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"SafeCast__Exceeds16Bits\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"x\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"y\",\n \"type\": \"int256\"\n }],\n \"name\": \"Uint128x128Math__PowUnderflow\",\n \"type\": \"error\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"oldRecipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"newRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"FeeRecipientSet\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"oldFlashLoanFee\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"newFlashLoanFee\",\n \"type\": \"uint256\"\n }],\n \"name\": \"FlashLoanFeeSet\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"contract ILBPair\",\n \"name\": \"LBPair\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"pid\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBPairCreated\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"contract ILBPair\",\n \"name\": \"LBPair\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"ignored\",\n \"type\": \"bool\"\n }],\n \"name\": \"LBPairIgnoredStateChanged\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"oldLBPairImplementation\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"LBPairImplementation\",\n \"type\": \"address\"\n }],\n \"name\": \"LBPairImplementationSet\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"pendingOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"PendingOwnerSet\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": true,\n \"internalType\": \"bool\",\n \"name\": \"isOpen\",\n \"type\": \"bool\"\n }],\n \"name\": \"PresetOpenStateChanged\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"PresetRemoved\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"baseFactor\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"protocolShare\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint256\"\n }],\n \"name\": \"PresetSet\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"contract IERC20\",\n \"name\": \"quoteAsset\",\n \"type\": \"address\"\n }],\n \"name\": \"QuoteAssetAdded\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"contract IERC20\",\n \"name\": \"quoteAsset\",\n \"type\": \"address\"\n }],\n \"name\": \"QuoteAssetRemoved\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"quoteAsset\",\n \"type\": \"address\"\n }],\n \"name\": \"addQuoteAsset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"becomeOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"activeId\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }],\n \"name\": \"createLBPair\",\n \"outputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"pair\",\n \"type\": \"address\"\n }],\n \"name\": \"forceDecay\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getAllBinSteps\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"binStepWithPreset\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }],\n \"name\": \"getAllLBPairs\",\n \"outputs\": [{\n \"components\": [{\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"contract ILBPair\",\n \"name\": \"LBPair\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"createdByOwner\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"ignoredForRouting\",\n \"type\": \"bool\"\n }],\n \"internalType\": \"struct ILBFactory.LBPairInformation[]\",\n \"name\": \"lbPairsAvailable\",\n \"type\": \"tuple[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getFeeRecipient\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getFlashLoanFee\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"flashLoanFee\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getLBPairAtIndex\",\n \"outputs\": [{\n \"internalType\": \"contract ILBPair\",\n \"name\": \"lbPair\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getLBPairImplementation\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"lbPairImplementation\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getLBPairInformation\",\n \"outputs\": [{\n \"components\": [{\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"contract ILBPair\",\n \"name\": \"LBPair\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"createdByOwner\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"ignoredForRouting\",\n \"type\": \"bool\"\n }],\n \"internalType\": \"struct ILBFactory.LBPairInformation\",\n \"name\": \"lbPairInformation\",\n \"type\": \"tuple\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getMaxFlashLoanFee\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"maxFee\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getMinBinStep\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"minBinStep\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getNumberOfLBPairs\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"lbPairNumber\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getNumberOfQuoteAssets\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"numberOfQuoteAssets\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getOpenBinSteps\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"openBinStep\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"binStep\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getPreset\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"baseFactor\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"protocolShare\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"isOpen\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getQuoteAssetAtIndex\",\n \"outputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"isQuoteAsset\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"isQuote\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"pendingOwner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }],\n \"name\": \"removePreset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"quoteAsset\",\n \"type\": \"address\"\n }],\n \"name\": \"removeQuoteAsset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"revokePendingOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"setFeeRecipient\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"baseFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"protocolShare\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint24\"\n }],\n \"name\": \"setFeesParametersOnPair\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"flashLoanFee\",\n \"type\": \"uint256\"\n }],\n \"name\": \"setFlashLoanFee\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"ignored\",\n \"type\": \"bool\"\n }],\n \"name\": \"setLBPairIgnored\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"newLBPairImplementation\",\n \"type\": \"address\"\n }],\n \"name\": \"setLBPairImplementation\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pendingOwner_\",\n \"type\": \"address\"\n }],\n \"name\": \"setPendingOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"baseFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"protocolShare\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"isOpen\",\n \"type\": \"bool\"\n }],\n \"name\": \"setPreset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"binStep\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"isOpen\",\n \"type\": \"bool\"\n }],\n \"name\": \"setPresetOpenState\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar PAIR = [{\n \"inputs\": [{\n \"internalType\": \"contract ILBFactory\",\n \"name\": \"factory_\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"AddressHelper__CallFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"AddressHelper__NonContract\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"BinHelper__CompositionFactorFlawed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"BinHelper__LiquidityOverflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"FeeHelper__FeeTooLarge\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__AddressZero\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__AlreadyInitialized\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__EmptyMarketConfigs\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__FlashLoanCallbackFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__FlashLoanInsufficientAmount\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__InsufficientAmountIn\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__InsufficientAmountOut\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__InvalidInput\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__InvalidStaticFeeParameters\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__MaxTotalFeeExceeded\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__OnlyFactory\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__OnlyProtocolFeeRecipient\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__OutOfLiquidity\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__TokenNotSupported\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"LBPair__ZeroAmount\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"LBPair__ZeroAmountsOut\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBPair__ZeroBorrowAmount\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"LBPair__ZeroShares\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBToken__AddressThisOrZero\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBToken__BurnExceedsBalance\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBToken__InvalidLength\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }],\n \"name\": \"LBToken__SelfApproval\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }],\n \"name\": \"LBToken__SpenderNotApproved\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"LBToken__TransferExceedsBalance\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LiquidityConfigurations__InvalidConfig\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"OracleHelper__InvalidOracleId\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"OracleHelper__LookUpTimestampTooOld\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"OracleHelper__NewLengthTooSmall\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PackedUint128Math__AddOverflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PackedUint128Math__MultiplierTooLarge\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PackedUint128Math__SubUnderflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PairParametersHelper__InvalidParameter\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"ReentrancyGuard__ReentrantCall\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"SafeCast__Exceeds128Bits\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"SafeCast__Exceeds24Bits\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"SafeCast__Exceeds40Bits\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"TokenHelper__TransferFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"Uint128x128Math__LogUnderflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"x\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"y\",\n \"type\": \"int256\"\n }],\n \"name\": \"Uint128x128Math__PowUnderflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"Uint256x256Math__MulDivOverflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"Uint256x256Math__MulShiftOverflow\",\n \"type\": \"error\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }],\n \"name\": \"ApprovalForAll\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"protocolFees\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"CollectedProtocolFees\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"totalFees\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"protocolFees\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"CompositionFees\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32[]\",\n \"name\": \"amounts\",\n \"type\": \"bytes32[]\"\n }],\n \"name\": \"DepositedToBins\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"contract ILBFlashLoanCallback\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"activeId\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"amounts\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"totalFees\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"protocolFees\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"FlashLoan\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"idReference\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"volatilityReference\",\n \"type\": \"uint24\"\n }],\n \"name\": \"ForcedDecay\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"oracleLength\",\n \"type\": \"uint16\"\n }],\n \"name\": \"OracleLengthIncreased\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"baseFactor\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"protocolShare\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint24\"\n }],\n \"name\": \"StaticFeeParametersSet\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"amountsIn\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"amountsOut\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint24\",\n \"name\": \"volatilityAccumulator\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"totalFees\",\n \"type\": \"bytes32\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32\",\n \"name\": \"protocolFees\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"Swap\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"TransferBatch\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"indexed\": false,\n \"internalType\": \"bytes32[]\",\n \"name\": \"amounts\",\n \"type\": \"bytes32[]\"\n }],\n \"name\": \"WithdrawnFromBins\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }],\n \"name\": \"approveForAll\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"balanceOf\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"accounts\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"balanceOfBatch\",\n \"outputs\": [{\n \"internalType\": \"uint256[]\",\n \"name\": \"batchBalances\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"batchTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"amountsToBurn\",\n \"type\": \"uint256[]\"\n }],\n \"name\": \"burn\",\n \"outputs\": [{\n \"internalType\": \"bytes32[]\",\n \"name\": \"amounts\",\n \"type\": \"bytes32[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"collectProtocolFees\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"collectedProtocolFees\",\n \"type\": \"bytes32\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"contract ILBFlashLoanCallback\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"amounts\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"flashLoan\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"forceDecay\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getActiveId\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"activeId\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"getBin\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"binReserveX\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"binReserveY\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getBinStep\",\n \"outputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getFactory\",\n \"outputs\": [{\n \"internalType\": \"contract ILBFactory\",\n \"name\": \"factory\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"price\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getIdFromPrice\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"swapForY\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"getNextNonEmptyBin\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"nextId\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getOracleParameters\",\n \"outputs\": [{\n \"internalType\": \"uint8\",\n \"name\": \"sampleLifetime\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"size\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"activeSize\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint40\",\n \"name\": \"lastUpdated\",\n \"type\": \"uint40\"\n }, {\n \"internalType\": \"uint40\",\n \"name\": \"firstTimestamp\",\n \"type\": \"uint40\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint40\",\n \"name\": \"lookupTimestamp\",\n \"type\": \"uint40\"\n }],\n \"name\": \"getOracleSampleAt\",\n \"outputs\": [{\n \"internalType\": \"uint64\",\n \"name\": \"cumulativeId\",\n \"type\": \"uint64\"\n }, {\n \"internalType\": \"uint64\",\n \"name\": \"cumulativeVolatility\",\n \"type\": \"uint64\"\n }, {\n \"internalType\": \"uint64\",\n \"name\": \"cumulativeBinCrossed\",\n \"type\": \"uint64\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"id\",\n \"type\": \"uint24\"\n }],\n \"name\": \"getPriceFromId\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"price\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getProtocolFees\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"protocolFeeX\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"protocolFeeY\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getReserves\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"reserveX\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"reserveY\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getStaticFeeParameters\",\n \"outputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"baseFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"protocolShare\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amountOut\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"swapForY\",\n \"type\": \"bool\"\n }],\n \"name\": \"getSwapIn\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amountIn\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountOutLeft\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"fee\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amountIn\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"swapForY\",\n \"type\": \"bool\"\n }],\n \"name\": \"getSwapOut\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amountInLeft\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountOut\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"fee\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getTokenX\",\n \"outputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenX\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getTokenY\",\n \"outputs\": [{\n \"internalType\": \"contract IERC20\",\n \"name\": \"tokenY\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getVariableFeeParameters\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"volatilityAccumulator\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"volatilityReference\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"idReference\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint40\",\n \"name\": \"timeOfLastUpdate\",\n \"type\": \"uint40\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"newLength\",\n \"type\": \"uint16\"\n }],\n \"name\": \"increaseOracleLength\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"baseFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"protocolShare\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"activeId\",\n \"type\": \"uint24\"\n }],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }],\n \"name\": \"isApprovedForAll\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32[]\",\n \"name\": \"liquidityConfigs\",\n \"type\": \"bytes32[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"refundTo\",\n \"type\": \"address\"\n }],\n \"name\": \"mint\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"amountsReceived\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"amountsLeft\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"liquidityMinted\",\n \"type\": \"uint256[]\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"baseFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"filterPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"decayPeriod\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"reductionFactor\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"variableFeeControl\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"protocolShare\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maxVolatilityAccumulator\",\n \"type\": \"uint24\"\n }],\n \"name\": \"setStaticFeeParameters\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"swapForY\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"swap\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"amountsOut\",\n \"type\": \"bytes32\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }],\n \"name\": \"totalSupply\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar QUOTER$1 = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"factoryV1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"legacyFactoryV2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"factoryV2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"legacyRouterV2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"routerV2\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"JoeLibrary__AddressZero\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"JoeLibrary__IdenticalAddresses\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"JoeLibrary__InsufficientAmount\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"JoeLibrary__InsufficientLiquidity\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LBQuoter_InvalidLength\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"SafeCast__Exceeds128Bits\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"SafeCast__Exceeds24Bits\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"x\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"y\",\n \"type\": \"int256\"\n }],\n \"name\": \"Uint128x128Math__PowUnderflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"Uint256x256Math__MulDivOverflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"Uint256x256Math__MulShiftOverflow\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"route\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountIn\",\n \"type\": \"uint128\"\n }],\n \"name\": \"findBestPathFromAmountIn\",\n \"outputs\": [{\n \"components\": [{\n \"internalType\": \"address[]\",\n \"name\": \"route\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"pairs\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"binSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"amounts\",\n \"type\": \"uint128[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"virtualAmountsWithoutSlippage\",\n \"type\": \"uint128[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"fees\",\n \"type\": \"uint128[]\"\n }],\n \"internalType\": \"struct LBQuoter.Quote\",\n \"name\": \"quote\",\n \"type\": \"tuple\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address[]\",\n \"name\": \"route\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amountOut\",\n \"type\": \"uint128\"\n }],\n \"name\": \"findBestPathFromAmountOut\",\n \"outputs\": [{\n \"components\": [{\n \"internalType\": \"address[]\",\n \"name\": \"route\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"pairs\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"uint256[]\",\n \"name\": \"binSteps\",\n \"type\": \"uint256[]\"\n }, {\n \"internalType\": \"enum ILBRouter.Version[]\",\n \"name\": \"versions\",\n \"type\": \"uint8[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"amounts\",\n \"type\": \"uint128[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"virtualAmountsWithoutSlippage\",\n \"type\": \"uint128[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"fees\",\n \"type\": \"uint128[]\"\n }],\n \"internalType\": \"struct LBQuoter.Quote\",\n \"name\": \"quote\",\n \"type\": \"tuple\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getFactoryV1\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"factoryV1\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getFactoryV2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"factoryV2\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getLegacyFactoryV2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"legacyFactoryV2\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getLegacyRouterV2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"legacyRouterV2\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"getRouterV2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"routerV2\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar TraderJoeV2_1 = {\n findPath: findPath$2,\n pathExists: pathExists$2,\n getAmounts: getAmounts$2,\n getTransaction: getTransaction$2,\n getPrep: getPrep$1,\n ROUTER: ROUTER$1,\n FACTORY: FACTORY$1,\n PAIR: PAIR,\n QUOTER: QUOTER$1\n};\nvar exchange$b = {\n name: 'trader_joe_v2_1',\n label: 'Trader Joe v2.1',\n logo: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABvCAYAAAA0YEQFAAABAGlDQ1BpY2MAABiVY2BgPMEABCwGDAy5eSVFQe5OChGRUQrsDxgYgRAMEpOLCxhwA6Cqb9cgai/r4lGHC3CmpBYnA+kPQKxSBLQcaKQIkC2SDmFrgNhJELYNiF1eUlACZAeA2EUhQc5AdgqQrZGOxE5CYicXFIHU9wDZNrk5pckIdzPwpOaFBgNpDiCWYShmCGJwZ3AC+R+iJH8RA4PFVwYG5gkIsaSZDAzbWxkYJG4hxFQWMDDwtzAwbDuPEEOESUFiUSJYiAWImdLSGBg+LWdg4I1kYBC+wMDAFQ0LCBxuUwC7zZ0hHwjTGXIYUoEingx5DMkMekCWEYMBgyGDGQCm1j8/yRb+6wAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAABPXpUWHRSYXcgcHJvZmlsZSB0eXBlIGljYwAAKJGdU9mtxCAM/KeKLcH4JOUkJEiv/waeuaJslP3YHYkgOWbGHkz4yzm8Klg0QEXMCSaY2qa7HsaGgmyMCJJkkRUB7GgnxjoRNCoZGfyIRlZcNVyZd8L9V8bwZf6irGKkvX8oI4wc3IXWfS808qiY1a5xTGf8LZ/yjAcztxSsE0SB+cMF2I3uylGHACYXeIwH/XTAL8BwCqShTNl9zSaztRNxepRV9BCRmTBbcQLzmPi9e+HAeI7BBVpWbESUSu+JFnhMxGWp+2ZJeoH7es8L3fPuHZTUWtk0lyfCOi9wGxcDjYYar9c//AFURzuIa5/UXVpFkcaYrbLdPPLJ/mDe2G/ezQqrd9UzLWOZV6QeVOlJ7Mrqj6kS49Fj5J/KQ05OGv4BiF6+ZwMoFgoAADX7SURBVHja7b17mB1XdSf6W2vvqjrv02+13tZblmyDLFu2wYAdwiMQM4GJHJhkbgjMmHxwYZJw79xMEi7tzP0yk3wkMxnu5Bu45INkJpCRZpLwGJyEEAmMjTGW8Uuy9bDe6m71u8/7VNXe6/5RVefRaj1stS0leH9q9TmnT1Xt2r+91v6tx15FeK29Yk0AwsgIAft57EDeTSvlSqUix2dna7cdOBAsxTXoWt/kP8YWA6fOHjzouKWpzWpi6qdC07jLMvrY2mkY2RMUlv3l6u9/v36113oNwCVsAhB27+ZJTKbTyO8yfviAP3ruJ4Og3FdO+Wh6DThiUZjSZ90g9QunC0Pfv1pJ1Nf6pv+xNBkZYUwczJTm5U2psOdfmND8RFibL856ZYz3zqOe8sFOCMcJIZIa7htV963J158UICRAXu51XwPwKpuI0NwvvbdYOXnknWT5X7CYt4Shr2szozJuzsv5YpXENYAOCWxhlUijELCcC28cHDN0NeABrwH4spuMjHDthReGK//bz71HU+qfM8utAqTCRgXzEyfkrDsjc8UGWW2IlIBYABIIAcICYdixXNlcbT9eA/AlNhkZ4ZkXfrSyfOzZ97PLHyLwRlJKwxoElTlMT7woJ9w51LM+GWWJlAWzgEnADDAJVMiARWl5vScERq+qP3ytB2RJBlWEZGTkFb2XkZERLn/gvu2lI8/8oaedH7LS/46Us4W01oCgWZ7FxORRe8SZRzkVwichwwCIAAKICJpFFAOqQdaCzmL79h9PCRQB4UsjHmbH+88/8tyqI3fe+Lra2HT/D4sZMlZsaGQqNOGpQPhskMud+6mZmfLLWWsEoGMf/yl3YNLZ5hx75mOkvQ8QqwwRA8QROCIIqiWMT78oR3WZ6q6BkBAAaAEsACUQJgFYABHohmpSiOexd6+92rH4B2NGiIDw4AhhZW2LhX1fc2LqvtH/9cMbJg+e7KlXGo61lmwEkgjBCtA0QAWCow7Rn4XWfuVdQOnKriWEBx90KkeeeSOA3yLmNxCzB1YUjVgMHgTN6jzGzh+Vw5hF2QlB2hKxQCkLrS2UsvCUEVdZuNqCA8HwM/kzuZL7vhWnpw5c7bj8gwBQRka4OTyzQSvnQRK8q/rCyczzX/obXZ2tkhGJUANgAElet44FIARfQD8wIp94L/AsRYKx6HVqo8eW2Wr1fTDyy9DqRtaOiiQtHiqmGDzAL8/J6fPP4yCVUFUWpC0xCxQLtDbQSuBpK642SCkDrSwwS1j2bP7bGv0/u+H48fmrHZvrWoWKgLD3D1K2fO4Xteh/Q5Dh6vOn1HOf+19crTaoE6z4NdkFnxEgELgCuZuI/uqrIu8B8GzXdR54wKmcP7+p8sJT7yfgg+zolXA1g1Q8JaITgbjVsWZpFmcnj+IZKaPMFswWDBFAoFiIYyFlEjhsobQIhQI97ogXqIfWnjleXooxum4BFBHClx4sGnPuPxHRPyURR6p1PvqVfVytNlpAESJxSsDsFK0E1PgtschaQ/Q7nxN539jIiPnlRx8d0J68ozR59p+zp98Ix8mQ40ZSJtQGDzF4BIgImrMTcnr6OA5IBRVloZVACAIWsIqOsQJyCKLYgpUIQSDzhOy8cw7s/OXFtMA/CgBFhOpf/OQqV+iPCHgbRDRMiKnvH6S58dkuKUtoXOdnyfsLzguQZnrzW7du+mDPI3//OpXP/ox23eWkNZPWgNaIiLkk/QCBWkxSrEVt8qwcnT8tP7J1qkfgiSGBQ2IViRDAIJAiEa0MlGNFsQiaIG/UNZma+58fP33+9FKN1XUHoIgQ/vQ3+lxLf0xEbwJEQSzQDHD+B4fRueYt/AHaEhkD1l7kiVAs5mXV+rXZ/lXDn9XptEuOJlIxcMTxt+MzWQuiZL0jWBOgMnlKDlfG5QlTp5AtNAtEAMUSKiWiInuPmGGVEtZaxGERMkLuaW2KU+n/Wsgt/6P7MXvV5sN1CaCIED77CdfmUp8iojdBrANrAWvhj8+hND5zUXXZOkcHYAwgnUphcPmgDKwcpuLQAGnXUVBKgTkCTukWKWmfVABumwnGr2Fu8pQcrk/LM0GNfBLRLAQWYRLLJFYRDLMlxYBWolhbcZQRDi3SJ5xqcSz9X4fQ85u9hw5VlnLMrisAgQfJpJ2fI2s/DEBHnEAAK6iPTSMIDHUSlE7QWiqUCFopDAz1yfIbVlFhsB9OyiNSCmACsQKYIYohxCBIpCo7T8yR1EEEQb2MuelT8lR9Vg6HDfJhRUVLpAgAIhFmGKVsoBRIKSsOi0rrQNzAhvnT7rHi+fTv1qreX/SeP1ld6hG7bgCUkRHGl+bWkPC/BsOFMZE1BwuIoD4+E2GJtmokAEKRaaYVI1vIYXjNCgysHEaqkCPSDqhF+zniJUQtdUkxYJH8xWeMtaiIhV+ZlqmZs3jaL8nRoE4BIKQgloSYRYhElIJhFsMsVrF1XW2Up8IJrylP95xO/a0edb++8czciaUiLdclgLHhzKFPH2HCBhijYAUQC9hIAmuTc7Cx3BEi15TSCinPRbGvKD1DfSgMDUAXsmQVxJcAsCFIOLlGzCojMCmJA4iF2BCw8doqFiJG/EYJk80qPd6YlwkTUkiwIAhDLDEJE0JX29Bzw6arw5qnTNVR9qgi+9ew9jvDwNltP6jXCPVXBLjrCkDcfz/jHRtuYMsfgNi26jSxeFiLoFKHBYiY4TgK+WwGub4CUsP9cAYL5HsKY0oh1AEEBrBEEICtBVkLismPslaUWHLEgolFFEEIqJsm6n5DAmOoag2NBU2cqNelbgRakWFCQ5FUlcKsVjitIIc9x55xdHA+44bjFIYnzpVw+hMPwcdVhoj+QQEYR7FhZx//BTCWQYRaNCXWmdII4GbS8HIZ8Yp56GKG9Loh+JtWwgz3wikW4BT6kM0PQKdyYC9LVmdgVWwWWAMThPCrJfhnDhJLCOs4sLF7xRiDqdGz8p3vPSLVStU3Ydg0QIUI55n5HAHHteLnlQRnmflshpyzU33Fcnn7ofDTI5CrjeldTbvmrjQBaPI/fzTbr7zvAnIzxFLEPAUILaQZIqg0MXZ2FmPzFZZ8ivK33ACvNw92XeRXbUFh/Q5wKgd2PIiNSEl0cxILsMBai8bMJGae3QcFiRkmINZAjIFYi9FzZ0vfe/TR35ienn40DZ5oVoO50p2r/M99/sBVRc1fyXbtARwZYayo3mIl3Adr8jA2Up1BCEsa4YqNUh9eR/VsD00ffJQ8qhIxoLRCz5ZdyK69GazTiNCIjO2WCo7NALEC4/uYeO4R+NNn4LguEpYp1sTCLmj6FjZV/O/pFRv/z41veceZaz02V9KuuQoFAMtyN3ybgrFAaABokdXbxWy9DVi2ll3W3Dh7mNJeAFgGxCK3chNya28BlAsJmgiqVYR+AzYMQaygtAtSDGtChM065k8eQmP8OBzFIM8DENkBzBoWQGAI6bWb4Q2seK9yU2smz537pcGVKw9f67G5XLv2AC5friQ8ejuFohBCZGidNdvvgl22limdYwui2uQo1U/8EAQLEQs3V0B+zU2wfoDy2BGUzh6BX5mHNSEoZpoUx6rFhoBYkAkgfgDjKOhMvsMOAYyxcJZvhdO3AkLsWhPemVLqQRH5IBE1rvUQXapdcwBL6vF81i9shpOxdscbrVm7TSGVUeRlyJKioDpP9fPHgKAWGdzM8HqGUZuZwPyJv4NtRp870mEGJOtgbCbACkwQRhrVWMAaQDmIAhWCcsOAqyFmZg4j3z+IXP8gBc3m28rl8u0AHr7WY3Spdk0BFBGn+e2v7ILfGAxvuMXY3iEX2iNol0hpQhggbFRhSpPJEQAIlbETkPHTERACkBWIWFgbrXdhELYFTAB0rYuAiAFBgwAEocXh54/Af+IpMDPShV7csOMurLp5ZyHd378BrwG4aKOJg/uyZ7/2mQ8K86/q/MBwLpP1HJ0iaA2wIhsGZAI/kjrrR75N1pCYrMAaWCuo1nycODOJyal5lKs+XK3heimsHO5Bf28BygZw4mQiLQBIWk5qsYJSuQK/WoWKPTrwGxh97nEUe3spPzhcFBEiouuSgQLXAEARoZPf+PyW0nN//x8lqL0VJKpZGiOVGxCV7YNiJdYaMqGPsF5DOHcO8KPYp8TM0VqgVPVRV3l859HncOjwSRCAFcuGMTDUh3ve//PIFQpgsajPTmH80I+Q9meQcwQAQ4yNgnUCzM7MR+YGEZTWMGEIv1rD6DOPNdGsvbj53buvW/CAVxlAgdChvQ8uc4P6n8CGt4kVBgMgQVidjdxaImRNiMbkSTTOPgtTm4OYsBVbtRYwBpieq8NdNoyJuSqstchnc/j5X/0VkBX0L1uGZq2ObP9y9K/eACedxejDXwO5iEmOAMQQhGg0GrGqJYxNVTA+PYeefBaOdpWET15rfC7bXlUADx3c67hP1f4fmHCnWGGBAJbiCHi0TlljqDlzBrXj34cEPsTaOFEhdv/HDudlAznUK2exfW0fTL2Cas3HN7/85+AghOd6KBbyeM8nfi0iNY0SMi4iu48QrZ1xdkTghxAR/Oj4KM5Ol7B25RqsuflWpFIIxZSva+kDXkUARYQO/c9/ux1if8aISHlu3tarVeoZ7CcvlQIpN+Ijfg21k09CAh8ARYZ5zPeJFaxE8QhXKzjZNN5wy3psXT2Ic+fncOL0OOZKPtKeg51vej8IgkZpFvXTh+AqaRMb2w4fERFCIxifLWHj1u3YduM2OFrB68kGbtVfkryVV7K9agDu379frTT+T0MoX6tWaXpskppNn9K5LLx0GuzlCCDUzx+Dqc0iTkdCJCqRQ1+S6JKJzARrozWtr6eAnkIOm9Yuw8xcFexmsWwgg/njT6M6fgphaRrKUJSgGXtfKPaMKa3AADylMHX6FJ6emsJNu26D6nHnqF4vX+8kRr0aFxGAmu97c1Y1Jz8p1mwozc5TebbM1lgU+3uQyhWQW7MDKtuD+rmDsLV5RJ6S2KZDlLpgrYVYC2Ns9Dp2kwWBgTUCZoVs2kNaA9XzZ1AZPYGwNANXUxSjFYkyxZSCyuQgAtSqNZTmS8i6DsSEKHiEDBpQtbmU9YP1L/79Nw5s/Mn7Zvbv339dgviqpNYTgGUFVgCtEhHy6z5FKpHgpVNQqTx0ti/yWSbgWWn7NePX1liYWPpMaBH6IcIghLWC0Bj4fhCBC4okNDRIpzW8tAPHVVAcO7BDHzAhWCkUiwUAwFBvFttuGMTaFb3IKJF6reqVG413hDb403vDsQ24DvzG1wxAACKhL5bYEyEyYUgCIFfMQ7sunMIysJOCtSFgwlZEXCSWvvgk1ghMaBAGJgKKNESlAScL6BTCUNCoNeHXmzChgesxPE8j0gECUgQiwBoL22yCFCOXz0I7TjQYzGAioThUH4YB1Rr+rZUg+Ff7Rj7oyXUI4qu1BtIsAAiFzEAml5FqqUK5njyYNVL9NwDsgElAjgv41Ygxttxh0XonIoDScAt9yAytg1PohxAjDAL4jRrCWgWN+WmUzryIsFZCLptFEleM0gMZlgSwFqZeBWdycFIu+gZ6MTE2AREBE0EgZEFgiBhjOAjDfwqk/t/9Ix88uW//yfDe/fsNrpPw0quzBoqQf+yQajTmfxoSrFMOi4hQsb+X3OIQCjfcDnIzINYIqjMwlZnowGSdA8FagUrlUFj3euRvuAmZwRVwMnkoLw12XSjXg3LTcPI9cIr9qFercNGE56qOhKU439MKSAxUKgOlXWhmTJyfitdIQvQPoCQTm8jNpHM/DOs47t40lNq97S77Z48//oqmSlxXAI6MjNDcRE1J8/wG69fvZiKkMmkorSmz6iakhzbG6X0AkUY4Px7lsxCB4rCsk+9HYeMuZJfdAC9bADtuO5eTFUg5IMcBs4JyXKQLPfAbPhxpgCMrsiUzBIK1NjIrUmm4rotapYZqtRbBFduazATWGm6uIIPbbzf9m7efDUr+rE4L79iWtw89fuyag/jqALh9u2quXu2Sl3qjPz96l1hfEYN0ukiF9W+EThdBrKKUZu1AiCIpFAsQoNNF5DfsQrp3OZTrxV6UyLiIVCtAzGClQNqBdlwo7UKUi3qlCmWb4NgUiRaxOPgbBmDtgl0P6bSHqYkZWGNAABRrKa5cT2vuvJdW7XyTyq5Yu11l8z+XHlymBXPPEHL++x5YEe7de+iaqtJXBcAVP/mT+uZB7YXp4gMGzrBUJjJETKnVr0dm+RYopVvqiiDQ6SI4nYeYAMwKmbW3wusdBmsnckIDre1dEkf+IgcZgVmBlAY7LpTjwbJGrVyBY5tgktiRE8NoJGKjngfHdUDMmJudByuNFTffTuvvfjsyfQNQXgqsHWLtOOyldjipnoni7OgLwFDwJ1/dH15LAF9xFioi1NvbS75T6COd3ub0rw2ameVNLi6X9PBWsHJBlMwjArEGKRde7yrk1u9CduOd8HqXg5UTSx6BlAIzg4hBTLCxnQi0wWXtwM3lkVu2GunlG1GnbJRm2kqXB0ACG/gozc2iVJpHvpCB1hrDN+7A6h1vgHJcsONBOR5Yq8h+dNyUKvR9OCwMFcPzdS9Ou7lm7dVgobR9+3ZYqr+OQEUmcrMrtvqpTNFxsr3EHEseRbYbmEFQABEUMRw320p/FxBYRV221kJIEJoQvh9GPlNEnhXiiIWQ0nCzOeSWr8Fcs4bmxFGkbD1JLAVACECoVBstf2vv6g1YveMu6HQW2ktFqplV7EwQWGOJlV6dXrn+pjW12vSevbv5fuxdsr0O1xWAIkKf//zn1e6d69ON7LKfEoijWLvZ4rDnZAusHBeEFuWL4nRATCDibczxVi8hQMVSSBBYiWzCeqWKY0/9CC8eOojQWty483as374d2nUiEqQc6HQOhdUbUQ6bMJOHwbHj3IBQDiTKZATB6hzW7rgbXr4IlUqDdUyKlIoz2wIQkYhopbzU0Jhv3Nz4sEZ7k9Sr3l5pFUo7d+5EWQ+uEqI7CVaTYsVuSmk3BW7T9PhXtDpxvL5BqUhtEoE5GkzW0Z6GaHOC4Id/9y18879/BSeOHcWWHbdBaQcnX3gBzVpUxUoAkNZwMnnkbtgGWrYZwg4sMSqhwAhBhBDCxcC2O5AbGoZOZaC1A8UaSukIRK2glANWKt45yGEmM4C02uqMvMIFFi7VXjEJHBkZ4b1799KOHTtYB/V7mGhYrGhiR2vHI2YVSV+8kYQWlLwhVmjtWlDR+hNJlILYENYazJw/j7mZaazbsAkz83PYsuNWZLJ5BM0Gmn69bccxwI4HN98DXnsLgv6VCObGwbMzcAVgL4P8ys3ILFsR2ZPKAbMGJ2utUiBrAQ1IYCFCDZbwfE/amszAKvr0Rz+KkZGRf/gAtlxNIth7//20fvly9srlfqSd+8CcI2il3JRyXA+aNSgqnAISQCj2liQbTJKtehTvKCKK1zZupUQ06nXc8RNvw6nnD+Lct/8O506ewKbtt8DxPLDWEdASObqhFJgIOl+ESqfh9i5DZo2Jz6vBXgrK8aCUhtIaRAqsGMTJxNFgQGwYComMKsE5k81COQ7t3bv3mhGZpZXAyJMhIw8+yG/56Edpol7nIVe9BUQ3A6ydVE45jktJzmYERnJsLI0xzZfYREh2yCbrpCQJuyAMLF+OMLRYXq9jePkKPPY3D+GGzTfCcR0wMywUWBgQRH5WYijtQJQGu1GkA2IjG1RHxzArMOsIOKb4fdRXa0OIiHXSqbEQTrky06T6qgqtXz/LuEbr4JLp7iRuJiK0bds2AoCtfX09IPoZYu5hpUgpxUo54JiwRIBxS7oiKhgnxBODmBPXVntLWEJ4mJEtFJHN59G3ciVuueNO1GZn8Njf/Q3CIOwiRaw0WEVraJT0Gxn72nGh4p8EtOg7HIPH8V7QuFCFiCjtmFxP/42ZzZt3ecWiBXqvBW5LC2AMHoAocAtA5fN50hnvToLcBZBiZiZW0feS3a/olEC09qJHZVhiczvezxf9ojg7jePB1dCOi1Quh7U33Yxd99yLZx99GN/52l+gUasD4Jb0MKsYSI1ERxMrsHLi3wzF0d+JGIzomFafABARpbI5h1gtZ+X9X/ldt24Ig/Oyc+cD18yldtWeGBGhB4loPyAjIyO8rLxMF9cVbQ+VC6l0/tesyE6ttVbaYaUdYqUi9QmOLIRkh2xiYCeSQ21yQ7HEtdGmOEgRHSdWQEohW+hBb28vjj33LM4cfxF9Q4NIZ3Nd52ivodwiUUwKrHUshRzbfhxLHrXsxvZnUETcJ6L6OD/wN/39/Uu6bfqltKtdAykWvdbOyTPeGbvzCCh7xx1vsdbeA2KHmCMB5EStRYdY25IFtCQzBig6OUfSyAqt7bQxU2LFkS1nAeU40GKRLuSxZtt29C1fjtNHjuCRh76B/uEVWLt5C3oHh5BKp9tslggWUTKwCXxIU5DKZOAoHUstdXQldgwwAwKOpJe1Vs67e3I9nzpz8MynV29fPXMtALxa9sQjGMGn5dPy4IMP0raD22jwo4O0eWBguS/NLxhj36K1o9O5PLmux452I4bHSUWIeGBioNBhF9ICSWz1NA4JtbKwjYUNDYIgQBj4sGEIYy2sCRE0fcxNTWLi3Dk06jUoreG6HrxMBql0Gtrz4HkessUeFHr7oHWkPkkl3qEkpJQw4IRZRRPQhAa+36yKmD+cmpv591u3bn3Vk6CuRgKjIR0BvvGNb6R37eozlW0IV9XrKpTmL4VBuEus1eylwMzExLF3pT1nEkKCWDKFEtaJLpXaWf1jYQ+YI8ml5PxaRwu7uHBTaWSLRazcsDFmohbWGhAxtBOZCxzbmwlY1NGHqE5MV5e71HikUZAVwcf7i/3N8fHx3x8eHl7yQgavCIAjAI3E5xgcHNT1es5Pp0FOLrfN98OfD0I/S0qRjmJ0xCpmmy0CEa1BUeWI5G+dc6Nr1NoIxqZEp90vMcFhpUEsMeYdBQvi322JTrw98bkTppuo8uT7aHOrjo50dIuhWEFE8gL5pLZspqenP9vf339FRfWuFYCt0d2zZw8Vi0UnfzrfuAOn5dzNa3saDfvrzVp9bTNoqN6eQdHa4WjhbxvgXa8XSCVwwduLdiPqSJwWH18D6KiudMGoU1zysR2KotYXOulwAhy1NsjQwvkEgATQKsqnCYKgIIRfl2a4ZXR09LdWrFixZNWYLtVethmxbfduAuDm83l7EAfNQ7mcrlbsR/xG451zpVlXQHAzaWJW1Ar9tIBDh51GCwSuY6Q6KPwFIHPbf8rMYM1gFQd1YxdY9D5yhUHFXp/EdEnUJbftxU493dWdmEDJAjUukeMWSms4jgMIcgL6gAv3/xs7dWq7iFzRVHy1AaTdu3cT7trtFosNPnv2rD84OEgb+nveFfrNX5mcGMuVyyX09A6I43iUOIM7Z3oLSOYLgEtUWXvgusegu/5ch5kR+0ujH449PYkkdqxlnIDXnhPdsHWbL93qtd2d1jGxe09pB67rgmCVRfhW18t9fWps6gNy5kz6lQTwJc+Q3bt3q1/dvdttDg4qAI17ABzNujf5gf/lqanzm48cfV7tvP2NdvmqtXAcj13XhU6oecvTodrgJSDFeqptvNOiAEbZanH8EBJt2ERUE8gmCMeZbC1lKJ2HL8KGOr5CHRLfpV5b62o3o5J4coiJ3HJh4KNerwNM4nmpuTBofrEy3/jsDVtvOE1ES27wvyQJFIA++q53OcXBQXXkyJEmABxKq81BGHxubm5m09PPPqX6B5fZwWUroZXDWuuOtYlic4FbAdfu6DgtUFsLiUy7da1pMWOlyLqO3XRoGfotPNEpvR1iFFuw1MF82+67topvseP4aGmB3hFNAUFpB6lUCjYMqVqa7wXUv8r35L4xcWb8l1984oniUqvVKwZQRGj/F7/oDd1wg8bkpD82NiarHGeLCcPfn5me2PHMM0/qQqEoN998m6TSGXZcF1o7bWoeu6uYqRu4hai0Bo0Wwa/9txbFb4Wk4n6250PbHYf2KbskqEMDJKBRp1Zo4Ucdxyffb58m2sIRM2vFcBwX6XQWYgVz05PKBP52x3P+Q2HFqq9Onh7ffeqZU70isiRuzCueDXv27HG3Dw66GSD84eRksLk/PUza+6Pp6Yl3Pf/CIW0guPvNbw1XrdnIruOyVgqcOKSZo5CNUh21y9DSnC1Wl7xoObnRITaJ1EirLEjynpnjilxx2oMgSsfv+E5ymeijWHa6vC3o7EiyIrcBi7FvCXF8nfahSXGi6NrWGjTrdcxMT6E8P4/+wSFkiwUBcRnGfN8E9svloPrXTz755PT999//siMZVwTgvn37dJ/ve+MA3v72tzd++M1vDnLK/MH05OTPHn3xmNP0m9h5+xvCrdt3kOumlOc6bUcwYs9+zAzb7rIYwNbLLtG5iAQirnYnsRTadoZZ/HGSwS1dmd1t0LrvvgPARJV2I9hhU3ZMoNY8ko7jbHuSxH00JkSjVsPo2dOYPD+OoeEV6B0YRLSdTjVJ7DFr7TfYBP+zXi6/uGpiooR77jEdk+uyKYuXBXDPnj1qFVa52S1lDh476fONq3ua1cbnxsdH33Py9EllrcWWG7eFO3bejUw2rx3HgUqi6Uk4iNuUHZ2mxMLB7Mwa44t0rbWYLWSn0WDaZN2zFlY6ddzCk3RKW7ckJkSqzYgTe7BdybcNZrx7I9nGmKRHxlnlJvRRLpdx8sUjOHf6NIrFHvT2D6K3vx/pTBbKcYRBJQs5BsFThPDA+dFTj5899qOj7/qFT1zWIXBJQ35kZIQHBwedIprq4OF5f83qgWWV85N/cG7s7D+Znp6GcvTM2nUbajfdcsdAJpvzWuB1UvBWTC9ZsS4cw04ic4VW/ALrOmaCHWAkZSijXbkL3HdygcjFf0u8ROj6W+dm0Bbr7HTRmJjxCrUFlaJMA1YOMpks1qxdj/LcPMZHz2FifAyO5yKdySCTyZHneQVifr014abA92+sVmYrdGzm+SsZhouOlojQsYcecrNDQ+p7x4+HXrO0pl6b+y8TkxOvbwbBiUw6+/CGDVsqW7bd8v5CsW+DE697iaM6CYomALbSI7qYZ/JfO8oOoF1w9WK9W7TqawRIi3HGW9LiGDG6tmhSW4qoY52LLk0LVPuCF8n6K+1OWGu7TZFkmRABxf7XZqOBmZlJPP/0U6XRM6enQhMSWVtnpefZ4ZNk7DEmfrruV55wBteMfuQjH7mix9ItOkQjIyP89m3bPKwC/vZvDzW3YZuu9h9bf2b0zLLSrD/d01+YvfctP7F91ep1v5PLF16nHVfr2MaLNE4c8+N2xSQkOS/JzcXSIgl4CYDRptsrl8QFllWn1pQOwiMLV9suSWwPRedVW1vyF3YlVtOJCjVhxEEoyRoXtCMaSaEhE6Jeq6FSKZXOnTj+rw8+/fRD5cZkTSpUL5RK/tiKFWZkZOQl24kXjNLIyAh/+O1v90pnz5ptu3cH8fbils756h//bm54w86bVixf/rupdPYurR2ltSbVSkWI7L5u53Xb+I7WtwVTekEc8KIE5mKtRVTQkoT2285NLdH/CW4tUDsO6Lpspym60NvWsR4aYxD6fmw2UfteE3dfUvc78NGo11Apl06MnTn94eCxxx6+d2TkqlLzL4jI79+/H8XVq839H/tY+OCDD7ZuZffu3eoLXxjxVq+59fVDQ8O/l0ql79DaUcyKiJmilAUVbzJpkxVWsZSJtEyILnusa92jlw7ewlGnhW873G1E8TqJlgboOn6h5uaLXKNzOhBAxDAmSnWM9nm0swU6yRC319herd3b5z338fU33jh2Ndu3r2SoCAA98fWvp4Y3rn1dKlP4fVJqJzPrKMquIn9nC7wkVYFjdRLta0+iEF0ZZq0rXJ7EWGMjqb5U65Ak6ViTFosntr0ycgFJXbQHnYuhLBT3KMW/Uasim81F+xlNvMZyh9FvLawxaDbraDTqUpqd2Vebnf3QrW9966mXC+ClRoQA0J49u/mJr389Nbxty71etvinynFud7TjuNplR7vkOFGUnVWUvcwcVYc3YQDTqMGvVWGNaQ/wRQfr4nNJRNCoNyCXm6fU/XJRxnvBF+jys7jrCwvYUDwZFStAgEa9Cq1VpIUgceG9+ByxPew4HjwvRblC8e5sT8//sW/fvtTLBXAxM4KAaFMmAH7bpn+SM/29HyNWv+I4bp9izZFLLM5Y7jAVQNEDMkyzCeP7sGJhxMJTGox47etaS7op/kVBFKBULkEphpe+zL12WAidQdnOz4CFQtn97gK8F6WkbRYrcUzSdT2Mj56B0i5S6QxCCeLUD4BUYlYJtFYgeIBYV6z54Apjnn3ic5/74m1XyDwvCmDiaL3//vt5165dete2beutps+4TuodjuMoTthlkjeiEm+LRLko9TpCvwljwpj5xfZth1HeokQxtW+N6yXWvjAMETSbKJdKcD2v63wXBRAXas5FNGnH32KJudR5k5edWhRt9qldF6lMFmdOvoj1W7ZCOxphGMZ1bdpEO1pmFERSgCBnrfk3uO225wF87xJdXLR1kZhDhw6p3btBb33rJ7LrBvo+4LjeF7xUdqfjuqy0BmsNav2o1i5X22ggqFcRNJswxrTAS+7b9TJdUtqeyB3mwyUAbDaaKM3PAyJwXC8Knl5K7y1up18IxIL3nW8vdRwkYtcXMFYQtNI4d+o4IEChtxesuP1MvA7exorBxHHpE+qxYm68/773/MUf/7f/9pKeLa+BWPL27uWzd93lVsbp3VkPn+J88SZWipMQkCQMUgQ2CGADHyYIYMKwDZpE5TxaZUEg0EoLqST7MLnpTj2HFju8WKtVqwjCAI7rolqpQGsNx3MufWedIHZ61Bao0sUPuoQaRfcq0GK0Mb11XRfFnn6cOXUcmVwOvUND0E5UBVGsdPWLHQWIhuu5CG1m1/CqFf/+iSee+Nhtt912xapUiwhPHT6cLbz57vuGU96vkvZeT9rRrQcdxixSmkGkJk0Ia6JK7zb2SNgOoza6sWioxNiq9hwmUKYjA6U9DIk5cQnwjDEol0qo12rwXBehcVCtVlBweqLQ1KUAvAhgnTb8BfZ8vKpdeD5qr9vo2IjT4dAGIi9M38CgjJ49RedOn0Qqk0Emn4eChsQ1TpMZRQDYceBaiyAI2Hrpf9YXmG8B+B+4QlWqQSQDImE4O3sKjveX1oR+UKlvBWwOVrSIMBLHsACC2G3U4Y1vxb6jBc4KMGWNfViTPO54qV8HUYYW1VVdXHHR1mw0UK/X4Ad+tJ5YC9/30ajVkMlmr0yVom12LuYLX+ge7TYVkhbrvm60u126AMCMdDZHuXxeJsZHiUBYv/VGZPL5aPu4FUAMOk0R5blIWQMrNg3m337yu9/df+ub3zyJK2gLtQRhzx4+f+ut/Y5S66FoGxHfKNauBaMfQjnA9gAoEMiVyIvcFGBGrD1FpJ4ByRN+YA94E2bWW5P+kJsv/B4p7VAc30s8/clP4nRebLqJCKYmJjB67hyajQZ6enuQzxeh45IkhZ5eeCn30nfYaRsCXQLTiYUsduBCBpS8WBAHbIe0Yo0UGoyPnrNPPv49Tnkp9A8OYf2WregZGGz7hWMNFjnGLcQIGtUK/MA31XL5yyfOn//Qvffee1kvTRcLJUAQBRcn4p8fxE5fPnbsmM7n8zrVbLohcyYwxtVK+WZuLnQymcZYo1E/uG2b2Q1YIpIzBw/2Zdzi64kjiwhdaqdDfV6ihWGISqWKMAi6UyII0fOUymVoVYRyLhFU6VClCWgJE75AlS48kDpAXChqrc+pG1xEarSnt5dcx5NypUwgQRgEWLthE4ZWrgQrBWgFNtHyRGBAWXjpNKy1KpPL7d5I9Fci8lUiumSw93J5oRIHFk380wRQBTB7yYNEeG701FqlnR0Uh9a73FaL0b8LTgJUK1XUa9VWCSzT4RAQAIHvo1KpolAsXN60WABi559kkdeLfqFrYNoTocMyamkV10tR/9CwmX7hOSUCGCPwfR/z83NYs2490rkckGTOWQsIQzkOUpksUKumkM///qmjR58XkcOXSoZ6RfZ279+/30276TtYqXXdGdedA3NpAIMwxNzsLALfb41kFLaxLSQEQL1WRaNWXzzb7CJAXta06Hp3cZJ1UZuSIo/L8PKVZEXEbzZRrdYwNzeL08eO4bknD2BybCxipUyAVpFZphjac5HOZuFqvbaQzX154syZdZfKn1nyPfIiQtPTZ/uV9t4GVtmOaAba9h5d7hwol0qo1SpRSazYf2qtbWVUSEucBKXSHJRWcFPepcHr7kk79BN/sHjmxSJk5gpcyESEnr4+cl1PqpUyJSGtMDTwwwC1ShnLVq7GyjVrkSsU4tipAligyINrLQW+/zpi/vyZ5449ICInFpPEJZfAvXv3cl5n7iStdlGS49da+jqc1pdovh+gXJqHCaI1PAkS26R+aMxMRCwAhjEW83Oz0c7cl9AWavJ2lOKCb10cs0UtjmiSul6K+geWWd/34fs+/KYP32+iXq9jdn4eLx45jAPffwTPP/0UpsbGEfjN1sNN3EwaXiZNjuvemx8ofGn6xInbjh49esEMXXIAb9+0KU/a+WkwL2tTTbTtPb6M9FmL0vwcatUqjLVxDc9opKLdRUlwNhlpC2KC7/soz8/HZZgvhdiVgXjpTsol9Gf7t9Iaq9esMbV6E34QIAxDhIGB3wzQqDdQrdcxMzuLY0eP4MAPHsOPHvsBzhw/jmqpDGMslOvCSaXIS3l3O7n8n/dmMv/yzMGDfSKiRkZGWABa0lppMjLC2fe86yZm/UlSqh8JAQXa26ovKX2CarmKmakpNBp1JCqXEO3CtVaQTqehdLIBkzoIbQSiYobrehcHoYMIXwDaAmHripRcJMfiAqml5E6iNxqQhx99pNRs+g4ROLGbrbEw1sAag9DYSOuUS5gcP4+JsTFUKxWYMIzj3QyldK9ifqeTytw5Pz3FG9dsHf+LW29uLNkaKCI0M3Msl7f8z+DwKihFLe5PV7b21Wt1TE1OoF6vRZgTwYqNJI4JEprYdadiL26SYyOxcDPKpRKIGNlc9rLXW+j4BjrMig7m2nrcAeQCQ771nQTE+E9MBEsCL53VG9et/+tvfutbY4MD/XcN9PRsTmfSvZ7jstYOlFJQ3N7TwaxQqdYwNT0DrY8glUrBdT1RWhsAvmIayGayG4w46c1jm2UpSQwV3OHXk1LvgdKRo5I6wesesIUt8H3MTE2iVqu2iAti/KXDcDbGwJrIdkpyf5MAMXFEdCrleTAT0tnsFfS6u08LCU13OuhFXd0XOLYTraAdTZvWb+wZm/zyvztx7Mzn1qxbsXpoaOj2Qia71Us5y1zXHdJKDzJRXintaVaktAYAw8R1MNeJ6CRgDxhrH/N9/wdqNDv28f/0cZ/eSksDoIjQ3NxcIe86v0hKrYrqFndMy8sY7YEfYHJiAuVSGcaErXR8G9fNTiSNiBGayA1lrQGDIHHFpxbjJ4IxFuX5eRAzUqnUlUkiLgRyoTTKJda9VpbhAs8OEaHYU1y/7YZN+rtPfO3E//irx4/u3Lnzu/fddx/19fXR6dOndY4oz8z92nX7WCkjgWkyuTVrTN3J5SrMXC2VSkGc9CQA5BOf/QSApTMjVMZ17yFHvRsqLifYGQa4yAAKgGaziemJCZRK8whMgM4dQEmEgwQt8mNM2DqfjR9THpXlas96IkFoDebnZkE9vfDSV7jD6xLS2ML4Qu25SFip00wRZHO55W+849b0f/nTP64BkAMHDgQHDhygkZER+sxnPuMDqAEY7zqsY95cqstXzUKjtW9muVLqfwfxQPf9LGALHURARFCv1jA1Po5yaR5hGCIpTB5FOCKmR3FRO4CEiIIwDKcBCKsoHmmNgRXTZcgnmzhNaDA3O4tGrYbL52N0A3DBR/G8Wrih+HK+dAIhk82lV61YsR7dSZDSKVELRiiZN5ft9NWbEWNj6Z5c5hfBdFcc32nTs4sEG6yNDPXpqfOoVCux2mwhGyfmIp6GJCIwInaCCH8Eaz9ujDmWLK3RE1yiJ3vaJJBMreLlMMagNDeHZuMlPIhzkX53mhddm0M7v7dguKOtIQwvlVLZfH7dVY/1Iu2qzAjZs0c1b7rpzcrRv0PMPWiVB1zsy9EvYwzmpqdRmptFrVaN0i/aaERpGK11RACiQKx9WhR/cmJq6gt13z/U29f3rKPUu4k5I7G0tpfZ7lo0BIEYg6bfhOu4kYa/vCOlA7UFbxf4Ilq0ZlHThOInhlqqVSpHhlat+uZSPwHmZa+BIkLNUmm99tzfBPEgRPiSAyMCv+ljfm4WlWoZzUYjck4nMznO3kr2/QGwpNS8GNljQ/rDZ5576liSbi4i+04dP/6LrPjPWHExeYy4BSLTU9rqK0HWmBBzM9Po7euHk3oJSWCXWRcvRWwgaO3M0kqvQueDoJaovWwVOj8/38Pp1G8S0RsQBYYvEtQDbGhRq5QxPT2BUnkezUY9SjWkuLCddBcQIKBJpJ4Ua3+dmvVPPfPCM8ceeOCBVliFiOza9esfQmh+hUCTzBzvSIoM5KT8cmJMS5wJHgYhZmdn4DeaL+1mL7MuLprWmjiL4qw9VrRm2+Dgy04fXDIAI2f1dCGbzf6WIt4NUHdEtSP13IYhaqV5TJ4fxcTEeZRL82g267DWQJham0Raj7YV8Ql4HuD/W3z87PmpqT/Z8aY3TX3kIx8JFjpyiciu3rDhT3xr3w8r56JE4ujJZBI/JCvhAdRB6YJmEzNTkxGxeakgLqJSLyh8sNBfQVEVDddLLwM3i0sN4MtRoalsNvsAET0A4AJ+LtYibDbRqNdQb9TRaNTR9P0ol6YlaSxiheKNJyIC31o5CcifK+av3HLbrS8CMJd77Ftc3nLfcwcOfCiVyfxH7TpbrDEskOiZuDZOV2w9tTMa4TAMMDs9jaKxSOeyHWVGXl7rijEucLklTgblOG5K5XoAnHvVAWxtzB8bS9sgeEAr9RuwNicxYMYYmMBHs9FAs9lA0/cRhpHz1hjTofQj21CMNSKoCHDaWnmSrH0Y1n5XXPfU615CRlYC4p49e769YmDFeweGen7P89x3W2uVRdgqwdXygnXEi4wJMT83A7/ZQL6nB7H348rQag3MAhBxoUEPRBl3qVTK6evt7VtK8K4YQERsVXzXXduYn79XjJk1Yo01YSoMjWutUUEYUmgCBKGBtdZGoR4ARIZAgYg0IJiAkSMCeoyIfijMx2XMTNz607c3rqYER7zH/PBjjz32QNGmfttzvZ+3BhmxlpglrgbVMeiSgGhQrVYQhCEKPT1wU6krJqhdqHW8Bbpdf4kHyUunHLenZ3CpAbyi/naUxuCTJ0/mfX8+mwlNusmZorbBUGCp3yDIh0ZSzAoWxrfWhgQVWIsSEM6yqElOmYmJiercd77zHf/l7IW7kvbEE084Web3OKnUb4OwiQhOUoW344bapZtje1FrF4VC8eWr1MUSoBKRtBZBo25PPvP0L9/45jd/AVdgoF9puzrlH5+jwwuy2Pmitf1Vfozpi88/v1lgP0ZC7wZhLTHrVlmtJL3QJmsjRVnSSiFfjMo4dwF+JW2xQH0HoTNBgHOHX/jUuq997XdoCSfvUgB43bajR4961vdvVyT/kojeTsRDxO1K60kxBMRPjImCx4x0Nouevr7WjuOraolTwhjMnjv7h4Pr1//aUlZselUfQ/5qt02bNjUBfO+Jb33r2Z4Vy94AkV8Sxfcyc1+UyxcZ+mIjb401URjLzM8j8H0UenqQymSujqW2DHqGl8sNff7zn1dYQmP+H7UELmwn9u1LhQMDdxLTB4jonazUShFR8fN2244gAjFHRWFTqTTy+QK8qzU3BAgazUcPHn7+bbfddttLNEIv3n6sAEzavn379Oq+vq2i+YMs+BkAayGWbRiK5bjCAhERxZWGtUImm0UmGz8yXeuXC+YppdTtRHRFafNX0n4sAUzaiAh/+OnvL28a771Q/D4huYVEstZC2WiPC8fZGsSOhoqfNZHNZpDO5uCkvJdKduaNMW/wPO/QUt3DjzWAne3gwYMuyuWNjsN3MPE91srtRDRsjc1StLmOhcCsHSjtRLuKUilkslmkokfwXD7yD4QA3qe1/vpS9fs1ABdpIkIvfPvbfZxKbSPGHZbVbQTZAivLiFBkJo+Vw6QdUo4TPfbA9eClU/AyGSjPjYupX3hqa+0nXdf9D0vV19cAvEyLnRj6kUceSS3TQTFs8hqxwRom3iZMNzLzBlZ6kB2voBydUo6rteOSk/LIy+bgpqIHcVE71v1nDz/88AfvvYKdR1fSXgPwKlpUCBDuULGYb6bTA47COiu8iR21WbFew1qvIKX7tdY5N51yUpksa9edViZ8pzcwcEW10C7XXgNwaVvkldq/X50ENHp6Us1qNQMgT46TMlapdCbtmGZ1dOOuXWeW5ILX+o5/TFprnBMfLC2RP/T/B96QkmdPWpSQAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIzLTA3LTA3VDA5OjE5OjA4KzAwOjAwC8IICQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMy0wNy0wN1QwOToxOTowOCswMDowMHqfsLUAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjMtMDctMDdUMDk6MTk6MDgrMDA6MDAtipFqAAAAHnRFWHRpY2M6Y29weXJpZ2h0AEdvb2dsZSBJbmMuIDIwMTasCzM4AAAAFHRFWHRpY2M6ZGVzY3JpcHRpb24Ac1JHQrqQcwcAAAAASUVORK5CYII=',\n protocol: 'trader_joe_v2_1',\n slippage: true,\n blockchains: ['avalanche'],\n avalanche: {\n router: {\n address: '0xb4315e873dBcf96Ffd0acd8EA43f689D8c20fB30',\n api: TraderJoeV2_1.ROUTER\n },\n factory: {\n address: '0x8e42f2F4101563bF679975178e880FD87d3eFd4e',\n api: TraderJoeV2_1.FACTORY\n },\n pair: {\n api: TraderJoeV2_1.PAIR\n },\n quoter: {\n address: '0x64b57F4249aA99a812212cee7DAEFEDC40B203cD',\n api: TraderJoeV2_1.QUOTER\n }\n }\n};\n\nvar trader_joe_v2_1 = function trader_joe_v2_1(scope) {\n return new Exchange(Object.assign(exchange$b, {\n scope: scope,\n findPath: function findPath(args) {\n return TraderJoeV2_1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$b\n }));\n },\n pathExists: function pathExists(args) {\n return TraderJoeV2_1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$b\n }));\n },\n getAmounts: function getAmounts(args) {\n return TraderJoeV2_1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$b\n }));\n },\n getPrep: function getPrep(args) {\n return TraderJoeV2_1.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$b\n }));\n },\n getTransaction: function getTransaction(args) {\n return TraderJoeV2_1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$b\n }));\n }\n }));\n};\n\nvar exchange$a = {\n name: 'uniswap_v2',\n label: 'Uniswap v2',\n logo: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQxIiBoZWlnaHQ9IjY0MCIgdmlld0JveD0iMCAwIDY0MSA2NDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0yMjQuNTM0IDEyMy4yMjZDMjE4LjY5MiAxMjIuMzIgMjE4LjQ0NSAxMjIuMjEzIDIyMS4xOTUgMTIxLjc5MUMyMjYuNDY0IDEyMC45OCAyMzguOTA1IDEyMi4wODUgMjQ3LjQ3OSAxMjQuMTIzQzI2Ny40OTQgMTI4Ljg4MSAyODUuNzA3IDE0MS4wNjkgMzA1LjE0OCAxNjIuNzE0TDMxMC4zMTMgMTY4LjQ2NUwzMTcuNzAxIDE2Ny4yNzdDMzQ4LjgyOCAxNjIuMjc1IDM4MC40OTMgMTY2LjI1IDQwNi45NzggMTc4LjQ4NUM0MTQuMjY0IDE4MS44NTEgNDI1Ljc1MiAxODguNTUyIDQyNy4xODcgMTkwLjI3NEM0MjcuNjQ1IDE5MC44MjIgNDI4LjQ4NSAxOTQuMzU1IDQyOS4wNTMgMTk4LjEyNEM0MzEuMDIgMjExLjE2NCA0MzAuMDM2IDIyMS4xNiA0MjYuMDQ3IDIyOC42MjVDNDIzLjg3NyAyMzIuNjg4IDQyMy43NTYgMjMzLjk3NSA0MjUuMjE1IDIzNy40NTJDNDI2LjM4IDI0MC4yMjcgNDI5LjYyNyAyNDIuMjggNDMyLjg0MyAyNDIuMjc2QzQzOS40MjUgMjQyLjI2NyA0NDYuNTA5IDIzMS42MjcgNDQ5Ljc5MSAyMTYuODIzTDQ1MS4wOTUgMjEwLjk0M0w0NTMuNjc4IDIxMy44NjhDNDY3Ljg0NiAyMjkuOTIgNDc4Ljk3NCAyNTEuODExIDQ4MC44ODUgMjY3LjM5M0w0ODEuMzgzIDI3MS40NTVMNDc5LjAwMiAyNjcuNzYyQzQ3NC45MDMgMjYxLjQwNyA0NzAuNzg1IDI1Ny4wOCA0NjUuNTEyIDI1My41OTFDNDU2LjAwNiAyNDcuMzAxIDQ0NS45NTUgMjQ1LjE2MSA0MTkuMzM3IDI0My43NThDMzk1LjI5NiAyNDIuNDkxIDM4MS42OSAyNDAuNDM4IDM2OC4xOTggMjM2LjAzOEMzNDUuMjQ0IDIyOC41NTQgMzMzLjY3MiAyMTguNTg3IDMwNi40MDUgMTgyLjgxMkMyOTQuMjk0IDE2Ni45MjMgMjg2LjgwOCAxNTguMTMxIDI3OS4zNjIgMTUxLjA1MUMyNjIuNDQyIDEzNC45NjQgMjQ1LjgxNiAxMjYuNTI3IDIyNC41MzQgMTIzLjIyNloiIGZpbGw9IiNGRjAwN0EiLz4KPHBhdGggZD0iTTQzMi42MSAxNTguNzA0QzQzMy4yMTUgMTQ4LjA1NyA0MzQuNjU5IDE0MS4wMzMgNDM3LjU2MiAxMzQuNjJDNDM4LjcxMSAxMzIuMDgxIDQzOS43ODggMTMwLjAwMyA0MzkuOTU0IDEzMC4wMDNDNDQwLjEyIDEzMC4wMDMgNDM5LjYyMSAxMzEuODc3IDQzOC44NDQgMTM0LjE2N0M0MzYuNzMzIDE0MC4zOTIgNDM2LjM4NyAxNDguOTA1IDQzNy44NCAxNTguODExQzQzOS42ODYgMTcxLjM3OSA0NDAuNzM1IDE3My4xOTIgNDU0LjAxOSAxODYuNzY5QzQ2MC4yNSAxOTMuMTM3IDQ2Ny40OTcgMjAxLjE2OCA0NzAuMTI0IDIwNC42MTZMNDc0LjkwMSAyMTAuODg2TDQ3MC4xMjQgMjA2LjQwNUM0NjQuMjgyIDIwMC45MjYgNDUwLjg0NyAxOTAuMjQgNDQ3Ljg3OSAxODguNzEyQzQ0NS44OSAxODcuNjg4IDQ0NS41OTQgMTg3LjcwNSA0NDQuMzY2IDE4OC45MjdDNDQzLjIzNSAxOTAuMDUzIDQ0Mi45OTcgMTkxLjc0NCA0NDIuODQgMTk5Ljc0MUM0NDIuNTk2IDIxMi4yMDQgNDQwLjg5NyAyMjAuMjA0IDQzNi43OTcgMjI4LjIwM0M0MzQuNTggMjMyLjUyOSA0MzQuMjMgMjMxLjYwNiA0MzYuMjM3IDIyNi43MjNDNDM3LjczNSAyMjMuMDc3IDQzNy44ODcgMjIxLjQ3NCA0MzcuODc2IDIwOS40MDhDNDM3Ljg1MyAxODUuMTY3IDQzNC45NzUgMTc5LjMzOSA0MTguMDk3IDE2OS4zNTVDNDEzLjgyMSAxNjYuODI2IDQwNi43NzYgMTYzLjE3OCA0MDIuNDQyIDE2MS4yNDlDMzk4LjEwNyAxNTkuMzIgMzk0LjY2NCAxNTcuNjM5IDM5NC43ODkgMTU3LjUxNEMzOTUuMjY3IDE1Ny4wMzggNDExLjcyNyAxNjEuODQyIDQxOC4zNTIgMTY0LjM5QzQyOC4yMDYgMTY4LjE4MSA0MjkuODMzIDE2OC42NzIgNDMxLjAzIDE2OC4yMTVDNDMxLjgzMiAxNjcuOTA5IDQzMi4yMiAxNjUuNTcyIDQzMi42MSAxNTguNzA0WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBkPSJNMjM1Ljg4MyAyMDAuMTc1QzIyNC4wMjIgMTgzLjg0NiAyMTYuNjg0IDE1OC44MDkgMjE4LjI3MiAxNDAuMDkzTDIxOC43NjQgMTM0LjMwMUwyMjEuNDYzIDEzNC43OTRDMjI2LjUzNCAxMzUuNzE5IDIzNS4yNzUgMTM4Ljk3MyAyMzkuMzY5IDE0MS40NTlDMjUwLjYwMiAxNDguMjgxIDI1NS40NjUgMTU3LjI2MyAyNjAuNDEzIDE4MC4zMjhDMjYxLjg2MiAxODcuMDgzIDI2My43NjMgMTk0LjcyOCAyNjQuNjM4IDE5Ny4zMTdDMjY2LjA0NyAyMDEuNDgzIDI3MS4zNjkgMjExLjIxNCAyNzUuNjk2IDIxNy41MzRDMjc4LjgxMyAyMjIuMDg1IDI3Ni43NDMgMjI0LjI0MiAyNjkuODUzIDIyMy42MkMyNTkuMzMxIDIyMi42NyAyNDUuMDc4IDIxMi44MzQgMjM1Ljg4MyAyMDAuMTc1WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBkPSJNNDE4LjIyMyAzMjEuNzA3QzM2Mi43OTMgMjk5LjM4OSAzNDMuMjcxIDI4MC4wMTcgMzQzLjI3MSAyNDcuMzMxQzM0My4yNzEgMjQyLjUyMSAzNDMuNDM3IDIzOC41ODUgMzQzLjYzOCAyMzguNTg1QzM0My44NCAyMzguNTg1IDM0NS45ODUgMjQwLjE3MyAzNDguNDA0IDI0Mi4xMTNDMzU5LjY0NCAyNTEuMTI4IDM3Mi4yMzEgMjU0Ljk3OSA0MDcuMDc2IDI2MC4wNjJDNDI3LjU4IDI2My4wNTQgNDM5LjExOSAyNjUuNDcgNDQ5Ljc2MyAyNjlDNDgzLjU5NSAyODAuMjIgNTA0LjUyNyAzMDIuOTkgNTA5LjUxOCAzMzQuMDA0QzUxMC45NjkgMzQzLjAxNiA1MTAuMTE4IDM1OS45MTUgNTA3Ljc2NiAzNjguODIyQzUwNS45MSAzNzUuODU3IDUwMC4yNDUgMzg4LjUzNyA0OTguNzQyIDM4OS4wMjNDNDk4LjMyNSAzODkuMTU4IDQ5Ny45MTcgMzg3LjU2MiA0OTcuODEgMzg1LjM4OUM0OTcuMjQgMzczLjc0NCA0OTEuMzU1IDM2Mi40MDYgNDgxLjQ3MiAzNTMuOTEzQzQ3MC4yMzUgMzQ0LjI1NyA0NTUuMTM3IDMzNi41NjkgNDE4LjIyMyAzMjEuNzA3WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBkPSJNMzc5LjMxIDMzMC45NzhDMzc4LjYxNSAzMjYuODQ2IDM3Ny40MTEgMzIxLjU2OCAzNzYuNjMzIDMxOS4yNUwzNzUuMjE5IDMxNS4wMzZMMzc3Ljg0NiAzMTcuOTg1QzM4MS40ODEgMzIyLjA2NSAzODQuMzU0IDMyNy4yODcgMzg2Ljc4OSAzMzQuMjQxQzM4OC42NDcgMzM5LjU0OSAzODguODU2IDM0MS4xMjcgMzg4Ljg0MiAzNDkuNzUzQzM4OC44MjggMzU4LjIyMSAzODguNTk2IDM1OS45OTYgMzg2Ljg4IDM2NC43NzNDMzg0LjE3NCAzNzIuMzA3IDM4MC44MTYgMzc3LjY0OSAzNzUuMTgxIDM4My4zODNDMzY1LjA1NiAzOTMuNjg4IDM1Mi4wMzggMzk5LjM5MyAzMzMuMjUzIDQwMS43NkMzMjkuOTg3IDQwMi4xNzEgMzIwLjQ3IDQwMi44NjQgMzEyLjEwMyA0MDMuMjk5QzI5MS4wMTYgNDA0LjM5NSAyNzcuMTM4IDQwNi42NjEgMjY0LjY2OCA0MTEuMDRDMjYyLjg3NSA0MTEuNjcgMjYxLjI3NCA0MTIuMDUyIDI2MS4xMTIgNDExLjg5QzI2MC42MDcgNDExLjM4OCAyNjkuMDk4IDQwNi4zMjYgMjc2LjExMSA0MDIuOTQ4QzI4NS45OTkgMzk4LjE4NSAyOTUuODQyIDM5NS41ODYgMzE3Ljg5NyAzOTEuOTEzQzMyOC43OTIgMzkwLjA5OCAzNDAuMDQzIDM4Ny44OTcgMzQyLjkgMzg3LjAyMUMzNjkuODggMzc4Ljc0OSAzODMuNzQ4IDM1Ny40MDIgMzc5LjMxIDMzMC45NzhaIiBmaWxsPSIjRkYwMDdBIi8+CjxwYXRoIGQ9Ik00MDQuNzE5IDM3Ni4xMDVDMzk3LjM1NSAzNjAuMjczIDM5NS42NjQgMzQ0Ljk4OCAzOTkuNjk4IDMzMC43MzJDNDAwLjEzIDMyOS4yMDkgNDAwLjgyNCAzMjcuOTYyIDQwMS4yNDIgMzI3Ljk2MkM0MDEuNjU5IDMyNy45NjIgNDAzLjM5NyAzMjguOTAyIDQwNS4xMDMgMzMwLjA1QzQwOC40OTcgMzMyLjMzNSA0MTUuMzAzIDMzNi4xODIgNDMzLjQzNyAzNDYuMDY5QzQ1Ni4wNjUgMzU4LjQwNiA0NjguOTY2IDM2Ny45NTkgNDc3Ljc0IDM3OC44NzNDNDg1LjQyMyAzODguNDMyIDQ5MC4xNzggMzk5LjMxOCA0OTIuNDY3IDQxMi41OTNDNDkzLjc2MiA0MjAuMTEzIDQ5My4wMDMgNDM4LjIwNiA0OTEuMDc0IDQ0NS43NzhDNDg0Ljk5IDQ2OS42NTMgNDcwLjg1IDQ4OC40MDYgNDUwLjY4MiA0OTkuMzQ5QzQ0Ny43MjcgNTAwLjk1MiA0NDUuMDc1IDUwMi4yNjkgNDQ0Ljc4OCA1MDIuMjc1QzQ0NC41MDEgNTAyLjI4IDQ0NS41NzcgNDk5LjU0MyA0NDcuMTggNDk2LjE5MUM0NTMuOTY1IDQ4Mi4wMDkgNDU0LjczNyA0NjguMjE0IDQ0OS42MDggNDUyLjg1OUM0NDYuNDY3IDQ0My40NTcgNDQwLjA2NCA0MzEuOTg1IDQyNy4xMzUgNDEyLjU5NkM0MTIuMTAzIDM5MC4wNTQgNDA4LjQxNyAzODQuMDU0IDQwNC43MTkgMzc2LjEwNVoiIGZpbGw9IiNGRjAwN0EiLz4KPHBhdGggZD0iTTE5Ni41MTkgNDYxLjUyNUMyMTcuMDg5IDQ0NC4xNTcgMjQyLjY4MiA0MzEuODE5IDI2NS45OTYgNDI4LjAzMkMyNzYuMDQzIDQyNi4zOTkgMjkyLjc4IDQyNy4wNDcgMzAyLjA4NCA0MjkuNDI4QzMxNi45OTggNDMzLjI0NSAzMzAuMzM4IDQ0MS43OTMgMzM3LjI3NiA0NTEuOTc4QzM0NC4wNTcgNDYxLjkzMiAzNDYuOTY2IDQ3MC42MDYgMzQ5Ljk5NSA0ODkuOTA2QzM1MS4xODkgNDk3LjUxOSAzNTIuNDg5IDUwNS4xNjQgMzUyLjg4MiA1MDYuODk1QzM1NS4xNTYgNTE2Ljg5NyAzNTkuNTgzIDUyNC44OTIgMzY1LjA2NyA1MjguOTA3QzM3My43NzkgNTM1LjI4MyAzODguNzggNTM1LjY4IDQwMy41MzYgNTI5LjkyNEM0MDYuMDQxIDUyOC45NDcgNDA4LjIxNSA1MjguMjcxIDQwOC4zNjggNTI4LjQyNEM0MDguOTAzIDUyOC45NTUgNDAxLjQ3MyA1MzMuOTMgMzk2LjIzIDUzNi41NDhDMzg5LjE3NyA1NDAuMDcxIDM4My41NjggNTQxLjQzNCAzNzYuMTE1IDU0MS40MzRDMzYyLjYgNTQxLjQzNCAzNTEuMzc5IDUzNC41NTggMzQyLjAxNiA1MjAuNTM5QzM0MC4xNzQgNTE3Ljc4IDMzNi4wMzIgNTA5LjUxNiAzMzIuODEzIDUwMi4xNzZDMzIyLjkyOCA0NzkuNjI4IDMxOC4wNDYgNDcyLjc1OSAzMDYuNTY4IDQ2NS4yNDJDMjk2LjU3OSA0NTguNzAxIDI4My42OTcgNDU3LjUzIDI3NC4wMDYgNDYyLjI4MkMyNjEuMjc2IDQ2OC41MjMgMjU3LjcyNCA0ODQuNzkxIDI2Ni44NDIgNDk1LjEwMUMyNzAuNDY1IDQ5OS4xOTggMjc3LjIyMyA1MDIuNzMyIDI4Mi43NDkgNTAzLjQxOUMyOTMuMDg2IDUwNC43MDUgMzAxLjk3IDQ5Ni44NDEgMzAxLjk3IDQ4Ni40MDRDMzAxLjk3IDQ3OS42MjcgMjk5LjM2NSA0NzUuNzYgMjkyLjgwOCA0NzIuODAxQzI4My44NTIgNDY4Ljc2IDI3NC4yMjYgNDczLjQ4MyAyNzQuMjcyIDQ4MS44OTdDMjc0LjI5MiA0ODUuNDg0IDI3NS44NTQgNDg3LjczNyAyNzkuNDUgNDg5LjM2NEMyODEuNzU3IDQ5MC40MDggMjgxLjgxMSA0OTAuNDkxIDI3OS45MjkgNDkwLjFDMjcxLjcxMiA0ODguMzk2IDI2OS43ODcgNDc4LjQ5IDI3Ni4zOTQgNDcxLjkxM0MyODQuMzI2IDQ2NC4wMTggMzAwLjcyOSA0NjcuNTAyIDMwNi4zNjIgNDc4LjI3OUMzMDguNzI4IDQ4Mi44MDUgMzA5LjAwMyA0OTEuODIgMzA2Ljk0IDQ5Ny4yNjRDMzAyLjMyMiA1MDkuNDQ4IDI4OC44NTkgNTE1Ljg1NSAyNzUuMjAxIDUxMi4zNjhDMjY1LjkwMyA1MDkuOTk0IDI2Mi4xMTcgNTA3LjQyNCAyNTAuOTA2IDQ5NS44NzZDMjMxLjQyNSA0NzUuODA5IDIyMy44NjIgNDcxLjkyIDE5NS43NzcgNDY3LjUzNkwxOTAuMzk1IDQ2Ni42OTZMMTk2LjUxOSA0NjEuNTI1WiIgZmlsbD0iI0ZGMDA3QSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ5LjYyMDIgMTIuMDAzMUMxMTQuNjc4IDkwLjk2MzggMjE0Ljk3NyAyMTMuOTAxIDIxOS45NTcgMjIwLjc4NEMyMjQuMDY4IDIyNi40NjcgMjIyLjUyMSAyMzEuNTc2IDIxNS40NzggMjM1LjU4QzIxMS41NjEgMjM3LjgwNyAyMDMuNTA4IDI0MC4wNjMgMTk5LjQ3NiAyNDAuMDYzQzE5NC45MTYgMjQwLjA2MyAxODkuNzc5IDIzNy44NjcgMTg2LjAzOCAyMzQuMzE4QzE4My4zOTMgMjMxLjgxIDE3Mi43MjEgMjE1Ljg3NCAxNDguMDg0IDE3Ny42NDZDMTI5LjIzMyAxNDguMzk2IDExMy40NTcgMTI0LjEzMSAxMTMuMDI3IDEyMy43MjVDMTEyLjAzMiAxMjIuNzg1IDExMi4wNDkgMTIyLjgxNyAxNDYuMTYyIDE4My44NTRDMTY3LjU4MiAyMjIuMTgxIDE3NC44MTMgMjM1LjczMSAxNzQuODEzIDIzNy41NDNDMTc0LjgxMyAyNDEuMjI5IDE3My44MDggMjQzLjE2NiAxNjkuMjYxIDI0OC4yMzhDMTYxLjY4MSAyNTYuNjk0IDE1OC4yOTMgMjY2LjE5NSAxNTUuODQ3IDI4NS44NTlDMTUzLjEwNCAzMDcuOTAyIDE0NS4zOTQgMzIzLjQ3MyAxMjQuMDI2IDM1MC4xMjJDMTExLjUxOCAzNjUuNzIyIDEwOS40NzEgMzY4LjU4MSAxMDYuMzE1IDM3NC44NjlDMTAyLjMzOSAzODIuNzg2IDEwMS4yNDYgMzg3LjIyMSAxMDAuODAzIDM5Ny4yMTlDMTAwLjMzNSA0MDcuNzkgMTAxLjI0NyA0MTQuNjE5IDEwNC40NzcgNDI0LjcyNkMxMDcuMzA0IDQzMy41NzUgMTEwLjI1NSA0MzkuNDE3IDExNy44IDQ1MS4xMDRDMTI0LjMxMSA0NjEuMTg4IDEyOC4wNjEgNDY4LjY4MyAxMjguMDYxIDQ3MS42MTRDMTI4LjA2MSA0NzMuOTQ3IDEyOC41MDYgNDczLjk1IDEzOC41OTYgNDcxLjY3MkMxNjIuNzQxIDQ2Ni4yMTkgMTgyLjM0OCA0NTYuNjI5IDE5My4zNzUgNDQ0Ljg3N0MyMDAuMTk5IDQzNy42MDMgMjAxLjgwMSA0MzMuNTg2IDIwMS44NTMgNDIzLjYxOEMyMDEuODg3IDQxNy4wOTggMjAxLjY1OCA0MTUuNzMzIDE5OS44OTYgNDExLjk4MkMxOTcuMDI3IDQwNS44NzcgMTkxLjgwNCA0MDAuODAxIDE4MC4yOTIgMzkyLjkzMkMxNjUuMjA5IDM4Mi42MjEgMTU4Ljc2NyAzNzQuMzIgMTU2Ljk4NyAzNjIuOTA0QzE1NS41MjcgMzUzLjUzNyAxNTcuMjIxIDM0Ni45MjggMTY1LjU2NSAzMjkuNDRDMTc0LjIwMiAzMTEuMzM4IDE3Ni4zNDIgMzAzLjYyNCAxNzcuNzkgMjg1LjM3OEMxNzguNzI1IDI3My41ODkgMTgwLjAyIDI2OC45NCAxODMuNDA3IDI2NS4yMDlDMTg2LjkzOSAyNjEuMzE3IDE5MC4xMTkgMjYwIDE5OC44NjEgMjU4LjgwNUMyMTMuMTEzIDI1Ni44NTggMjIyLjE4OCAyNTMuMTcxIDIyOS42NDggMjQ2LjI5N0MyMzYuMTE5IDI0MC4zMzQgMjM4LjgyNyAyMzQuNTg4IDIzOS4yNDMgMjI1LjkzOEwyMzkuNTU4IDIxOS4zODJMMjM1Ljk0MiAyMTUuMTY2QzIyMi44NDYgMTk5Ljg5NiA0MC44NSAwIDQwLjA0NCAwQzM5Ljg3MTkgMCA0NC4xODEzIDUuNDAxNzggNDkuNjIwMiAxMi4wMDMxWk0xMzUuNDEyIDQwOS4xOEMxMzguMzczIDQwMy45MzcgMTM2LjggMzk3LjE5NSAxMzEuODQ3IDM5My45MDJDMTI3LjE2NyAzOTAuNzkgMTE5Ljg5NyAzOTIuMjU2IDExOS44OTcgMzk2LjMxMUMxMTkuODk3IDM5Ny41NDggMTIwLjU4MiAzOTguNDQ5IDEyMi4xMjQgMzk5LjI0M0MxMjQuNzIgNDAwLjU3OSAxMjQuOTA5IDQwMi4wODEgMTIyLjg2NiA0MDUuMTUyQzEyMC43OTcgNDA4LjI2MiAxMjAuOTY0IDQxMC45OTYgMTIzLjMzNyA0MTIuODU0QzEyNy4xNjIgNDE1Ljg0OSAxMzIuNTc2IDQxNC4yMDIgMTM1LjQxMiA0MDkuMThaIiBmaWxsPSIjRkYwMDdBIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQ4LjU1MiAyNjIuMjQ0QzI0MS44NjIgMjY0LjI5OSAyMzUuMzU4IDI3MS4zOSAyMzMuMzQ0IDI3OC44MjZDMjMyLjExNiAyODMuMzYyIDIzMi44MTMgMjkxLjMxOSAyMzQuNjUzIDI5My43NzZDMjM3LjYyNSAyOTcuNzQ1IDI0MC40OTkgMjk4Ljc5MSAyNDguMjgyIDI5OC43MzZDMjYzLjUxOCAyOTguNjMgMjc2Ljc2NCAyOTIuMDk1IDI3OC4zMDQgMjgzLjkyNUMyNzkuNTY3IDI3Ny4yMjkgMjczLjc0OSAyNjcuOTQ4IDI2NS43MzYgMjYzLjg3NEMyNjEuNjAxIDI2MS43NzIgMjUyLjgwNyAyNjAuOTM4IDI0OC41NTIgMjYyLjI0NFpNMjY2LjM2NCAyNzYuMTcyQzI2OC43MTQgMjcyLjgzNCAyNjcuNjg2IDI2OS4yMjUgMjYzLjY5IDI2Ni43ODVDMjU2LjA4IDI2Mi4xMzggMjQ0LjU3MSAyNjUuOTgzIDI0NC41NzEgMjczLjE3M0MyNDQuNTcxIDI3Ni43NTIgMjUwLjU3MiAyODAuNjU2IDI1Ni4wNzQgMjgwLjY1NkMyNTkuNzM1IDI4MC42NTYgMjY0Ljc0NiAyNzguNDczIDI2Ni4zNjQgMjc2LjE3MloiIGZpbGw9IiNGRjAwN0EiLz4KPC9zdmc+Cg==',\n protocol: 'uniswap_v2',\n slippage: true,\n blockchains: ['ethereum'],\n ethereum: {\n router: {\n address: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n api: UniswapV2.ROUTER\n },\n factory: {\n address: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n api: UniswapV2.FACTORY\n },\n pair: {\n api: UniswapV2.PAIR\n }\n },\n base: {\n router: {\n address: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n api: UniswapV2.ROUTER\n },\n factory: {\n address: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n api: UniswapV2.FACTORY\n },\n pair: {\n api: UniswapV2.PAIR\n }\n }\n};\n\nvar uniswap_v2 = function uniswap_v2(scope) {\n return new Exchange(Object.assign(exchange$a, {\n scope: scope,\n findPath: function findPath(args) {\n return UniswapV2.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$a\n }));\n },\n pathExists: function pathExists(args) {\n return UniswapV2.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$a\n }));\n },\n getAmounts: function getAmounts(args) {\n return UniswapV2.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$a\n }));\n },\n getPrep: function getPrep(args) {\n return UniswapV2.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$a\n }));\n },\n getTransaction: function getTransaction(args) {\n return UniswapV2.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$a\n }));\n }\n }));\n};\n\nfunction _optionalChain(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value7;\n\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n return (_value7 = value).call.apply(_value7, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar SENDER_AS_RECIPIENT = '0x0000000000000000000000000000000000000001';\nvar ROUTER_AS_RECIPIENT = '0x0000000000000000000000000000000000000002'; // Replaces 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE with the wrapped token and implies wrapping.\n//\n// We keep 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE internally\n// to be able to differentiate between ETH<>Token and WETH<>Token swaps\n// as they are not the same!\n//\n\nvar getExchangePath = function getExchangePath(_ref113) {\n var blockchain = _ref113.blockchain,\n exchange = _ref113.exchange,\n path = _ref113.path;\n\n if (!path) {\n return;\n }\n\n var exchangePath = path.map(function (token, index) {\n if (token === Blockchains[blockchain].currency.address && path[index + 1] != Blockchains[blockchain].wrapped.address && path[index - 1] != Blockchains[blockchain].wrapped.address) {\n return Blockchains[blockchain].wrapped.address;\n } else {\n return token;\n }\n });\n\n if (exchangePath[0] == Blockchains[blockchain].currency.address && exchangePath[1] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(0, 1);\n } else if (exchangePath[exchangePath.length - 1] == Blockchains[blockchain].currency.address && exchangePath[exchangePath.length - 2] == Blockchains[blockchain].wrapped.address) {\n exchangePath.splice(exchangePath.length - 1, 1);\n }\n\n return exchangePath;\n};\n\nvar getInputAmount = /*#__PURE__*/function () {\n var _ref115 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee57(_ref114) {\n var exchange, pool, outputAmount, data;\n return _regeneratorRuntime.wrap(function _callee57$(_context57) {\n while (1) {\n switch (_context57.prev = _context57.next) {\n case 0:\n exchange = _ref114.exchange, pool = _ref114.pool, outputAmount = _ref114.outputAmount;\n _context57.next = 3;\n return request({\n blockchain: pool.blockchain,\n address: exchange[pool.blockchain].quoter.address,\n api: exchange[pool.blockchain].quoter.api,\n method: 'quoteExactOutput',\n params: {\n path: ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pool.path[1], pool.fee, pool.path[0]]),\n amountOut: outputAmount\n },\n cache: 5\n });\n\n case 3:\n data = _context57.sent;\n return _context57.abrupt(\"return\", data.amountIn);\n\n case 5:\n case \"end\":\n return _context57.stop();\n }\n }\n }, _callee57);\n }));\n\n return function getInputAmount(_x59) {\n return _ref115.apply(this, arguments);\n };\n}();\n\nvar getOutputAmount = /*#__PURE__*/function () {\n var _ref117 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee58(_ref116) {\n var exchange, pool, inputAmount, data;\n return _regeneratorRuntime.wrap(function _callee58$(_context58) {\n while (1) {\n switch (_context58.prev = _context58.next) {\n case 0:\n exchange = _ref116.exchange, pool = _ref116.pool, inputAmount = _ref116.inputAmount;\n _context58.next = 3;\n return request({\n blockchain: pool.blockchain,\n address: exchange[pool.blockchain].quoter.address,\n api: exchange[pool.blockchain].quoter.api,\n method: 'quoteExactInput',\n params: {\n path: ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pool.path[0], pool.fee, pool.path[1]]),\n amountIn: inputAmount\n },\n cache: 5\n });\n\n case 3:\n data = _context58.sent;\n return _context58.abrupt(\"return\", data.amountOut);\n\n case 5:\n case \"end\":\n return _context58.stop();\n }\n }\n }, _callee58);\n }));\n\n return function getOutputAmount(_x60) {\n return _ref117.apply(this, arguments);\n };\n}();\n\nvar getBestPool = /*#__PURE__*/function () {\n var _ref119 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee60(_ref118) {\n var blockchain, exchange, path, amountIn, amountOut, block, pools;\n return _regeneratorRuntime.wrap(function _callee60$(_context60) {\n while (1) {\n switch (_context60.prev = _context60.next) {\n case 0:\n blockchain = _ref118.blockchain, exchange = _ref118.exchange, path = _ref118.path, amountIn = _ref118.amountIn, amountOut = _ref118.amountOut, block = _ref118.block;\n path = getExchangePath({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n });\n\n if (!(path.length > 2)) {\n _context60.next = 4;\n break;\n }\n\n throw 'Uniswap V3 can only check paths for up to 2 tokens!';\n\n case 4:\n _context60.prev = 4;\n _context60.next = 7;\n return Promise.all(exchange.fees.map(function (fee) {\n return request({\n blockchain: Blockchains[blockchain].name,\n address: exchange[blockchain].factory.address,\n method: 'getPool',\n api: exchange[blockchain].factory.api,\n cache: 3600,\n params: [path[0], path[1], fee]\n }).then(function (address) {\n return {\n blockchain: blockchain,\n address: address,\n path: path,\n fee: fee,\n token0: _toConsumableArray(path).sort()[0],\n token1: _toConsumableArray(path).sort()[1]\n };\n }).catch(function () {});\n }));\n\n case 7:\n pools = _context60.sent.filter(Boolean);\n pools = pools.filter(function (pool) {\n return pool.address != Blockchains[blockchain].zero;\n });\n _context60.next = 11;\n return Promise.all(pools.map( /*#__PURE__*/function () {\n var _ref120 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee59(pool) {\n var amount, amountScaled, amountScaledDown, difference, enoughLiquidity, _amountScaled, _amountScaledDown, _difference3, _enoughLiquidity;\n\n return _regeneratorRuntime.wrap(function _callee59$(_context59) {\n while (1) {\n switch (_context59.prev = _context59.next) {\n case 0:\n _context59.prev = 0;\n\n if (!amountIn) {\n _context59.next = 15;\n break;\n }\n\n _context59.next = 4;\n return getOutputAmount({\n exchange: exchange,\n pool: pool,\n inputAmount: amountIn\n });\n\n case 4:\n amount = _context59.sent;\n _context59.next = 7;\n return getOutputAmount({\n exchange: exchange,\n pool: pool,\n inputAmount: ethers.BigNumber.from(amountIn).mul(ethers.BigNumber.from(10)).toString()\n });\n\n case 7:\n amountScaled = _context59.sent;\n amountScaledDown = amountScaled.div(ethers.BigNumber.from(10));\n difference = amountScaledDown.sub(amount).abs();\n enoughLiquidity = !difference.gt(amount.div(ethers.BigNumber.from(100)).mul(ethers.BigNumber.from(5))); // up to 5% diff allowed\n\n if (enoughLiquidity) {\n _context59.next = 13;\n break;\n }\n\n return _context59.abrupt(\"return\");\n\n case 13:\n _context59.next = 26;\n break;\n\n case 15:\n _context59.next = 17;\n return getInputAmount({\n exchange: exchange,\n pool: pool,\n outputAmount: amountOut\n });\n\n case 17:\n amount = _context59.sent;\n _context59.next = 20;\n return getInputAmount({\n exchange: exchange,\n pool: pool,\n outputAmount: ethers.BigNumber.from(amountOut).mul(ethers.BigNumber.from(10)).toString()\n });\n\n case 20:\n _amountScaled = _context59.sent;\n _amountScaledDown = _amountScaled.div(ethers.BigNumber.from(10));\n _difference3 = _amountScaledDown.sub(amount).abs();\n _enoughLiquidity = !_difference3.gt(amount.div(ethers.BigNumber.from(100)).mul(ethers.BigNumber.from(5))); // up to 5% diff allowed\n\n if (_enoughLiquidity) {\n _context59.next = 26;\n break;\n }\n\n return _context59.abrupt(\"return\");\n\n case 26:\n return _context59.abrupt(\"return\", _objectSpread(_objectSpread({}, pool), {}, {\n amountIn: amountIn || amount,\n amountOut: amountOut || amount\n }));\n\n case 29:\n _context59.prev = 29;\n _context59.t0 = _context59[\"catch\"](0);\n\n case 31:\n case \"end\":\n return _context59.stop();\n }\n }\n }, _callee59, null, [[0, 29]]);\n }));\n\n return function (_x62) {\n return _ref120.apply(this, arguments);\n };\n }()));\n\n case 11:\n pools = _context60.sent.filter(Boolean);\n\n if (!amountIn) {\n _context60.next = 16;\n break;\n }\n\n return _context60.abrupt(\"return\", pools.sort(function (a, b) {\n return b.amountOut.gt(a.amountOut) ? 1 : -1;\n })[0]);\n\n case 16:\n return _context60.abrupt(\"return\", pools.sort(function (a, b) {\n return b.amountIn.lt(a.amountIn) ? 1 : -1;\n })[0]);\n\n case 17:\n _context60.next = 22;\n break;\n\n case 19:\n _context60.prev = 19;\n _context60.t0 = _context60[\"catch\"](4);\n return _context60.abrupt(\"return\");\n\n case 22:\n case \"end\":\n return _context60.stop();\n }\n }\n }, _callee60, null, [[4, 19]]);\n }));\n\n return function getBestPool(_x61) {\n return _ref119.apply(this, arguments);\n };\n}();\n\nvar pathExists$1 = /*#__PURE__*/function () {\n var _ref122 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee61(_ref121) {\n var blockchain, exchange, path, amountIn, amountOut, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee61$(_context61) {\n while (1) {\n switch (_context61.prev = _context61.next) {\n case 0:\n blockchain = _ref121.blockchain, exchange = _ref121.exchange, path = _ref121.path, amountIn = _ref121.amountIn, amountOut = _ref121.amountOut, amountInMax = _ref121.amountInMax, amountOutMin = _ref121.amountOutMin;\n _context61.prev = 1;\n _context61.next = 4;\n return getBestPool({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n amountIn: amountIn || amountInMax,\n amountOut: amountOut || amountOutMin\n });\n\n case 4:\n return _context61.abrupt(\"return\", !!_context61.sent);\n\n case 7:\n _context61.prev = 7;\n _context61.t0 = _context61[\"catch\"](1);\n return _context61.abrupt(\"return\", false);\n\n case 10:\n case \"end\":\n return _context61.stop();\n }\n }\n }, _callee61, null, [[1, 7]]);\n }));\n\n return function pathExists$1(_x63) {\n return _ref122.apply(this, arguments);\n };\n}();\n\nvar findPath$1 = /*#__PURE__*/function () {\n var _ref124 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee63(_ref123) {\n var blockchain, exchange, tokenIn, tokenOut, amountIn, amountOut, amountInMax, amountOutMin, path, pools, allPoolsForAllUSD, usdPath;\n return _regeneratorRuntime.wrap(function _callee63$(_context63) {\n while (1) {\n switch (_context63.prev = _context63.next) {\n case 0:\n blockchain = _ref123.blockchain, exchange = _ref123.exchange, tokenIn = _ref123.tokenIn, tokenOut = _ref123.tokenOut, amountIn = _ref123.amountIn, amountOut = _ref123.amountOut, amountInMax = _ref123.amountInMax, amountOutMin = _ref123.amountOutMin;\n\n if (!([tokenIn, tokenOut].includes(Blockchains[blockchain].currency.address) && [tokenIn, tokenOut].includes(Blockchains[blockchain].wrapped.address))) {\n _context63.next = 3;\n break;\n }\n\n return _context63.abrupt(\"return\", {\n path: undefined,\n exchangePath: undefined\n });\n\n case 3:\n pools = []; // DIRECT PATH\n\n _context63.next = 6;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, tokenOut],\n amountIn: amountIn || amountInMax,\n amountOut: amountOut || amountOutMin\n });\n\n case 6:\n _context63.t0 = _context63.sent;\n pools = [_context63.t0];\n\n if (pools.filter(Boolean).length) {\n path = [tokenIn, tokenOut];\n } // PATH VIA WRAPPED\n\n\n if (!(!path && tokenIn != Blockchains[blockchain].wrapped.address && tokenOut != Blockchains[blockchain].wrapped.address)) {\n _context63.next = 37;\n break;\n }\n\n pools = [];\n\n if (!(amountOut || amountOutMin)) {\n _context63.next = 25;\n break;\n }\n\n _context63.t1 = pools;\n _context63.next = 15;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [Blockchains[blockchain].wrapped.address, tokenOut],\n amountOut: amountOut || amountOutMin\n });\n\n case 15:\n _context63.t2 = _context63.sent;\n\n _context63.t1.push.call(_context63.t1, _context63.t2);\n\n if (!pools.filter(Boolean).length) {\n _context63.next = 23;\n break;\n }\n\n _context63.t3 = pools;\n _context63.next = 21;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, Blockchains[blockchain].wrapped.address],\n amountOut: pools[0].amountIn\n });\n\n case 21:\n _context63.t4 = _context63.sent;\n\n _context63.t3.unshift.call(_context63.t3, _context63.t4);\n\n case 23:\n _context63.next = 36;\n break;\n\n case 25:\n _context63.t5 = pools;\n _context63.next = 28;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, Blockchains[blockchain].wrapped.address],\n amountIn: amountIn || amountInMax\n });\n\n case 28:\n _context63.t6 = _context63.sent;\n\n _context63.t5.push.call(_context63.t5, _context63.t6);\n\n if (!pools.filter(Boolean).length) {\n _context63.next = 36;\n break;\n }\n\n _context63.t7 = pools;\n _context63.next = 34;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [Blockchains[blockchain].wrapped.address, tokenOut],\n amountIn: pools[0].amountOut\n });\n\n case 34:\n _context63.t8 = _context63.sent;\n\n _context63.t7.push.call(_context63.t7, _context63.t8);\n\n case 36:\n if (pools.filter(Boolean).length === 2) {\n // path via WRAPPED\n path = [tokenIn, Blockchains[blockchain].wrapped.address, tokenOut];\n }\n\n case 37:\n if (path) {\n _context63.next = 44;\n break;\n }\n\n pools = [];\n _context63.next = 41;\n return Promise.all(Blockchains[blockchain].stables.usd.map( /*#__PURE__*/function () {\n var _ref125 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee62(stable) {\n var pools;\n return _regeneratorRuntime.wrap(function _callee62$(_context62) {\n while (1) {\n switch (_context62.prev = _context62.next) {\n case 0:\n pools = [];\n\n if (!(amountOut || amountOutMin)) {\n _context62.next = 15;\n break;\n }\n\n _context62.t0 = pools;\n _context62.next = 5;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [stable, tokenOut],\n amountOut: amountOut || amountOutMin\n });\n\n case 5:\n _context62.t1 = _context62.sent;\n\n _context62.t0.push.call(_context62.t0, _context62.t1);\n\n if (!pools.filter(Boolean).length) {\n _context62.next = 13;\n break;\n }\n\n _context62.t2 = pools;\n _context62.next = 11;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, stable],\n amountOut: pools[0].amountIn\n });\n\n case 11:\n _context62.t3 = _context62.sent;\n\n _context62.t2.unshift.call(_context62.t2, _context62.t3);\n\n case 13:\n _context62.next = 26;\n break;\n\n case 15:\n _context62.t4 = pools;\n _context62.next = 18;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [tokenIn, stable],\n amountIn: amountIn || amountInMax\n });\n\n case 18:\n _context62.t5 = _context62.sent;\n\n _context62.t4.push.call(_context62.t4, _context62.t5);\n\n if (!pools.filter(Boolean).length) {\n _context62.next = 26;\n break;\n }\n\n _context62.t6 = pools;\n _context62.next = 24;\n return getBestPool({\n exchange: exchange,\n blockchain: blockchain,\n path: [stable, tokenOut],\n amountIn: pools[0].amountOut\n });\n\n case 24:\n _context62.t7 = _context62.sent;\n\n _context62.t6.push.call(_context62.t6, _context62.t7);\n\n case 26:\n if (!(pools.filter(Boolean).length === 2)) {\n _context62.next = 28;\n break;\n }\n\n return _context62.abrupt(\"return\", [stable, pools]);\n\n case 28:\n case \"end\":\n return _context62.stop();\n }\n }\n }, _callee62);\n }));\n\n return function (_x65) {\n return _ref125.apply(this, arguments);\n };\n }()));\n\n case 41:\n allPoolsForAllUSD = _context63.sent;\n usdPath = allPoolsForAllUSD.filter(Boolean)[0];\n\n if (usdPath) {\n path = [tokenIn, usdPath[0], tokenOut];\n pools = usdPath[1];\n }\n\n case 44:\n // Add WRAPPED to route path if things start or end with NATIVE\n // because that actually reflects how things are routed in reality:\n if (_optionalChain([path, 'optionalAccess', function (_) {\n return _.length;\n }]) && path[0] == Blockchains[blockchain].currency.address) {\n path.splice(1, 0, Blockchains[blockchain].wrapped.address);\n } else if (_optionalChain([path, 'optionalAccess', function (_2) {\n return _2.length;\n }]) && path[path.length - 1] == Blockchains[blockchain].currency.address) {\n path.splice(path.length - 1, 0, Blockchains[blockchain].wrapped.address);\n }\n\n if (!path) {\n pools = [];\n }\n\n return _context63.abrupt(\"return\", {\n path: path,\n pools: pools,\n exchangePath: getExchangePath({\n blockchain: blockchain,\n exchange: exchange,\n path: path\n })\n });\n\n case 47:\n case \"end\":\n return _context63.stop();\n }\n }\n }, _callee63);\n }));\n\n return function findPath$1(_x64) {\n return _ref124.apply(this, arguments);\n };\n}();\n\nvar getAmountOut = function getAmountOut(_ref126) {\n var blockchain = _ref126.blockchain,\n exchange = _ref126.exchange,\n path = _ref126.path,\n pools = _ref126.pools,\n amountIn = _ref126.amountIn;\n return pools[pools.length - 1].amountOut;\n};\n\nvar getAmountIn = /*#__PURE__*/function () {\n var _ref128 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee64(_ref127) {\n var blockchain, exchange, path, pools, amountOut, block, _path2, data;\n\n return _regeneratorRuntime.wrap(function _callee64$(_context64) {\n while (1) {\n switch (_context64.prev = _context64.next) {\n case 0:\n blockchain = _ref127.blockchain, exchange = _ref127.exchange, path = _ref127.path, pools = _ref127.pools, amountOut = _ref127.amountOut, block = _ref127.block;\n\n if (!(block === undefined)) {\n _context64.next = 5;\n break;\n }\n\n return _context64.abrupt(\"return\", pools[0].amountIn);\n\n case 5:\n if (pools.length == 2) {\n _path2 = ethers.utils.solidityPack([\"address\", \"uint24\", \"address\", \"uint24\", \"address\"], [pools[1].path[1], pools[1].fee, pools[0].path[1], pools[0].fee, pools[0].path[0]]);\n } else if (pools.length == 1) {\n _path2 = ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pools[0].path[1], pools[0].fee, pools[0].path[0]]);\n }\n\n _context64.next = 8;\n return request({\n block: block,\n blockchain: blockchain,\n address: exchange[blockchain].quoter.address,\n api: exchange[blockchain].quoter.api,\n method: 'quoteExactOutput',\n params: {\n path: _path2,\n amountOut: amountOut\n }\n });\n\n case 8:\n data = _context64.sent;\n return _context64.abrupt(\"return\", data.amountIn);\n\n case 10:\n case \"end\":\n return _context64.stop();\n }\n }\n }, _callee64);\n }));\n\n return function getAmountIn(_x66) {\n return _ref128.apply(this, arguments);\n };\n}();\n\nvar getAmounts$1 = /*#__PURE__*/function () {\n var _ref130 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee65(_ref129) {\n var blockchain, exchange, path, pools, block, tokenIn, tokenOut, amountOut, amountIn, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee65$(_context65) {\n while (1) {\n switch (_context65.prev = _context65.next) {\n case 0:\n blockchain = _ref129.blockchain, exchange = _ref129.exchange, path = _ref129.path, pools = _ref129.pools, block = _ref129.block, tokenIn = _ref129.tokenIn, tokenOut = _ref129.tokenOut, amountOut = _ref129.amountOut, amountIn = _ref129.amountIn, amountInMax = _ref129.amountInMax, amountOutMin = _ref129.amountOutMin;\n\n if (!amountOut) {\n _context65.next = 12;\n break;\n }\n\n _context65.next = 4;\n return getAmountIn({\n blockchain: blockchain,\n exchange: exchange,\n block: block,\n path: path,\n pools: pools,\n amountOut: amountOut,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 4:\n amountIn = _context65.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context65.next = 9;\n break;\n }\n\n return _context65.abrupt(\"return\", {});\n\n case 9:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 10:\n _context65.next = 43;\n break;\n\n case 12:\n if (!amountIn) {\n _context65.next = 23;\n break;\n }\n\n _context65.next = 15;\n return getAmountOut({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n pools: pools,\n amountIn: amountIn,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 15:\n amountOut = _context65.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context65.next = 20;\n break;\n }\n\n return _context65.abrupt(\"return\", {});\n\n case 20:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 21:\n _context65.next = 43;\n break;\n\n case 23:\n if (!amountOutMin) {\n _context65.next = 34;\n break;\n }\n\n _context65.next = 26;\n return getAmountIn({\n blockchain: blockchain,\n exchange: exchange,\n block: block,\n path: path,\n pools: pools,\n amountOut: amountOutMin,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 26:\n amountIn = _context65.sent;\n\n if (!(amountIn == undefined || amountInMax && amountIn.gt(amountInMax))) {\n _context65.next = 31;\n break;\n }\n\n return _context65.abrupt(\"return\", {});\n\n case 31:\n if (amountInMax === undefined) {\n amountInMax = amountIn;\n }\n\n case 32:\n _context65.next = 43;\n break;\n\n case 34:\n if (!amountInMax) {\n _context65.next = 43;\n break;\n }\n\n _context65.next = 37;\n return getAmountOut({\n blockchain: blockchain,\n exchange: exchange,\n path: path,\n pools: pools,\n amountIn: amountInMax,\n tokenIn: tokenIn,\n tokenOut: tokenOut\n });\n\n case 37:\n amountOut = _context65.sent;\n\n if (!(amountOut == undefined || amountOutMin && amountOut.lt(amountOutMin))) {\n _context65.next = 42;\n break;\n }\n\n return _context65.abrupt(\"return\", {});\n\n case 42:\n if (amountOutMin === undefined) {\n amountOutMin = amountOut;\n }\n\n case 43:\n return _context65.abrupt(\"return\", {\n amountOut: amountOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 44:\n case \"end\":\n return _context65.stop();\n }\n }\n }, _callee65);\n }));\n\n return function getAmounts$1(_x67) {\n return _ref130.apply(this, arguments);\n };\n}();\n\nvar getPrep = /*#__PURE__*/function () {\n var _ref132 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee66(_ref131) {\n var exchange, blockchain, tokenIn, amountIn, account, allowance, transaction;\n return _regeneratorRuntime.wrap(function _callee66$(_context66) {\n while (1) {\n switch (_context66.prev = _context66.next) {\n case 0:\n exchange = _ref131.exchange, blockchain = _ref131.blockchain, tokenIn = _ref131.tokenIn, amountIn = _ref131.amountIn, account = _ref131.account;\n\n if (!(tokenIn === Blockchains[blockchain].currency.address)) {\n _context66.next = 3;\n break;\n }\n\n return _context66.abrupt(\"return\");\n\n case 3:\n _context66.next = 5;\n return request({\n blockchain: blockchain,\n address: tokenIn,\n method: 'allowance',\n api: Token[blockchain]['20'],\n params: [account, exchange[blockchain].router.address]\n });\n\n case 5:\n allowance = _context66.sent;\n\n if (!allowance.gte(amountIn)) {\n _context66.next = 8;\n break;\n }\n\n return _context66.abrupt(\"return\");\n\n case 8:\n transaction = {\n blockchain: blockchain,\n from: account,\n to: tokenIn,\n api: Token[blockchain]['20'],\n method: 'approve',\n params: [exchange[blockchain].router.address, amountIn.sub(allowance)]\n };\n return _context66.abrupt(\"return\", {\n transaction: transaction\n });\n\n case 10:\n case \"end\":\n return _context66.stop();\n }\n }\n }, _callee66);\n }));\n\n return function getPrep(_x68) {\n return _ref132.apply(this, arguments);\n };\n}();\n\nvar packPath = function packPath(pools) {\n if (pools.length == 1) {\n return ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pools[0].path[0], pools[0].fee, pools[0].path[1]]);\n } else if (pools.length == 2) {\n return ethers.utils.solidityPack([\"address\", \"uint24\", \"address\", \"uint24\", \"address\"], [pools[0].path[0], pools[0].fee, pools[0].path[1], pools[1].fee, pools[1].path[1]]);\n } else {\n throw 'more than 2 pools not supported!';\n }\n};\n\nvar packPathReverse = function packPathReverse(pools) {\n if (pools.length == 1) {\n return ethers.utils.solidityPack([\"address\", \"uint24\", \"address\"], [pools[0].path[1], pools[0].fee, pools[0].path[0]]);\n } else if (pools.length == 2) {\n return ethers.utils.solidityPack([\"address\", \"uint24\", \"address\", \"uint24\", \"address\"], [pools[1].path[1], pools[1].fee, pools[1].path[0], pools[0].fee, pools[0].path[0]]);\n } else {\n throw 'more than 2 pools not supported!';\n }\n};\n\nvar getTransaction$1 = /*#__PURE__*/function () {\n var _ref134 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee67(_ref133) {\n var blockchain, exchange, pools, path, amountIn, amountInMax, amountOut, amountOutMin, amountInInput, amountOutInput, amountInMaxInput, amountOutMinInput, account, inputTokenPushed, value, contract, exactInput, wrapETH, unwrapETH, recipient, refundETH, multicalls, transaction;\n return _regeneratorRuntime.wrap(function _callee67$(_context67) {\n while (1) {\n switch (_context67.prev = _context67.next) {\n case 0:\n blockchain = _ref133.blockchain, exchange = _ref133.exchange, pools = _ref133.pools, path = _ref133.path, amountIn = _ref133.amountIn, amountInMax = _ref133.amountInMax, amountOut = _ref133.amountOut, amountOutMin = _ref133.amountOutMin, amountInInput = _ref133.amountInInput, amountOutInput = _ref133.amountOutInput, amountInMaxInput = _ref133.amountInMaxInput, amountOutMinInput = _ref133.amountOutMinInput, account = _ref133.account, inputTokenPushed = _ref133.inputTokenPushed;\n value = \"0\";\n contract = new ethers.Contract(exchange[blockchain].router.address, exchange[blockchain].router.api);\n exactInput = !!(amountOutMinInput || amountInInput);\n wrapETH = path[0] === Blockchains[blockchain].currency.address;\n unwrapETH = path[path.length - 1] === Blockchains[blockchain].currency.address;\n recipient = unwrapETH ? ROUTER_AS_RECIPIENT : SENDER_AS_RECIPIENT;\n refundETH = wrapETH || unwrapETH;\n multicalls = [];\n\n if (wrapETH) {\n value = (amountIn || amountInMax).toString();\n\n if (exactInput) {\n // exactOut does not need to wrapETH!\n multicalls.push(contract.interface.encodeFunctionData('wrapETH', [amountIn || amountInMax]));\n }\n }\n\n if (exactInput) {\n multicalls.push(contract.interface.encodeFunctionData('exactInput', [{\n path: packPath(pools),\n amountIn: wrapETH ? 0 : amountIn || amountInMax,\n amountOutMinimum: amountOutMin,\n recipient: recipient\n }]));\n } else {\n multicalls.push(contract.interface.encodeFunctionData('exactOutput', [{\n path: packPathReverse(pools),\n amountOut: amountOut,\n amountInMaximum: amountInMax,\n recipient: recipient\n }]));\n }\n\n if (unwrapETH) {\n multicalls.push(contract.interface.encodeFunctionData('unwrapWETH9(uint256)', [amountOut || amountOutMin]));\n }\n\n if (refundETH) {\n multicalls.push(contract.interface.encodeFunctionData('refundETH'));\n }\n\n transaction = {\n blockchain: blockchain,\n from: account,\n to: exchange[blockchain].router.address,\n api: exchange[blockchain].router.api,\n method: 'multicall',\n params: {\n data: multicalls\n },\n value: value\n };\n return _context67.abrupt(\"return\", transaction);\n\n case 15:\n case \"end\":\n return _context67.stop();\n }\n }\n }, _callee67);\n }));\n\n return function getTransaction$1(_x69) {\n return _ref134.apply(this, arguments);\n };\n}();\n\nvar ROUTER = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_factoryV2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"factoryV3\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_positionManager\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_WETH9\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"WETH9\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveMax\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveMaxMinusOne\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveZeroThenMax\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"approveZeroThenMaxMinusOne\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"callPositionManager\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"result\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"paths\",\n \"type\": \"bytes[]\"\n }, {\n \"internalType\": \"uint128[]\",\n \"name\": \"amounts\",\n \"type\": \"uint128[]\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maximumTickDivergence\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsAgo\",\n \"type\": \"uint32\"\n }],\n \"name\": \"checkOracleSlippage\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"maximumTickDivergence\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsAgo\",\n \"type\": \"uint32\"\n }],\n \"name\": \"checkOracleSlippage\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinimum\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactInputParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactInput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactInputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactInputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMaximum\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactOutputParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactOutput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMaximum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IV3SwapRouter.ExactOutputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"exactOutputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factoryV2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"getApprovalType\",\n \"outputs\": [{\n \"internalType\": \"enum IApproveAndCall.ApprovalType\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount0Min\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1Min\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IApproveAndCall.IncreaseLiquidityParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"increaseLiquidity\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"result\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount0Min\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1Min\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IApproveAndCall.MintParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"mint\",\n \"outputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"result\",\n \"type\": \"bytes\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"previousBlockhash\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"data\",\n \"type\": \"bytes[]\"\n }],\n \"name\": \"multicall\",\n \"outputs\": [{\n \"internalType\": \"bytes[]\",\n \"name\": \"results\",\n \"type\": \"bytes[]\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"positionManager\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"pull\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"refundETH\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermit\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitAllowed\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitAllowedIfNecessary\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"selfPermitIfNecessary\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOutMin\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"swapExactTokensForTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountInMax\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address[]\",\n \"name\": \"path\",\n \"type\": \"address[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }],\n \"name\": \"swapTokensForExactTokens\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepToken\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }],\n \"name\": \"sweepToken\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepTokenWithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"sweepTokenWithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"_data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"uniswapV3SwapCallback\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }],\n \"name\": \"unwrapWETH9\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9WithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountMinimum\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeBips\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeRecipient\",\n \"type\": \"address\"\n }],\n \"name\": \"unwrapWETH9WithFee\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"wrapETH\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n}];\nvar FACTORY = [{\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }],\n \"name\": \"FeeAmountEnabled\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnerChanged\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }],\n \"name\": \"PoolCreated\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenA\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenB\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }],\n \"name\": \"createPool\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }],\n \"name\": \"enableFeeAmount\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"name\": \"feeAmountTickSpacing\",\n \"outputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"\",\n \"type\": \"int24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"name\": \"getPool\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"parameters\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token0\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token1\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickSpacing\",\n \"type\": \"int24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_owner\",\n \"type\": \"address\"\n }],\n \"name\": \"setOwner\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar POOL = [{\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Burn\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"name\": \"Collect\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"name\": \"CollectProtocol\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"paid0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"paid1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Flash\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNextOld\",\n \"type\": \"uint16\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNextNew\",\n \"type\": \"uint16\"\n }],\n \"name\": \"IncreaseObservationCardinalityNext\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int24\",\n \"name\": \"tick\",\n \"type\": \"int24\"\n }],\n \"name\": \"Initialize\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"indexed\": true,\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Mint\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol0Old\",\n \"type\": \"uint8\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol1Old\",\n \"type\": \"uint8\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol0New\",\n \"type\": \"uint8\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol1New\",\n \"type\": \"uint8\"\n }],\n \"name\": \"SetFeeProtocol\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int256\",\n \"name\": \"amount0\",\n \"type\": \"int256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int256\",\n \"name\": \"amount1\",\n \"type\": \"int256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint128\",\n \"name\": \"liquidity\",\n \"type\": \"uint128\"\n }, {\n \"indexed\": false,\n \"internalType\": \"int24\",\n \"name\": \"tick\",\n \"type\": \"int24\"\n }],\n \"name\": \"Swap\",\n \"type\": \"event\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }],\n \"name\": \"burn\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount0Requested\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1Requested\",\n \"type\": \"uint128\"\n }],\n \"name\": \"collect\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount0Requested\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1Requested\",\n \"type\": \"uint128\"\n }],\n \"name\": \"collectProtocol\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"amount0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"fee\",\n \"outputs\": [{\n \"internalType\": \"uint24\",\n \"name\": \"\",\n \"type\": \"uint24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"feeGrowthGlobal0X128\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"feeGrowthGlobal1X128\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"flash\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNext\",\n \"type\": \"uint16\"\n }],\n \"name\": \"increaseObservationCardinalityNext\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"liquidity\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"maxLiquidityPerTick\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"amount\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"mint\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount0\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount1\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"name\": \"observations\",\n \"outputs\": [{\n \"internalType\": \"uint32\",\n \"name\": \"blockTimestamp\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"int56\",\n \"name\": \"tickCumulative\",\n \"type\": \"int56\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"secondsPerLiquidityCumulativeX128\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"initialized\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint32[]\",\n \"name\": \"secondsAgos\",\n \"type\": \"uint32[]\"\n }],\n \"name\": \"observe\",\n \"outputs\": [{\n \"internalType\": \"int56[]\",\n \"name\": \"tickCumulatives\",\n \"type\": \"int56[]\"\n }, {\n \"internalType\": \"uint160[]\",\n \"name\": \"secondsPerLiquidityCumulativeX128s\",\n \"type\": \"uint160[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"name\": \"positions\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"liquidity\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthInside0LastX128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthInside1LastX128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"tokensOwed0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"tokensOwed1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"protocolFees\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"token0\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"uint128\",\n \"name\": \"token1\",\n \"type\": \"uint128\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol0\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol1\",\n \"type\": \"uint8\"\n }],\n \"name\": \"setFeeProtocol\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"slot0\",\n \"outputs\": [{\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tick\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"observationIndex\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinality\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint16\",\n \"name\": \"observationCardinalityNext\",\n \"type\": \"uint16\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"feeProtocol\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"unlocked\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"tickLower\",\n \"type\": \"int24\"\n }, {\n \"internalType\": \"int24\",\n \"name\": \"tickUpper\",\n \"type\": \"int24\"\n }],\n \"name\": \"snapshotCumulativesInside\",\n \"outputs\": [{\n \"internalType\": \"int56\",\n \"name\": \"tickCumulativeInside\",\n \"type\": \"int56\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"secondsPerLiquidityInsideX128\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsInside\",\n \"type\": \"uint32\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"zeroForOne\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amountSpecified\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }],\n \"name\": \"swap\",\n \"outputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1\",\n \"type\": \"int256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int16\",\n \"name\": \"\",\n \"type\": \"int16\"\n }],\n \"name\": \"tickBitmap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"tickSpacing\",\n \"outputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"\",\n \"type\": \"int24\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int24\",\n \"name\": \"\",\n \"type\": \"int24\"\n }],\n \"name\": \"ticks\",\n \"outputs\": [{\n \"internalType\": \"uint128\",\n \"name\": \"liquidityGross\",\n \"type\": \"uint128\"\n }, {\n \"internalType\": \"int128\",\n \"name\": \"liquidityNet\",\n \"type\": \"int128\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthOutside0X128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeGrowthOutside1X128\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"int56\",\n \"name\": \"tickCumulativeOutside\",\n \"type\": \"int56\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"secondsPerLiquidityOutsideX128\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"secondsOutside\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"initialized\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"token0\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"token1\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar QUOTER = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_factory\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_WETH9\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"WETH9\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"factory\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }],\n \"name\": \"quoteExactInput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160[]\",\n \"name\": \"sqrtPriceX96AfterList\",\n \"type\": \"uint160[]\"\n }, {\n \"internalType\": \"uint32[]\",\n \"name\": \"initializedTicksCrossedList\",\n \"type\": \"uint32[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IQuoterV2.QuoteExactInputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"quoteExactInputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96After\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"initializedTicksCrossed\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amountOut\",\n \"type\": \"uint256\"\n }],\n \"name\": \"quoteExactOutput\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160[]\",\n \"name\": \"sqrtPriceX96AfterList\",\n \"type\": \"uint160[]\"\n }, {\n \"internalType\": \"uint32[]\",\n \"name\": \"initializedTicksCrossedList\",\n \"type\": \"uint32[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"tokenIn\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOut\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint24\",\n \"name\": \"fee\",\n \"type\": \"uint24\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceLimitX96\",\n \"type\": \"uint160\"\n }],\n \"internalType\": \"struct IQuoterV2.QuoteExactOutputSingleParams\",\n \"name\": \"params\",\n \"type\": \"tuple\"\n }],\n \"name\": \"quoteExactOutputSingle\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"sqrtPriceX96After\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint32\",\n \"name\": \"initializedTicksCrossed\",\n \"type\": \"uint32\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"gasEstimate\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"int256\",\n \"name\": \"amount0Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"int256\",\n \"name\": \"amount1Delta\",\n \"type\": \"int256\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"path\",\n \"type\": \"bytes\"\n }],\n \"name\": \"uniswapV3SwapCallback\",\n \"outputs\": [],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar PERMIT2 = [{\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"AllowanceExpired\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"ExcessiveInvalidation\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"InsufficientAllowance\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"maxAmount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"InvalidAmount\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InvalidContractSignature\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InvalidNonce\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InvalidSignature\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InvalidSignatureLength\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InvalidSigner\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"LengthMismatch\",\n \"type\": \"error\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"signatureDeadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"SignatureExpired\",\n \"type\": \"error\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }],\n \"name\": \"Approval\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }],\n \"name\": \"Lockdown\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"newNonce\",\n \"type\": \"uint48\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"oldNonce\",\n \"type\": \"uint48\"\n }],\n \"name\": \"NonceInvalidation\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"name\": \"Permit\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"word\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"mask\",\n \"type\": \"uint256\"\n }],\n \"name\": \"UnorderedNonceInvalidation\",\n \"type\": \"event\"\n}, {\n \"inputs\": [],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"allowance\",\n \"outputs\": [{\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }],\n \"name\": \"approve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"newNonce\",\n \"type\": \"uint48\"\n }],\n \"name\": \"invalidateNonces\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"wordPos\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"mask\",\n \"type\": \"uint256\"\n }],\n \"name\": \"invalidateUnorderedNonces\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.TokenSpenderPair[]\",\n \"name\": \"approvals\",\n \"type\": \"tuple[]\"\n }],\n \"name\": \"lockdown\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"name\": \"nonceBitmap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitDetails[]\",\n \"name\": \"details\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"sigDeadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitBatch\",\n \"name\": \"permitBatch\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitDetails\",\n \"name\": \"details\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"sigDeadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitSingle\",\n \"name\": \"permitSingle\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions\",\n \"name\": \"permitted\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions[]\",\n \"name\": \"permitted\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitBatchTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails[]\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions\",\n \"name\": \"permitted\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"witness\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"string\",\n \"name\": \"witnessTypeString\",\n \"type\": \"string\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitWitnessTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions[]\",\n \"name\": \"permitted\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitBatchTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails[]\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"witness\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"string\",\n \"name\": \"witnessTypeString\",\n \"type\": \"string\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitWitnessTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.AllowanceTransferDetails[]\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple[]\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}];\nvar UniswapV3 = {\n findPath: findPath$1,\n pathExists: pathExists$1,\n getAmounts: getAmounts$1,\n getPrep: getPrep,\n getTransaction: getTransaction$1,\n ROUTER: ROUTER,\n FACTORY: FACTORY,\n POOL: POOL,\n QUOTER: QUOTER,\n PERMIT2: PERMIT2\n};\nvar exchange$9 = {\n name: 'uniswap_v3',\n label: 'Uniswap v3',\n logo: 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGRhdGEtdGVzdGlkPSJ1bmlzd2FwLWxvZ28iIGNsYXNzPSJyZ3c2ZXo0NHAgcmd3NmV6NGVqIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjAuMzUyNiAxOS45MjQyQzIwLjI5MjggMjAuMTU0OSAyMC4xODg1IDIwLjM3MTUgMjAuMDQ1NSAyMC41NjE4QzE5Ljc3OTMgMjAuOTA4OCAxOS40MjcgMjEuMTc5NCAxOS4wMjM5IDIxLjM0NjZDMTguNjYxNCAyMS41MDM1IDE4LjI3NzQgMjEuNjA1IDE3Ljg4NDkgMjEuNjQ3NUMxNy44MDQyIDIxLjY1NzggMTcuNzIwNiAyMS42NjQxIDE3LjYzOTUgMjEuNjcwM0wxNy42MjYzIDIxLjY3MTNDMTcuMzc3NyAyMS42ODA4IDE3LjEzODcgMjEuNzcgMTYuOTQ0MiAyMS45MjU4QzE2Ljc0OTcgMjIuMDgxNyAxNi42MSAyMi4yOTYgMTYuNTQ1NSAyMi41MzczQzE2LjUxNiAyMi42NTc0IDE2LjQ5NCAyMi43NzkyIDE2LjQ3OTggMjIuOTAyMUMxNi40NTcyIDIzLjA4NzQgMTYuNDQ1NiAyMy4yNzcxIDE2LjQzMyAyMy40ODIzQzE2LjQyNCAyMy42Mjk1IDE2LjQxNDQgMjMuNzg0OCAxNi40IDIzLjk1MjFDMTYuMzE1NiAyNC42MzM3IDE2LjExOTMgMjUuMjk2NSAxNS44MTkyIDI1LjkxMzZDMTUuNzU3OSAyNi4wNDMzIDE1LjY5NTQgMjYuMTY5MSAxNS42MzM5IDI2LjI5MjZDMTUuMzA0OSAyNi45NTQ2IDE1LjAwNzYgMjcuNTUyNiAxNS4wOTI5IDI4LjM1MzVDMTUuMTU5NyAyOC45NzA2IDE1LjQ3NDQgMjkuMzg0MSAxNS44OTI1IDI5LjgxMDZDMTYuMDkxMSAzMC4wMTQ2IDE2LjM1NDQgMzAuMTg4OSAxNi42Mjc3IDMwLjM2OTlDMTcuMzkyNyAzMC44NzYzIDE4LjIzNjEgMzEuNDM0NyAxNy45NTgyIDMyLjg0MTVDMTcuNzMwOCAzMy45ODE0IDE1Ljg0OTQgMzUuMTc3NiAxMy4yMDUgMzUuNTk1NEMxMy40NjE1IDM1LjU1NjMgMTIuODk2NSAzNC41ODc5IDEyLjgzMzggMzQuNDgwNEwxMi44MyAzNC40NzM5QzEyLjc1NzEgMzQuMzU5MiAxMi42ODI0IDM0LjI0NjIgMTIuNjA3OSAzNC4xMzM0TDEyLjYwNzkgMzQuMTMzNEwxMi42MDc4IDM0LjEzMzRDMTIuMzkyNiAzMy44MDc2IDEyLjE3ODMgMzMuNDgzNSAxMi4wMTExIDMzLjEyNDFDMTEuNTY5MyAzMi4xODU2IDExLjM2NDUgMzEuMDk5OCAxMS41NDU1IDMwLjA3MTRDMTEuNzA5NSAyOS4xNDA3IDEyLjMyMjEgMjguMzk3MiAxMi45MTE4IDI3LjY4MTNMMTIuOTExOCAyNy42ODEzQzEzLjAwOCAyNy41NjQ2IDEzLjEwMzUgMjcuNDQ4NyAxMy4xOTY0IDI3LjMzMjhDMTMuOTg1MiAyNi4zNDg4IDE0LjgxMjggMjUuMDU5NSAxNC45OTU5IDIzLjc4MjJDMTUuMDExNCAyMy42NzEyIDE1LjAyNTIgMjMuNTUwMiAxNS4wMzk3IDIzLjQyMjlMMTUuMDM5NyAyMy40MjI5TDE1LjAzOTcgMjMuNDIyOUMxNS4wNjU3IDIzLjE5NSAxNS4wOTM5IDIyLjk0NjkgMTUuMTM4MiAyMi42OTk3QzE1LjIwMzkgMjIuMjcyOCAxNS4zMzcxIDIxLjg1OTEgMTUuNTMyNiAyMS40NzQzQzE1LjY2NiAyMS4yMjIgMTUuODQxNyAyMC45OTQ2IDE2LjA1MiAyMC44MDIxQzE2LjE2MTYgMjAuNjk5OSAxNi4yMzM5IDIwLjU2MzcgMTYuMjU3NCAyMC40MTUzQzE2LjI4MDggMjAuMjY3IDE2LjI1NCAyMC4xMTUgMTYuMTgxMyAxOS45ODM3TDExLjk2NTggMTIuMzY3M0wxOC4wMjA3IDE5Ljg3MzNDMTguMDg5NyAxOS45NjAzIDE4LjE3NjggMjAuMDMxIDE4LjI3NiAyMC4wODAzQzE4LjM3NTIgMjAuMTI5NiAxOC40ODQgMjAuMTU2NCAxOC41OTQ2IDIwLjE1ODhDMTguNzA1MyAyMC4xNjEyIDE4LjgxNTEgMjAuMTM5MSAxOC45MTYzIDIwLjA5NEMxOS4wMTc1IDIwLjA0OSAxOS4xMDc2IDE5Ljk4MjEgMTkuMTgwMiAxOS44OTgyQzE5LjI1NjkgMTkuODA4NCAxOS4zMDA0IDE5LjY5NDcgMTkuMzAzMyAxOS41NzYzQzE5LjMwNjMgMTkuNDU4IDE5LjI2ODUgMTkuMzQyMyAxOS4xOTYzIDE5LjI0ODdDMTguOTE0OCAxOC44ODczIDE4LjYyMTggMTguNTIxIDE4LjMzMDIgMTguMTU2M0wxOC4zMyAxOC4xNTZDMTguMjEyIDE4LjAwODUgMTguMDk0MyAxNy44NjEzIDE3Ljk3NzYgMTcuNzE0OEwxNi40NTM5IDE1LjgyMDVMMTMuMzk1NyAxMi4wMzgyTDEwIDhMMTMuNzg4IDExLjY5OTRMMTcuMDQzMyAxNS4zMTQ5TDE4LjY2NzMgMTcuMTI3QzE4LjgxNjUgMTcuMjk1OCAxOC45NjU3IDE3LjQ2MzEgMTkuMTE0OCAxNy42MzAzQzE5LjUwNDQgMTguMDY3MSAxOS44OTQgMTguNTAzOSAyMC4yODM2IDE4Ljk2NzNMMjAuMzcyIDE5LjA3NTVMMjAuMzkxNCAxOS4yNDMzQzIwLjQxNzYgMTkuNDcwOCAyMC40MDQ1IDE5LjcwMTIgMjAuMzUyNiAxOS45MjQyWk0zNS45MjQ3IDIyLjQ2OTdMMzUuOTMxMSAyMi40Nzk1QzM1LjkzIDIxLjY3MTkgMzUuNDMyMiAyMC4zMzk0IDM0LjQyNDcgMTkuMDU3N0wzNC40MDEgMTkuMDI2M0MzNC4wOTA2IDE4LjY0MSAzMy43NTI0IDE4LjI3OTIgMzMuMzg5MSAxNy45NDM4QzMzLjMyMTIgMTcuODc3OCAzMy4yNDggMTcuODEyOCAzMy4xNzM2IDE3Ljc0NzlDMzIuNzA4MSAxNy4zNDAxIDMyLjE5OTMgMTYuOTg1IDMxLjY1NjQgMTYuNjg5MkwzMS42MTc2IDE2LjY2OTdDMjkuOTExOCAxNS43MzY2IDI3LjY5MiAxNS4yNTYgMjQuOTU0OSAxNS43OTcyQzI0LjU4NzMgMTUuMzQ4OSAyNC4xOTE0IDE0LjkyNDggMjMuNzY5NiAxNC41Mjc1QzIzLjEyMzYgMTMuOTA5MSAyMi4zNjMyIDEzLjQyNDEgMjEuNTMxNSAxMy4wOTk3QzIwLjcwNzIgMTIuNzk2NiAxOS44MjQ0IDEyLjY4ODQgMTguOTUxNyAxMi43ODM2QzE5Ljc5MjkgMTIuODU5NyAyMC42MTIzIDEzLjA5NDcgMjEuMzY2NiAxMy40NzY0QzIyLjA5NTEgMTMuODY4NSAyMi43NTEyIDE0LjM4MzMgMjMuMzA2MiAxNC45OTg0QzIzLjg2ODggMTUuNjI2MyAyNC4zOTc2IDE2LjI4MzkgMjQuODkwMyAxNi45Njg1TDI1LjAxMzkgMTcuMTMwMkMyNS40OTYgMTcuNzYwOSAyNS45ODY4IDE4LjQwMyAyNi41OTgyIDE4Ljk3NDRDMjYuOTM0OCAxOS4yOTI1IDI3LjMxMDMgMTkuNTY2NCAyNy43MTU3IDE5Ljc4OTVDMjcuODIzNCAxOS44NDQ3IDI3LjkzMjMgMTkuODk2NiAyOC4wMzkgMTkuOTQyMUMyOC4xNDU2IDE5Ljk4NzYgMjguMjQ1OCAyMC4wMjk4IDI4LjM1MzYgMjAuMDY4OEMyOC41NjE2IDIwLjE0OTkgMjguNzc3MSAyMC4yMTcxIDI4Ljk5MjYgMjAuMjc4OEMyOS44NTQ3IDIwLjUyNTYgMzAuNzM3MiAyMC42MTQzIDMxLjU5OTMgMjAuNjYyQzMxLjcxOTIgMjAuNjY4MyAzMS44Mzg5IDIwLjY3NDIgMzEuOTU4MSAyMC42ODAxTDMxLjk1ODMgMjAuNjgwMUMzMi4yNjYyIDIwLjY5NTQgMzIuNTcxMyAyMC43MTA1IDMyLjg3MTkgMjAuNzMyM0MzMy4yODM3IDIwLjc1NjkgMzMuNjkyMiAyMC44MjE0IDM0LjA5MTcgMjAuOTI1QzM0LjY5MTggMjEuMDgyMiAzNS4yMjAxIDIxLjQ0MTMgMzUuNTg4NSAyMS45NDI1QzM1LjcxMzcgMjIuMTA5NSAzNS44MjYxIDIyLjI4NTcgMzUuOTI0NyAyMi40Njk3Wk0zMy40MDEzIDE3Ljk0NTFDMzMuMzU4IDE3LjkwNDkgMzMuMzEzOSAxNy44NjUxIDMzLjI3IDE3LjgyNTRMMzMuMjcgMTcuODI1NEMzMy4yNDE4IDE3Ljc5OTkgMzMuMjEzNiAxNy43NzQ1IDMzLjE4NTggMTcuNzQ5MUMzMy4yMDczIDE3Ljc2ODggMzMuMjI4OCAxNy43ODg3IDMzLjI1MDMgMTcuODA4N0MzMy4zMDA5IDE3Ljg1NTYgMzMuMzUxNCAxNy45MDI1IDMzLjQwMTMgMTcuOTQ1MVpNMzIuMzIzOCAyNS45MTcyQzI5LjU1MTYgMjQuNzg3MiAyNi42NTE4IDIzLjYwNTEgMjcuMDgzNSAyMC4yODc1QzI4LjAwOTEgMjEuMjgwMiAyOS40NjIgMjEuNDg4NCAzMS4wNDIyIDIxLjcxNDlDMzIuNDc1NyAyMS45MjAzIDM0LjAxMzkgMjIuMTQwNyAzNS4zNTgzIDIyLjk3NTNDMzguNTMwNiAyNC45NDMzIDM4LjA2NzMgMjguNzY2NiAzNi45ODk3IDMwLjE3MzlDMzcuMDg2OSAyNy44NTg3IDM0Ljc1NDQgMjYuOTA4IDMyLjMyMzggMjUuOTE3MlpNMjEuMTU1MSAyNC4yNTY3QzIxLjg4NjggMjQuMTg2MyAyMy40NDYxIDIzLjgwNDIgMjIuNzQ4OSAyMi41NzEyQzIyLjU5ODkgMjIuMzIwNCAyMi4zODE1IDIyLjExNzIgMjIuMTIxNyAyMS45ODQ4QzIxLjg2MTkgMjEuODUyNSAyMS41NzAyIDIxLjc5NjUgMjEuMjgwMSAyMS44MjMyQzIwLjk4NTggMjEuODU1IDIwLjcwODIgMjEuOTc2OSAyMC40ODUyIDIyLjE3MjVDMjAuMjYyMiAyMi4zNjgxIDIwLjEwNDQgMjIuNjI3OCAyMC4wMzM0IDIyLjkxNjVDMTkuODE2OCAyMy43MjMgMjAuMDQ2MyAyNC4zNjQ5IDIxLjE1NTEgMjQuMjU2N1pNMjAuOTQ0OCAxNC41MDE0QzIwLjQ4NTggMTMuOTY4OCAxOS43NzM1IDEzLjY4OTUgMTkuMDc1MiAxMy41ODc4QzE5LjA0OTEgMTMuNzYyNSAxOS4wMzI2IDEzLjkzODUgMTkuMDI1NyAxNC4xMTVDMTguOTk0NCAxNS41Njg3IDE5LjUwODQgMTcuMTY1NCAyMC41MDMgMTguMjc1QzIwLjgyMTIgMTguNjMzNyAyMS4yMDQ5IDE4LjkyNzYgMjEuNjMzNCAxOS4xNDFDMjEuODgxMiAxOS4yNjIyIDIyLjUzODYgMTkuNTYzMSAyMi43ODIxIDE5LjI5MjVDMjIuODAwNiAxOS4yNjc3IDIyLjgxMjMgMTkuMjM4NCAyMi44MTU5IDE5LjIwNzZDMjIuODE5NSAxOS4xNzY4IDIyLjgxNDkgMTkuMTQ1NiAyMi44MDI2IDE5LjExNzJDMjIuNzYyMiAxOS4wMDEzIDIyLjY4NDMgMTguODk2MSAyMi42MDY5IDE4Ljc5MTdDMjIuNTUyIDE4LjcxNzcgMjIuNDk3NCAxOC42NDQxIDIyLjQ1NjcgMTguNTY3MkMyMi40MTU1IDE4LjQ4OTggMjIuMzcxNCAxOC40MTQyIDIyLjMyNzQgMTguMzM4OEwyMi4zMjc0IDE4LjMzODhDMjIuMjQ0NyAxOC4xOTcgMjIuMTYyMiAxOC4wNTU1IDIyLjA5ODkgMTcuOTAxNUMyMS45MzE5IDE3LjQ5ODQgMjEuODQ1IDE3LjA2OTggMjEuNzU4MyAxNi42NDI1TDIxLjc1ODMgMTYuNjQyNEwyMS43NTgzIDE2LjY0MjRMMjEuNzU4MyAxNi42NDIzTDIxLjc1ODIgMTYuNjQyMkwyMS43NTgyIDE2LjY0MjFMMjEuNzU4MiAxNi42NDJDMjEuNzQwOSAxNi41NTY2IDIxLjcyMzYgMTYuNDcxMiAyMS43MDU2IDE2LjM4NkMyMS41NzMxIDE1LjcyNjggMjEuNDAzOSAxNS4wMzQgMjAuOTQ0OCAxNC41MDE0Wk0zMC43NTI0IDI2LjA5OEMzMC4wNDAzIDI4LjA5NDMgMzEuMTg4OCAyOS43ODA0IDMyLjMzMDYgMzEuNDU2NkMzMy42MDc3IDMzLjMzMTUgMzQuODc2NCAzNS4xOTQgMzMuNTIyOCAzNy40NjQyQzM2LjE1MzIgMzYuMzczMSAzNy40MDIxIDMzLjA3NjkgMzYuMzEwNSAzMC40NjE2QzM1LjYyMjcgMjguODA3NCAzMy45NjQ5IDI3LjkxMDYgMzIuNDI2MSAyNy4wNzgzTDMyLjQyNjEgMjcuMDc4M0wzMi40MjYgMjcuMDc4MkMzMS44MjkgMjYuNzU1MyAzMS4yNDk5IDI2LjQ0MjEgMzAuNzUyNCAyNi4wOThaTTIzLjA1NTIgMzAuODYzM0MyMi41Nzg1IDMxLjA1ODcgMjIuMTI5IDMxLjMxNTIgMjEuNzE3OSAzMS42MjY1QzIyLjY1MjcgMzEuMjg1OSAyMy42MzM5IDMxLjA5MTQgMjQuNjI3NCAzMS4wNDk1QzI0LjgwNzQgMzEuMDM4OCAyNC45ODg3IDMxLjAzMDQgMjUuMTcxNSAzMS4wMjE5TDI1LjE3MTcgMzEuMDIxOUwyNS4xNzIgMzEuMDIxOUMyNS40ODc4IDMxLjAwNzMgMjUuODA4NSAzMC45OTI1IDI2LjEzNiAzMC45NjUxQzI2LjY3MjkgMzAuOTI4NSAyNy4yMDI1IDMwLjgxOTIgMjcuNzEwMyAzMC42NDAzQzI4LjI0MjUgMzAuNDUzMyAyOC43MjY4IDMwLjE1MDEgMjkuMTI4NCAyOS43NTI3QzI5LjUzNDIgMjkuMzQyNCAyOS44MTg4IDI4LjgyNzIgMjkuOTUwNiAyOC4yNjQyQzMwLjA2NjYgMjcuNzMyNCAzMC4wNTAzIDI3LjE4MDEgMjkuOTAzMiAyNi42NTYyQzI5Ljc1NiAyNi4xMzIyIDI5LjQ4MjUgMjUuNjUyOCAyOS4xMDY5IDI1LjI2MDNDMjkuMjg4MSAyNS43MjIxIDI5LjM5OTYgMjYuMjA4NCAyOS40Mzc3IDI2LjcwMzNDMjkuNDcwNSAyNy4xNjQgMjkuNDA4MSAyNy42MjY1IDI5LjI1NDUgMjguMDYxOEMyOS4xMDQ1IDI4LjQ3NDQgMjguODU5MyAyOC44NDU0IDI4LjUzOSAyOS4xNDQzQzI4LjIwODEgMjkuNDQ2MiAyNy44MjUgMjkuNjg0NiAyNy40MDg2IDI5Ljg0NzlDMjYuODI5OSAzMC4wODIxIDI2LjE3NTUgMzAuMTc3OSAyNS40OTM5IDMwLjI3NzdDMjUuMTgzIDMwLjMyMzIgMjQuODY2NCAzMC4zNjk2IDI0LjU0ODcgMzAuNDMwM0MyNC4wMzc4IDMwLjUyNDMgMjMuNTM3NCAzMC42Njk0IDIzLjA1NTIgMzAuODYzM1pNMzEuMzE4NyAzOS4xMDQ2TDMxLjI3MyAzOS4xNDE1TDMxLjI3MyAzOS4xNDE2QzMxLjE1MjUgMzkuMjM4OSAzMS4wMzAxIDM5LjMzNzkgMzAuODk4MiAzOS40MjY4QzMwLjczMDEgMzkuNTM4IDMwLjU1NCAzOS42MzY1IDMwLjM3MTMgMzkuNzIxMkMyOS45OTA4IDM5LjkwNzcgMjkuNTcyNiA0MC4wMDI5IDI5LjE0OTMgMzkuOTk5NEMyOC4wMDI4IDM5Ljk3NzggMjcuMTkyNCAzOS4xMjA1IDI2LjcxODMgMzguMTUxNkMyNi41OTQgMzcuODk3NyAyNi40ODQ1IDM3LjYzNTkgMjYuMzc1IDM3LjM3NDFMMjYuMzc1IDM3LjM3NDFDMjYuMTk5NyAzNi45NTUxIDI2LjAyNDQgMzYuNTM2MSAyNS43ODgzIDM2LjE0OUMyNS4yMzk5IDM1LjI0OTUgMjQuMzAxMyAzNC41MjUzIDIzLjIwMjIgMzQuNjU5NUMyMi43NTM5IDM0LjcxNTggMjIuMzMzNiAzNC45MTgyIDIyLjA4NDcgMzUuMzA5QzIxLjQyOTUgMzYuMzI5OCAyMi4zNzAzIDM3Ljc1OTggMjMuNTY5NiAzNy41NTczQzIzLjY3MTYgMzcuNTQxNyAyMy43NzE0IDM3LjUxNDEgMjMuODY3IDM3LjQ3NTFDMjMuOTYyMyAzNy40MzQzIDI0LjA1MTIgMzcuMzggMjQuMTMxIDM3LjMxMzhDMjQuMjk4NiAzNy4xNzM2IDI0LjQyNDggMzYuOTkwMyAyNC40OTYzIDM2Ljc4MzRDMjQuNTc1MSAzNi41Njc2IDI0LjU5MjYgMzYuMzM0MSAyNC41NDcgMzYuMTA5QzI0LjQ5NzggMzUuODczNiAyNC4zNTk0IDM1LjY2NjggMjQuMTYxMiAzNS41MzJDMjQuMzkxNyAzNS42NDA0IDI0LjU3MTMgMzUuODM0NSAyNC42NjIzIDM2LjA3MzJDMjQuNzU2NiAzNi4zMTkgMjQuNzgwOSAzNi41ODYyIDI0LjczMjMgMzYuODQ1MUMyNC42ODUyIDM3LjExNDcgMjQuNTY2OSAzNy4zNjY3IDI0LjM4OTYgMzcuNTc0N0MyNC4yOTU1IDM3LjY4MTYgMjQuMTg2NiAzNy43NzQ2IDI0LjA2NjQgMzcuODUwN0MyMy45NDcyIDM3LjkyNTkgMjMuODE5NSAzNy45ODY2IDIzLjY4NiAzOC4wMzE1QzIzLjQxNTMgMzguMTI0NCAyMy4xMjcyIDM4LjE1NDQgMjIuODQzMyAzOC4xMTkyQzIyLjQ0NDcgMzguMDYyMSAyMi4wNjg4IDM3Ljg5ODMgMjEuNzU1IDM3LjY0NUMyMS42OTcgMzcuNTk5IDIxLjY0MTQgMzcuNTUwOCAyMS41ODc1IDM3LjUwMDhDMjEuMzc0IDM3LjMxNTggMjEuMTgwMiAzNy4xMDg3IDIxLjAwOTMgMzYuODgyOUMyMC45MzI2IDM2Ljc5ODEgMjAuODU0NyAzNi43MTQ0IDIwLjc3MzMgMzYuNjM0QzIwLjM4OTEgMzYuMjI5IDE5LjkzNTggMzUuODk2NSAxOS40MzQ5IDM1LjY1MjJDMTkuMDg5NSAzNS40OTk4IDE4LjcyOCAzNS4zODcyIDE4LjM1NzQgMzUuMzE2NkMxOC4xNzA5IDM1LjI3NzYgMTcuOTgyNCAzNS4yNDk1IDE3Ljc5MzggMzUuMjI1N0MxNy43NzMzIDM1LjIyMzYgMTcuNzM0IDM1LjIxNjcgMTcuNjg1IDM1LjIwODJMMTcuNjg0NyAzNS4yMDgxTDE3LjY4NDYgMzUuMjA4MUwxNy42ODQ2IDM1LjIwODFMMTcuNjg0NiAzNS4yMDgxTDE3LjY4NDUgMzUuMjA4MUMxNy41MjcxIDM1LjE4MDYgMTcuMjcxMSAzNS4xMzYgMTcuMjI1OSAzNS4xNzhDMTcuODA4OCAzNC42MzkgMTguNDQ0MSAzNC4xNjAzIDE5LjEyMjQgMzMuNzQ5MUMxOS44MTg5IDMzLjMzNCAyMC41NjY3IDMzLjAxMjYgMjEuMzQ2NiAzMi43OTMzQzIyLjE1NTEgMzIuNTY0NyAyMy4wMDA5IDMyLjQ5OTUgMjMuODM0NyAzMi42MDE3QzI0LjI2MzkgMzIuNjUzNSAyNC42ODQzIDMyLjc2MjcgMjUuMDg0NyAzMi45MjY0QzI1LjUwNDIgMzMuMDk0OCAyNS44OTE0IDMzLjMzNTEgMjYuMjI5MSAzMy42MzY2QzI2LjU2MzIgMzMuOTUyOCAyNi44MzMzIDM0LjMzMTEgMjcuMDI0MyAzNC43NTA0QzI3LjE5NjggMzUuMTQzMSAyNy4zMjU0IDM1LjU1MzcgMjcuNDA3OSAzNS45NzQ3QzI3LjQ1MjEgMzYuMjAxMyAyNy40ODU1IDM2LjQ1MDIgMjcuNTE5OSAzNi43MDc5TDI3LjUyIDM2LjcwNzlMMjcuNTIgMzYuNzA4TDI3LjUyIDM2LjcwOEMyNy42NzcxIDM3Ljg4MjMgMjcuODU4NSAzOS4yMzcyIDI5LjIwNDMgMzkuNDczM0MyOS4yODk4IDM5LjQ5IDI5LjM3NjEgMzkuNTAyMyAyOS40NjI5IDM5LjUxMDJMMjkuNzMxMiAzOS41MTY2QzI5LjkxNTcgMzkuNTAzNCAzMC4wOTkgMzkuNDc3IDMwLjI3OTcgMzkuNDM3NkMzMC42NTQxIDM5LjM0OTIgMzEuMDE5IDM5LjIyNDEgMzEuMzY5MSAzOS4wNjQyTDMxLjMxODcgMzkuMTA0NlpNMjEuMDgwMSAzNi45NjE5QzIxLjExMjMgMzYuOTk4OSAyMS4xNDQ5IDM3LjAzNTUgMjEuMTc3OSAzNy4wNzE4QzIxLjE2NDQgMzcuMDU2NyAyMS4xNTEgMzcuMDQxNSAyMS4xMzc1IDM3LjAyNjRMMjEuMTM3NSAzNy4wMjY0TDIxLjEzNzUgMzcuMDI2NEwyMS4xMzc1IDM3LjAyNjRDMjEuMTE4NCAzNy4wMDQ5IDIxLjA5OTMgMzYuOTgzNCAyMS4wODAxIDM2Ljk2MTlaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4K',\n protocol: 'uniswap_v3',\n slippage: true,\n fees: [100, 500, 3000, 10000],\n blockchains: ['ethereum', 'bsc', 'polygon', 'optimism', 'arbitrum', 'base', 'avalanche', 'worldchain'],\n ethereum: {\n router: {\n address: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n bsc: {\n router: {\n address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n polygon: {\n router: {\n address: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n optimism: {\n router: {\n address: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n arbitrum: {\n router: {\n address: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n base: {\n router: {\n address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n avalanche: {\n router: {\n address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n },\n worldchain: {\n router: {\n address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n api: UniswapV3.ROUTER\n },\n factory: {\n address: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n api: UniswapV3.FACTORY\n },\n pool: {\n api: UniswapV3.POOL\n },\n quoter: {\n address: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n api: UniswapV3.QUOTER\n },\n permit: {\n address: '0x000000000022d473030f116ddee9f6b43ac78ba3',\n api: UniswapV3.PERMIT2\n }\n }\n};\n\nvar uniswap_v3 = function uniswap_v3(scope) {\n return new Exchange(Object.assign(exchange$9, {\n scope: scope,\n findPath: function findPath(args) {\n return UniswapV3.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$9\n }));\n },\n pathExists: function pathExists(args) {\n return UniswapV3.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$9\n }));\n },\n getAmounts: function getAmounts(args) {\n return UniswapV3.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$9\n }));\n },\n getPrep: function getPrep(args) {\n return UniswapV3.getPrep(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$9\n }));\n },\n getTransaction: function getTransaction(args) {\n return UniswapV3.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$9\n }));\n }\n }));\n};\n\nvar pathExists = /*#__PURE__*/function () {\n var _ref136 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee68(_ref135) {\n var blockchain, path;\n return _regeneratorRuntime.wrap(function _callee68$(_context68) {\n while (1) {\n switch (_context68.prev = _context68.next) {\n case 0:\n blockchain = _ref135.blockchain, path = _ref135.path;\n\n if (!(!path || path.length !== 2)) {\n _context68.next = 3;\n break;\n }\n\n return _context68.abrupt(\"return\", false);\n\n case 3:\n return _context68.abrupt(\"return\", path.includes(Blockchains[blockchain].currency.address) && path.includes(Blockchains[blockchain].wrapped.address));\n\n case 4:\n case \"end\":\n return _context68.stop();\n }\n }\n }, _callee68);\n }));\n\n return function pathExists(_x70) {\n return _ref136.apply(this, arguments);\n };\n}();\n\nvar findPath = /*#__PURE__*/function () {\n var _ref138 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee69(_ref137) {\n var blockchain, tokenIn, tokenOut, path;\n return _regeneratorRuntime.wrap(function _callee69$(_context69) {\n while (1) {\n switch (_context69.prev = _context69.next) {\n case 0:\n blockchain = _ref137.blockchain, tokenIn = _ref137.tokenIn, tokenOut = _ref137.tokenOut;\n\n if (!(![tokenIn, tokenOut].includes(Blockchains[blockchain].currency.address) || ![tokenIn, tokenOut].includes(Blockchains[blockchain].wrapped.address))) {\n _context69.next = 3;\n break;\n }\n\n return _context69.abrupt(\"return\", {\n path: undefined,\n exchangePath: undefined\n });\n\n case 3:\n path = [tokenIn, tokenOut];\n return _context69.abrupt(\"return\", {\n path: path,\n exchangePath: path\n });\n\n case 5:\n case \"end\":\n return _context69.stop();\n }\n }\n }, _callee69);\n }));\n\n return function findPath(_x71) {\n return _ref138.apply(this, arguments);\n };\n}();\n\nvar getAmounts = /*#__PURE__*/function () {\n var _ref140 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee70(_ref139) {\n var path, block, tokenIn, tokenOut, amountOut, amountIn, amountInMax, amountOutMin;\n return _regeneratorRuntime.wrap(function _callee70$(_context70) {\n while (1) {\n switch (_context70.prev = _context70.next) {\n case 0:\n path = _ref139.path, block = _ref139.block, tokenIn = _ref139.tokenIn, tokenOut = _ref139.tokenOut, amountOut = _ref139.amountOut, amountIn = _ref139.amountIn, amountInMax = _ref139.amountInMax, amountOutMin = _ref139.amountOutMin;\n\n if (amountOut) {\n amountIn = amountInMax = amountOutMin = amountOut;\n } else if (amountIn) {\n amountOut = amountInMax = amountOutMin = amountIn;\n } else if (amountOutMin) {\n amountIn = amountInMax = amountOut = amountOutMin;\n } else if (amountInMax) {\n amountOut = amountOutMin = amountIn = amountInMax;\n }\n\n return _context70.abrupt(\"return\", {\n amountOut: amountOut,\n amountIn: amountIn,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n\n case 3:\n case \"end\":\n return _context70.stop();\n }\n }\n }, _callee70);\n }));\n\n return function getAmounts(_x72) {\n return _ref140.apply(this, arguments);\n };\n}();\n\nvar getTransaction = function getTransaction(_ref141) {\n var exchange = _ref141.exchange,\n blockchain = _ref141.blockchain,\n path = _ref141.path,\n amountIn = _ref141.amountIn,\n amountInMax = _ref141.amountInMax,\n amountOut = _ref141.amountOut,\n amountOutMin = _ref141.amountOutMin,\n amountInInput = _ref141.amountInInput,\n amountOutInput = _ref141.amountOutInput,\n amountInMaxInput = _ref141.amountInMaxInput,\n amountOutMinInput = _ref141.amountOutMinInput,\n account = _ref141.account;\n var transaction = {\n blockchain: blockchain,\n from: account,\n to: exchange[blockchain].router.address,\n api: exchange[blockchain].router.api\n };\n\n if (path[0] === Blockchains[blockchain].currency.address && path[1] === Blockchains[blockchain].wrapped.address) {\n transaction.method = 'deposit';\n transaction.value = amountIn.toString();\n return transaction;\n } else if (path[0] === Blockchains[blockchain].wrapped.address && path[1] === Blockchains[blockchain].currency.address) {\n transaction.method = 'withdraw';\n transaction.value = 0;\n transaction.params = {\n wad: amountIn\n };\n return transaction;\n }\n};\n\nvar WETH = [{\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"guy\",\n \"type\": \"address\"\n }, {\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"approve\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"withdraw\",\n \"outputs\": [],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint8\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"balanceOf\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [{\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"transfer\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"payable\": false,\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"constant\": false,\n \"inputs\": [],\n \"name\": \"deposit\",\n \"outputs\": [],\n \"payable\": true,\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"constant\": true,\n \"inputs\": [{\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"allowance\",\n \"outputs\": [{\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"payable\": false,\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"payable\": true,\n \"stateMutability\": \"payable\",\n \"type\": \"fallback\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"name\": \"guy\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Approval\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Transfer\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"dst\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Deposit\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"name\": \"src\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"name\": \"wad\",\n \"type\": \"uint256\"\n }],\n \"name\": \"Withdrawal\",\n \"type\": \"event\"\n}];\nvar WETH$1 = {\n findPath: findPath,\n pathExists: pathExists,\n getAmounts: getAmounts,\n getTransaction: getTransaction,\n WETH: WETH\n};\nvar exchange$8 = {\n name: 'wavax',\n label: 'Wrapped Avax',\n logo: Blockchains.avalanche.wrapped.logo,\n protocol: 'weth',\n slippage: false,\n blockchains: ['avalanche'],\n avalanche: {\n router: {\n address: Blockchains.avalanche.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar wavax = function wavax(scope) {\n return new Exchange(Object.assign(exchange$8, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$8\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$8\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$8\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$8\n }));\n }\n }));\n};\n\nvar exchange$7 = {\n name: 'wbnb',\n label: 'Wrapped BNB',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOTIgMTkyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxOTIgMTkyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0YwQjkwQjt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01NCw0MS4xbDQyLTI0LjJsNDIsMjQuMmwtMTUuNCw4LjlMOTYsMzQuOUw2OS40LDUwTDU0LDQxLjF6IE0xMzgsNzEuN2wtMTUuNC04LjlMOTYsNzhMNjkuNCw2Mi43bC0xNS40LDl2MTgKCUw4MC42LDEwNXYzMC41bDE1LjQsOWwxNS40LTlWMTA1TDEzOCw4OS43VjcxLjd6IE0xMzgsMTIwLjN2LTE4bC0xNS40LDguOXYxOEMxMjIuNiwxMjkuMSwxMzgsMTIwLjMsMTM4LDEyMC4zeiBNMTQ4LjksMTI2LjQKCWwtMjYuNiwxNS4zdjE4bDQyLTI0LjJWODdsLTE1LjQsOUMxNDguOSw5NiwxNDguOSwxMjYuNCwxNDguOSwxMjYuNHogTTEzMy41LDU2LjRsMTUuNCw5djE4bDE1LjQtOXYtMThsLTE1LjQtOUwxMzMuNSw1Ni40CglMMTMzLjUsNTYuNHogTTgwLjYsMTQ4LjN2MThsMTUuNCw5bDE1LjQtOXYtMThMOTYsMTU3LjFMODAuNiwxNDguM3ogTTU0LDEyMC4zbDE1LjQsOXYtMTguMUw1NCwxMDIuM0w1NCwxMjAuM0w1NCwxMjAuM3oKCSBNODAuNiw1Ni40bDE1LjQsOWwxNS40LTlMOTYsNDcuNUM5Niw0Ny40LDgwLjYsNTYuNCw4MC42LDU2LjRMODAuNiw1Ni40eiBNNDMuMSw2NS40bDE1LjQtOWwtMTUuNC05bC0xNS40LDl2MThsMTUuNCw5TDQzLjEsNjUuNAoJTDQzLjEsNjUuNHogTTQzLjEsOTUuOUwyNy43LDg3djQ4LjVsNDIsMjQuMnYtMThsLTI2LjYtMTUuM1Y5NS45TDQzLjEsOTUuOXoiLz4KPC9zdmc+Cg==',\n slippage: false,\n blockchains: ['bsc'],\n bsc: {\n router: {\n address: Blockchains.bsc.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar wbnb = function wbnb(scope) {\n return new Exchange(Object.assign(exchange$7, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$7\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$7\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$7\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$7\n }));\n }\n }));\n};\n\nvar exchange$6 = {\n name: 'weth',\n label: 'Wrapped Ethereum',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0iTGF5ZXJfMSIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB0ZXh0LXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiCgkgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjgzLjUgMjgzLjU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMzQzNDM0O30KCS5zdDF7ZmlsbDojOEM4QzhDO30KCS5zdDJ7ZmlsbDojM0MzQzNCO30KCS5zdDN7ZmlsbDojMTQxNDE0O30KCS5zdDR7ZmlsbDojMzkzOTM5O30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLjcsMjUuOWwtMS41LDUuMnYxNTMuM2wxLjUsMS41bDcxLjItNDIuMUwxNDEuNywyNS45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNS45TDcwLjYsMTQzLjhsNzEuMSw0Mi4xdi03NC40VjI1Ljl6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTE0MS43LDE5OS40bC0wLjgsMS4xdjU0LjZsMC44LDIuNWw3MS4yLTEwMC4zTDE0MS43LDE5OS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNTcuNnYtNTguMmwtNzEuMS00Mi4xTDE0MS43LDI1Ny42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNDEuNywxODUuOWw3MS4yLTQyLjFsLTcxLjItMzIuM1YxODUuOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNNzAuNiwxNDMuOGw3MS4xLDQyLjF2LTc0LjRMNzAuNiwxNDMuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K',\n protocol: 'weth',\n slippage: false,\n blockchains: ['ethereum'],\n ethereum: {\n router: {\n address: Blockchains.ethereum.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar weth = function weth(scope) {\n return new Exchange(Object.assign(exchange$6, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$6\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$6\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$6\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$6\n }));\n }\n }));\n};\n\nvar exchange$5 = {\n name: 'weth_arbitrum',\n label: 'Wrapped Ethereum',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0iTGF5ZXJfMSIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB0ZXh0LXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiCgkgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjgzLjUgMjgzLjU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMzQzNDM0O30KCS5zdDF7ZmlsbDojOEM4QzhDO30KCS5zdDJ7ZmlsbDojM0MzQzNCO30KCS5zdDN7ZmlsbDojMTQxNDE0O30KCS5zdDR7ZmlsbDojMzkzOTM5O30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLjcsMjUuOWwtMS41LDUuMnYxNTMuM2wxLjUsMS41bDcxLjItNDIuMUwxNDEuNywyNS45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNS45TDcwLjYsMTQzLjhsNzEuMSw0Mi4xdi03NC40VjI1Ljl6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTE0MS43LDE5OS40bC0wLjgsMS4xdjU0LjZsMC44LDIuNWw3MS4yLTEwMC4zTDE0MS43LDE5OS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNTcuNnYtNTguMmwtNzEuMS00Mi4xTDE0MS43LDI1Ny42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNDEuNywxODUuOWw3MS4yLTQyLjFsLTcxLjItMzIuM1YxODUuOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNNzAuNiwxNDMuOGw3MS4xLDQyLjF2LTc0LjRMNzAuNiwxNDMuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K',\n protocol: 'weth',\n slippage: false,\n blockchains: ['arbitrum'],\n arbitrum: {\n router: {\n address: Blockchains.arbitrum.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar weth_arbitrum = function weth_arbitrum(scope) {\n return new Exchange(Object.assign(exchange$5, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$5\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$5\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$5\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$5\n }));\n }\n }));\n};\n\nvar exchange$4 = {\n name: 'weth_optimism',\n label: 'Wrapped Ethereum',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0iTGF5ZXJfMSIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB0ZXh0LXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiCgkgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjgzLjUgMjgzLjU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMzQzNDM0O30KCS5zdDF7ZmlsbDojOEM4QzhDO30KCS5zdDJ7ZmlsbDojM0MzQzNCO30KCS5zdDN7ZmlsbDojMTQxNDE0O30KCS5zdDR7ZmlsbDojMzkzOTM5O30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLjcsMjUuOWwtMS41LDUuMnYxNTMuM2wxLjUsMS41bDcxLjItNDIuMUwxNDEuNywyNS45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNS45TDcwLjYsMTQzLjhsNzEuMSw0Mi4xdi03NC40VjI1Ljl6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTE0MS43LDE5OS40bC0wLjgsMS4xdjU0LjZsMC44LDIuNWw3MS4yLTEwMC4zTDE0MS43LDE5OS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNTcuNnYtNTguMmwtNzEuMS00Mi4xTDE0MS43LDI1Ny42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNDEuNywxODUuOWw3MS4yLTQyLjFsLTcxLjItMzIuM1YxODUuOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNNzAuNiwxNDMuOGw3MS4xLDQyLjF2LTc0LjRMNzAuNiwxNDMuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K',\n protocol: 'weth',\n slippage: false,\n blockchains: ['optimism'],\n optimism: {\n router: {\n address: Blockchains.optimism.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar weth_optimism = function weth_optimism(scope) {\n return new Exchange(Object.assign(exchange$4, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$4\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$4\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$4\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$4\n }));\n }\n }));\n};\n\nvar exchange$3 = {\n name: 'weth_base',\n label: 'Wrapped Ethereum',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIKCSBpZD0iTGF5ZXJfMSIgaW1hZ2UtcmVuZGVyaW5nPSJvcHRpbWl6ZVF1YWxpdHkiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIiB0ZXh0LXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiCgkgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjgzLjUgMjgzLjU7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMzQzNDM0O30KCS5zdDF7ZmlsbDojOEM4QzhDO30KCS5zdDJ7ZmlsbDojM0MzQzNCO30KCS5zdDN7ZmlsbDojMTQxNDE0O30KCS5zdDR7ZmlsbDojMzkzOTM5O30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLjcsMjUuOWwtMS41LDUuMnYxNTMuM2wxLjUsMS41bDcxLjItNDIuMUwxNDEuNywyNS45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNS45TDcwLjYsMTQzLjhsNzEuMSw0Mi4xdi03NC40VjI1Ljl6Ii8+CgkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTE0MS43LDE5OS40bC0wLjgsMS4xdjU0LjZsMC44LDIuNWw3MS4yLTEwMC4zTDE0MS43LDE5OS40eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNDEuNywyNTcuNnYtNTguMmwtNzEuMS00Mi4xTDE0MS43LDI1Ny42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0xNDEuNywxODUuOWw3MS4yLTQyLjFsLTcxLjItMzIuM1YxODUuOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNNzAuNiwxNDMuOGw3MS4xLDQyLjF2LTc0LjRMNzAuNiwxNDMuOHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K',\n protocol: 'weth',\n slippage: false,\n blockchains: ['base'],\n base: {\n router: {\n address: Blockchains.base.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar weth_base = function weth_base(scope) {\n return new Exchange(Object.assign(exchange$3, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$3\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$3\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$3\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$3\n }));\n }\n }));\n};\n\nvar exchange$2 = {\n name: 'wftm',\n label: 'Wrapped Fantom',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTkyIDE5MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTkyIDE5MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0iY2lyY2xlIj4KCTxnIGlkPSJGYW50b20tY2lyY2xlIj4KCQk8Y2lyY2xlIGlkPSJPdmFsIiBmaWxsUnVsZT0iZXZlbm9kZCIgY2xpcFJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMxOTY5RkYiIGNsYXNzPSJzdDAiIGN4PSI5NiIgY3k9Ijk2IiByPSI4MC40Ii8+CgkJPHBhdGggaWQ9IlNoYXBlIiBmaWxsPSIjRkZGRkZGIiBkPSJNOTEuMSw0MS4yYzIuNy0xLjQsNi44LTEuNCw5LjUsMGwyNy42LDE0LjZjMS42LDAuOSwyLjUsMi4xLDIuNywzLjVoMHY3My4zCgkJCWMwLDEuNC0wLjksMi45LTIuNywzLjhsLTI3LjYsMTQuNmMtMi43LDEuNC02LjgsMS40LTkuNSwwbC0yNy42LTE0LjZjLTEuOC0wLjktMi42LTIuNC0yLjctMy44YzAtMC4xLDAtMC4zLDAtMC40bDAtNzIuNAoJCQljMC0wLjEsMC0wLjIsMC0wLjNsMC0wLjJoMGMwLjEtMS4zLDEtMi42LDIuNi0zLjVMOTEuMSw0MS4yeiBNMTI2LjYsOTkuOWwtMjYsMTMuN2MtMi43LDEuNC02LjgsMS40LTkuNSwwTDY1LjIsMTAwdjMyLjMKCQkJbDI1LjksMTMuNmMxLjUsMC44LDMuMSwxLjYsNC43LDEuN2wwLjEsMGMxLjUsMCwzLTAuOCw0LjYtMS41bDI2LjItMTMuOVY5OS45eiBNNTYuNSwxMzAuOWMwLDIuOCwwLjMsNC43LDEsNgoJCQljMC41LDEuMSwxLjMsMS45LDIuOCwyLjlsMC4xLDAuMWMwLjMsMC4yLDAuNywwLjQsMS4xLDAuN2wwLjUsMC4zbDEuNiwwLjlsLTIuMiwzLjdsLTEuNy0xLjFsLTAuMy0wLjJjLTAuNS0wLjMtMC45LTAuNi0xLjMtMC44CgkJCWMtNC4yLTIuOC01LjctNS45LTUuNy0xMi4zbDAtMC4ySDU2LjV6IE05My44LDgwLjVjLTAuMiwwLjEtMC40LDAuMS0wLjYsMC4yTDY1LjYsOTUuM2MwLDAtMC4xLDAtMC4xLDBsMCwwbDAsMGwwLjEsMGwyNy42LDE0LjYKCQkJYzAuMiwwLjEsMC40LDAuMiwwLjYsMC4yVjgwLjV6IE05OC4yLDgwLjV2MjkuOGMwLjItMC4xLDAuNC0wLjEsMC42LTAuMmwyNy42LTE0LjZjMCwwLDAuMSwwLDAuMSwwbDAsMGwwLDBsLTAuMSwwTDk4LjgsODAuNwoJCQlDOTguNiw4MC42LDk4LjQsODAuNSw5OC4yLDgwLjV6IE0xMjYuNiw2NC40bC0yNC44LDEzbDI0LjgsMTNWNjQuNHogTTY1LjIsNjQuNHYyNi4xbDI0LjgtMTNMNjUuMiw2NC40eiBNOTguNyw0NS4xCgkJCWMtMS40LTAuOC00LTAuOC01LjUsMEw2NS42LDU5LjdjMCwwLTAuMSwwLTAuMSwwbDAsMGwwLDBsMC4xLDBsMjcuNiwxNC42YzEuNCwwLjgsNCwwLjgsNS41LDBsMjcuNi0xNC42YzAsMCwwLjEsMCwwLjEsMGwwLDBsMCwwCgkJCWwtMC4xLDBMOTguNyw0NS4xeiBNMTMwLjcsNDYuNWwxLjcsMS4xbDAuMywwLjJjMC41LDAuMywwLjksMC42LDEuMywwLjhjNC4yLDIuOCw1LjcsNS45LDUuNywxMi4zbDAsMC4yaC00LjNjMC0yLjgtMC4zLTQuNy0xLTYKCQkJYy0wLjUtMS4xLTEuMy0xLjktMi44LTIuOWwtMC4xLTAuMWMtMC4zLTAuMi0wLjctMC40LTEuMS0wLjdsLTAuNS0wLjNsLTEuNi0wLjlMMTMwLjcsNDYuNXoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K',\n protocol: 'weth',\n slippage: false,\n blockchains: ['fantom'],\n fantom: {\n router: {\n address: Blockchains.fantom.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar wftm = function wftm(scope) {\n return new Exchange(Object.assign(exchange$2, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$2\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$2\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$2\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$2\n }));\n }\n }));\n};\n\nvar exchange$1 = {\n name: 'wmatic',\n label: 'Wrapped MATIC',\n logo: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0NS40IDQ1LjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ1LjQgNDUuNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiM4MjQ3RTU7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzEuOSwxNi42Yy0wLjctMC40LTEuNi0wLjQtMi4yLDBsLTUuMywzLjFsLTMuNSwybC01LjEsMy4xYy0wLjcsMC40LTEuNiwwLjQtMi4yLDBsLTQtMi40CgljLTAuNi0wLjQtMS4xLTEuMS0xLjEtMnYtNC42YzAtMC45LDAuNS0xLjYsMS4xLTJsNC0yLjNjMC43LTAuNCwxLjUtMC40LDIuMiwwbDQsMi40YzAuNywwLjQsMS4xLDEuMSwxLjEsMnYzLjFsMy41LTIuMXYtMy4yCgljMC0wLjktMC40LTEuNi0xLjEtMmwtNy41LTQuNGMtMC43LTAuNC0xLjUtMC40LTIuMiwwTDYsMTEuN2MtMC43LDAuNC0xLjEsMS4xLTEuMSwxLjh2OC43YzAsMC45LDAuNCwxLjYsMS4xLDJsNy42LDQuNAoJYzAuNywwLjQsMS41LDAuNCwyLjIsMGw1LjEtMi45bDMuNS0yLjFsNS4xLTIuOWMwLjctMC40LDEuNi0wLjQsMi4yLDBsNCwyLjNjMC43LDAuNCwxLjEsMS4xLDEuMSwydjQuNmMwLDAuOS0wLjQsMS42LTEuMSwyCglsLTMuOSwyLjNjLTAuNywwLjQtMS41LDAuNC0yLjIsMGwtNC0yLjNjLTAuNy0wLjQtMS4xLTEuMS0xLjEtMnYtMi45TDIxLDI4Ljd2My4xYzAsMC45LDAuNCwxLjYsMS4xLDJsNy41LDQuNAoJYzAuNywwLjQsMS41LDAuNCwyLjIsMGw3LjUtNC40YzAuNy0wLjQsMS4xLTEuMSwxLjEtMlYyM2MwLTAuOS0wLjQtMS42LTEuMS0yQzM5LjIsMjEsMzEuOSwxNi42LDMxLjksMTYuNnoiLz4KPC9zdmc+Cg==',\n protocol: 'weth',\n slippage: false,\n blockchains: ['polygon'],\n polygon: {\n router: {\n address: Blockchains.polygon.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar wmatic = function wmatic(scope) {\n return new Exchange(Object.assign(exchange$1, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$1\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$1\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$1\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange$1\n }));\n }\n }));\n};\n\nvar exchange = {\n name: 'wxdai',\n label: 'Wrapped XDAI',\n logo: Blockchains.gnosis.wrapped.logo,\n protocol: 'weth',\n slippage: false,\n blockchains: ['gnosis'],\n gnosis: {\n router: {\n address: Blockchains.gnosis.wrapped.address,\n api: WETH$1.WETH\n }\n }\n};\n\nvar wxdai = function wxdai(scope) {\n return new Exchange(Object.assign(exchange, {\n scope: scope,\n findPath: function findPath(args) {\n return WETH$1.findPath(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange\n }));\n },\n pathExists: function pathExists(args) {\n return WETH$1.pathExists(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange\n }));\n },\n getAmounts: function getAmounts(args) {\n return WETH$1.getAmounts(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange\n }));\n },\n getPrep: function getPrep(args) {},\n getTransaction: function getTransaction(args) {\n return WETH$1.getTransaction(_objectSpread(_objectSpread({}, args), {}, {\n exchange: exchange\n }));\n }\n }));\n};\n\nvar exchanges = [orca(), uniswap_v3(), pancakeswap_v3(), uniswap_v2(), pancakeswap(), trader_joe_v2_1(), quickswap(), spookyswap(), honeyswap(), weth(), weth_optimism(), weth_base(), weth_arbitrum(), wbnb(), wmatic(), wftm(), wavax(), wxdai()];\nexchanges.forEach(function (exchange) {\n exchanges[exchange.name] = exchange;\n});\nexchanges.ethereum = [uniswap_v3('ethereum'), uniswap_v2('ethereum'), weth('ethereum')];\nexchanges.ethereum.forEach(function (exchange) {\n exchanges.ethereum[exchange.name] = exchange;\n});\nexchanges.bsc = [pancakeswap_v3('bsc'), uniswap_v3('bsc'), pancakeswap('bsc'), wbnb('bsc')];\nexchanges.bsc.forEach(function (exchange) {\n exchanges.bsc[exchange.name] = exchange;\n});\nexchanges.polygon = [uniswap_v3('polygon'), quickswap('polygon'), wmatic('polygon')];\nexchanges.polygon.forEach(function (exchange) {\n exchanges.polygon[exchange.name] = exchange;\n});\nexchanges.solana = [orca('solana')];\nexchanges.solana.forEach(function (exchange) {\n exchanges.solana[exchange.name] = exchange;\n});\nexchanges.optimism = [uniswap_v3('optimism'), weth_optimism('optimism')];\nexchanges.optimism.forEach(function (exchange) {\n exchanges.optimism[exchange.name] = exchange;\n});\nexchanges.base = [uniswap_v3('base'), uniswap_v2('base'), weth_base('base')];\nexchanges.base.forEach(function (exchange) {\n exchanges.base[exchange.name] = exchange;\n});\nexchanges.arbitrum = [uniswap_v3('arbitrum'), weth_arbitrum('arbitrum')];\nexchanges.arbitrum.forEach(function (exchange) {\n exchanges.arbitrum[exchange.name] = exchange;\n});\nexchanges.fantom = [spookyswap('fantom'), wftm('fantom')];\nexchanges.fantom.forEach(function (exchange) {\n exchanges.fantom[exchange.name] = exchange;\n});\nexchanges.avalanche = [uniswap_v3('avalanche'), trader_joe_v2_1('avalanche'), wavax('avalanche')];\nexchanges.avalanche.forEach(function (exchange) {\n exchanges.avalanche[exchange.name] = exchange;\n});\nexchanges.gnosis = [honeyswap('gnosis'), wxdai('gnosis')];\nexchanges.gnosis.forEach(function (exchange) {\n exchanges.gnosis[exchange.name] = exchange;\n});\nexchanges.worldchain = [uniswap_v3('worldchain')];\nexchanges.worldchain.forEach(function (exchange) {\n exchanges.worldchain[exchange.name] = exchange;\n});\n\nvar route = function route(_ref142) {\n var blockchain = _ref142.blockchain,\n tokenIn = _ref142.tokenIn,\n tokenOut = _ref142.tokenOut,\n amountIn = _ref142.amountIn,\n amountOut = _ref142.amountOut,\n amountInMax = _ref142.amountInMax,\n amountOutMin = _ref142.amountOutMin;\n return Promise.all(exchanges[blockchain].map(function (exchange) {\n return exchange.route({\n tokenIn: tokenIn,\n tokenOut: tokenOut,\n amountIn: amountIn,\n amountOut: amountOut,\n amountInMax: amountInMax,\n amountOutMin: amountOutMin\n });\n })).then(function (routes) {\n return routes.filter(Boolean).sort(function (a, b) {\n if (amountIn || amountInMax ? BigInt(a.amountOut) < BigInt(b.amountOut) : BigInt(a.amountIn) > BigInt(b.amountIn)) {\n return 1;\n }\n\n if (amountIn || amountInMax ? BigInt(a.amountOut) > BigInt(b.amountOut) : BigInt(a.amountIn) < BigInt(b.amountIn)) {\n return -1;\n }\n\n return 0;\n });\n });\n};\n\nexchanges.route = route;\nexport { exchanges as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n;\n\n(function (globalScope) {\n 'use strict';\n /*!\r\n * decimal.js v10.4.3\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licence\r\n */\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\n // The maximum exponent magnitude.\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\n\n var EXP_LIMIT = 9e15,\n // 0 to 9e15\n // The limit on the value of `precision`, and on the value of the first argument to\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\n MAX_DIGITS = 1e9,\n // 0 to 1e9\n // Base conversion alphabet.\n NUMERALS = '0123456789abcdef',\n // The natural logarithm of 10 (1025 digits).\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\n // Pi (1025 digits).\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\n // The initial configuration properties of the Decimal constructor.\n DEFAULTS = {\n // These values must be integers within the stated ranges (inclusive).\n // Most of these values can be changed at run-time using the `Decimal.config` method.\n // The maximum number of significant digits of the result of a calculation or base conversion.\n // E.g. `Decimal.config({ precision: 20 });`\n precision: 20,\n // 1 to MAX_DIGITS\n // The rounding mode used when rounding to `precision`.\n //\n // ROUND_UP 0 Away from zero.\n // ROUND_DOWN 1 Towards zero.\n // ROUND_CEIL 2 Towards +Infinity.\n // ROUND_FLOOR 3 Towards -Infinity.\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\n //\n // E.g.\n // `Decimal.rounding = 4;`\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\n rounding: 4,\n // 0 to 8\n // The modulo mode used when calculating the modulus: a mod n.\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\n // The remainder (r) is calculated as: r = a - n * q.\n //\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\n // HALF_EVEN 6 The IEEE 754 remainder function.\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\n //\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\n // be used, but they may not give useful results.\n modulo: 1,\n // 0 to 9\n // The exponent value at and beneath which `toString` returns exponential notation.\n // JavaScript numbers: -7\n toExpNeg: -7,\n // 0 to -EXP_LIMIT\n // The exponent value at and above which `toString` returns exponential notation.\n // JavaScript numbers: 21\n toExpPos: 21,\n // 0 to EXP_LIMIT\n // The minimum exponent value, beneath which underflow to zero occurs.\n // JavaScript numbers: -324 (5e-324)\n minE: -EXP_LIMIT,\n // -1 to -EXP_LIMIT\n // The maximum exponent value, above which overflow to Infinity occurs.\n // JavaScript numbers: 308 (1.7976931348623157e+308)\n maxE: EXP_LIMIT,\n // 1 to EXP_LIMIT\n // Whether to use cryptographically-secure random number generation, if available.\n crypto: false // true/false\n\n },\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\n Decimal,\n inexact,\n noConflict,\n quadrant,\n external = true,\n decimalError = '[DecimalError] ',\n invalidArgument = decimalError + 'Invalid argument: ',\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\n cryptoUnavailable = decimalError + 'crypto unavailable',\n tag = '[object Decimal]',\n mathfloor = Math.floor,\n mathpow = Math.pow,\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\n BASE = 1e7,\n LOG_BASE = 7,\n MAX_SAFE_INTEGER = 9007199254740991,\n LN10_PRECISION = LN10.length - 1,\n PI_PRECISION = PI.length - 1,\n // Decimal.prototype object\n P = {\n toStringTag: tag\n }; // Decimal prototype methods\n\n /*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\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 * [maximum] [max]\r\n * [minimum] [min]\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 * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\n\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\n\n P.absoluteValue = P.abs = function () {\n var x = new this.constructor(this);\n if (x.s < 0) x.s = 1;\n return finalise(x);\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\n\n\n P.ceil = function () {\n return finalise(new this.constructor(this), this.e + 1, 2);\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\n\n\n P.clampedTo = P.clamp = function (min, max) {\n var k,\n x = this,\n Ctor = x.constructor;\n min = new Ctor(min);\n max = new Ctor(max);\n if (!min.s || !max.s) return new Ctor(NaN);\n if (min.gt(max)) throw Error(invalidArgument + max);\n k = x.cmp(min);\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\n };\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 * NaN if the value of either Decimal is NaN.\r\n *\r\n */\n\n\n P.comparedTo = P.cmp = function (y) {\n var i,\n j,\n xdL,\n ydL,\n x = this,\n xd = x.d,\n yd = (y = new x.constructor(y)).d,\n xs = x.s,\n ys = y.s; // Either NaN or ±Infinity?\n\n if (!xd || !yd) {\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\n } // Either zero?\n\n\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0; // Signs differ?\n\n if (xs !== ys) return xs; // Compare exponents.\n\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\n xdL = xd.length;\n ydL = yd.length; // Compare digit by digit.\n\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\n } // Compare lengths.\n\n\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\n };\n /*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\n\n\n P.cosine = P.cos = function () {\n var pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (!x.d) return new Ctor(NaN); // cos(0) = cos(-0) = 1\n\n if (!x.d[0]) return new Ctor(1);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\n Ctor.rounding = 1;\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\n };\n /*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\n\n\n P.cubeRoot = P.cbrt = function () {\n var e,\n m,\n n,\n r,\n rep,\n s,\n sd,\n t,\n t3,\n t3plusx,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\n external = false; // Initial estimate.\n\n s = x.s * mathpow(x.s * x, 1 / 3); // Math.cbrt underflow/overflow?\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\n\n if (!s || Math.abs(s) == 1 / 0) {\n n = digitsToString(x.d);\n e = x.e; // Adjust n exponent so it is a multiple of 3 away from x exponent.\n\n if (s = (e - n.length + 1) % 3) n += s == 1 || s == -2 ? '0' : '00';\n s = mathpow(n, 1 / 3); // Rarely, e may be one less than the result exponent value.\n\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\n\n if (s == 1 / 0) {\n n = '5e' + e;\n } else {\n n = s.toExponential();\n n = n.slice(0, n.indexOf('e') + 1) + e;\n }\n\n r = new Ctor(n);\n r.s = x.s;\n } else {\n r = new Ctor(s.toString());\n }\n\n sd = (e = Ctor.precision) + 3; // Halley's method.\n // TODO? Compare Newton's method.\n\n for (;;) {\n t = r;\n t3 = t.times(t).times(t);\n t3plusx = t3.plus(x);\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1); // TODO? Replace with for-loop and checkRoundingDigits.\n\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\n n = n.slice(sd - 3, sd + 1); // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\n // , i.e. approaching a rounding boundary, continue the iteration.\n\n if (n == '9999' || !rep && n == '4999') {\n // On the first iteration only, check to see if rounding up gives the exact result as the\n // nines may infinitely repeat.\n if (!rep) {\n finalise(t, e + 1, 0);\n\n if (t.times(t).times(t).eq(x)) {\n r = t;\n break;\n }\n }\n\n sd += 4;\n rep = 1;\n } else {\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\n // If not, then there are further digits and m will be truthy.\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\n // Truncate to the first rounding digit.\n finalise(r, e + 1, 1);\n m = !r.times(r).times(r).eq(x);\n }\n\n break;\n }\n }\n }\n\n external = true;\n return finalise(r, e, Ctor.rounding, m);\n };\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\n\n\n P.decimalPlaces = P.dp = function () {\n var w,\n d = this.d,\n n = NaN;\n\n if (d) {\n w = d.length - 1;\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE; // Subtract the number of trailing zeros of the last word.\n\n w = d[w];\n if (w) for (; w % 10 == 0; w /= 10) {\n n--;\n }\n if (n < 0) n = 0;\n }\n\n return n;\n };\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 Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.dividedBy = P.div = function (y) {\n return divide(this, new this.constructor(y));\n };\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`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.dividedToIntegerBy = P.divToInt = function (y) {\n var x = this,\n Ctor = x.constructor;\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\n };\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 */\n\n\n P.equals = P.eq = function (y) {\n return this.cmp(y) === 0;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\n\n\n P.floor = function () {\n return finalise(new this.constructor(this), this.e + 1, 3);\n };\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 */\n\n\n P.greaterThan = P.gt = function (y) {\n return this.cmp(y) > 0;\n };\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 */\n\n\n P.greaterThanOrEqualTo = P.gte = function (y) {\n var k = this.cmp(y);\n return k == 1 || k === 0;\n };\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\n\n\n P.hyperbolicCosine = P.cosh = function () {\n var k,\n n,\n pr,\n rm,\n len,\n x = this,\n Ctor = x.constructor,\n one = new Ctor(1);\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\n if (x.isZero()) return one;\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\n Ctor.rounding = 1;\n len = x.d.length; // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\n // Estimate the optimum number of times to use the argument reduction.\n // TODO? Estimation reused from cosine() and may not be optimal here.\n\n if (len < 32) {\n k = Math.ceil(len / 3);\n n = (1 / tinyPow(4, k)).toString();\n } else {\n k = 16;\n n = '2.3283064365386962890625e-10';\n }\n\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true); // Reverse argument reduction\n\n var cosh2_x,\n i = k,\n d8 = new Ctor(8);\n\n for (; i--;) {\n cosh2_x = x.times(x);\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\n }\n\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\n };\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\n\n\n P.hyperbolicSine = P.sinh = function () {\n var k,\n pr,\n rm,\n len,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\n Ctor.rounding = 1;\n len = x.d.length;\n\n if (len < 3) {\n x = taylorSeries(Ctor, 2, x, x, true);\n } else {\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\n // 3 multiplications and 1 addition\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\n // 4 multiplications and 2 additions\n // Estimate the optimum number of times to use the argument reduction.\n k = 1.4 * Math.sqrt(len);\n k = k > 16 ? 16 : k | 0;\n x = x.times(1 / tinyPow(5, k));\n x = taylorSeries(Ctor, 2, x, x, true); // Reverse argument reduction\n\n var sinh2_x,\n d5 = new Ctor(5),\n d16 = new Ctor(16),\n d20 = new Ctor(20);\n\n for (; k--;) {\n sinh2_x = x.times(x);\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\n }\n }\n\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return finalise(x, pr, rm, true);\n };\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\n\n\n P.hyperbolicTangent = P.tanh = function () {\n var pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite()) return new Ctor(x.s);\n if (x.isZero()) return new Ctor(x);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + 7;\n Ctor.rounding = 1;\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\n };\n /*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\n\n\n P.inverseCosine = P.acos = function () {\n var halfPi,\n x = this,\n Ctor = x.constructor,\n k = x.abs().cmp(1),\n pr = Ctor.precision,\n rm = Ctor.rounding;\n\n if (k !== -1) {\n return k === 0 // |x| is 1\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) // |x| > 1 or x is NaN\n : new Ctor(NaN);\n }\n\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5); // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\n\n Ctor.precision = pr + 6;\n Ctor.rounding = 1;\n x = x.asin();\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return halfPi.minus(x);\n };\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\n\n\n P.inverseHyperbolicCosine = P.acosh = function () {\n var pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\n if (!x.isFinite()) return new Ctor(x);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\n Ctor.rounding = 1;\n external = false;\n x = x.times(x).minus(1).sqrt().plus(x);\n external = true;\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return x.ln();\n };\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\n\n\n P.inverseHyperbolicSine = P.asinh = function () {\n var pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\n Ctor.rounding = 1;\n external = false;\n x = x.times(x).plus(1).sqrt().plus(x);\n external = true;\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return x.ln();\n };\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\n\n\n P.inverseHyperbolicTangent = P.atanh = function () {\n var pr,\n rm,\n wpr,\n xsd,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite()) return new Ctor(NaN);\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n xsd = x.sd();\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\n Ctor.precision = wpr = xsd - x.e;\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\n Ctor.precision = pr + 4;\n Ctor.rounding = 1;\n x = x.ln();\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return x.times(0.5);\n };\n /*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\n\n\n P.inverseSine = P.asin = function () {\n var halfPi,\n k,\n pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (x.isZero()) return new Ctor(x);\n k = x.abs().cmp(1);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n\n if (k !== -1) {\n // |x| is 1\n if (k === 0) {\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\n halfPi.s = x.s;\n return halfPi;\n } // |x| > 1 or x is NaN\n\n\n return new Ctor(NaN);\n } // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\n\n\n Ctor.precision = pr + 6;\n Ctor.rounding = 1;\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return x.times(2);\n };\n /*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\n\n\n P.inverseTangent = P.atan = function () {\n var i,\n j,\n k,\n n,\n px,\n t,\n r,\n wpr,\n x2,\n x = this,\n Ctor = x.constructor,\n pr = Ctor.precision,\n rm = Ctor.rounding;\n\n if (!x.isFinite()) {\n if (!x.s) return new Ctor(NaN);\n\n if (pr + 4 <= PI_PRECISION) {\n r = getPi(Ctor, pr + 4, rm).times(0.5);\n r.s = x.s;\n return r;\n }\n } else if (x.isZero()) {\n return new Ctor(x);\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\n r = getPi(Ctor, pr + 4, rm).times(0.25);\n r.s = x.s;\n return r;\n }\n\n Ctor.precision = wpr = pr + 10;\n Ctor.rounding = 1; // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\n // Argument reduction\n // Ensure |x| < 0.42\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\n\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\n\n for (i = k; i; --i) {\n x = x.div(x.times(x).plus(1).sqrt().plus(1));\n }\n\n external = false;\n j = Math.ceil(wpr / LOG_BASE);\n n = 1;\n x2 = x.times(x);\n r = new Ctor(x);\n px = x; // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\n\n for (; i !== -1;) {\n px = px.times(x2);\n t = r.minus(px.div(n += 2));\n px = px.times(x2);\n r = t.plus(px.div(n += 2));\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;) {\n ;\n }\n }\n\n if (k) r = r.times(2 << k - 1);\n external = true;\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\n };\n /*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\n\n\n P.isFinite = function () {\n return !!this.d;\n };\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\n\n\n P.isInteger = P.isInt = function () {\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\n };\n /*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\n\n\n P.isNaN = function () {\n return !this.s;\n };\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\n\n\n P.isNegative = P.isNeg = function () {\n return this.s < 0;\n };\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\n\n\n P.isPositive = P.isPos = function () {\n return this.s > 0;\n };\n /*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\n\n\n P.isZero = function () {\n return !!this.d && this.d[0] === 0;\n };\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\n\n\n P.lessThan = P.lt = function (y) {\n return this.cmp(y) < 0;\n };\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 */\n\n\n P.lessThanOrEqualTo = P.lte = function (y) {\n return this.cmp(y) < 1;\n };\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\n\n\n P.logarithm = P.log = function (base) {\n var isBase10,\n d,\n denominator,\n k,\n inf,\n num,\n sd,\n r,\n arg = this,\n Ctor = arg.constructor,\n pr = Ctor.precision,\n rm = Ctor.rounding,\n guard = 5; // Default base is 10.\n\n if (base == null) {\n base = new Ctor(10);\n isBase10 = true;\n } else {\n base = new Ctor(base);\n d = base.d; // Return NaN if base is negative, or non-finite, or is 0 or 1.\n\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\n isBase10 = base.eq(10);\n }\n\n d = arg.d; // Is arg negative, non-finite, 0 or 1?\n\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\n } // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\n // integer power of 10.\n\n\n if (isBase10) {\n if (d.length > 1) {\n inf = true;\n } else {\n for (k = d[0]; k % 10 === 0;) {\n k /= 10;\n }\n\n inf = k !== 1;\n }\n }\n\n external = false;\n sd = pr + guard;\n num = naturalLogarithm(arg, sd);\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); // The result will have 5 rounding digits.\n\n r = divide(num, denominator, sd, 1); // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\n // calculate 10 further digits.\n //\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\n // further digits, the last 14 are nines, round up and assume the result is exact.\n // Also assume the result is exact if the last 14 are zero.\n //\n // Example of a result that will be incorrectly rounded:\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\n // place is still 2.6.\n\n if (checkRoundingDigits(r.d, k = pr, rm)) {\n do {\n sd += 10;\n num = naturalLogarithm(arg, sd);\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\n r = divide(num, denominator, sd, 1);\n\n if (!inf) {\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\n r = finalise(r, pr + 1, 0);\n }\n\n break;\n }\n } while (checkRoundingDigits(r.d, k += 10, rm));\n }\n\n external = true;\n return finalise(r, pr, rm);\n };\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n };\r\n */\n\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n };\r\n */\n\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 Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.minus = P.sub = function (y) {\n var d,\n e,\n i,\n j,\n k,\n len,\n pr,\n rm,\n xd,\n xe,\n xLTy,\n yd,\n x = this,\n Ctor = x.constructor;\n y = new Ctor(y); // If either is not finite...\n\n if (!x.d || !y.d) {\n // Return NaN if either is NaN.\n if (!x.s || !y.s) y = new Ctor(NaN); // Return y negated if x is finite and y is ±Infinity.\n else if (x.d) y.s = -y.s; // Return x if y is finite and x is ±Infinity.\n // Return x if both are ±Infinity with different signs.\n // Return NaN if both are ±Infinity with the same sign.\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\n return y;\n } // If signs differ...\n\n\n if (x.s != y.s) {\n y.s = -y.s;\n return x.plus(y);\n }\n\n xd = x.d;\n yd = y.d;\n pr = Ctor.precision;\n rm = Ctor.rounding; // If either is zero...\n\n if (!xd[0] || !yd[0]) {\n // Return y negated if x is zero and y is non-zero.\n if (yd[0]) y.s = -y.s; // Return x if y is zero and x is non-zero.\n else if (xd[0]) y = new Ctor(x); // Return zero if both are zero.\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\n else return new Ctor(rm === 3 ? -0 : 0);\n return external ? finalise(y, pr, rm) : y;\n } // x and y are finite, non-zero numbers with the same sign.\n // Calculate base 1e7 exponents.\n\n\n e = mathfloor(y.e / LOG_BASE);\n xe = mathfloor(x.e / LOG_BASE);\n xd = xd.slice();\n k = xe - e; // If base 1e7 exponents differ...\n\n if (k) {\n xLTy = k < 0;\n\n if (xLTy) {\n d = xd;\n k = -k;\n len = yd.length;\n } else {\n d = yd;\n e = xe;\n len = xd.length;\n } // Numbers with massively different exponents would result in a very high number of\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\n\n\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\n\n if (k > i) {\n k = i;\n d.length = 1;\n } // Prepend zeros to equalise exponents.\n\n\n d.reverse();\n\n for (i = k; i--;) {\n d.push(0);\n }\n\n d.reverse(); // Base 1e7 exponents equal.\n } else {\n // Check digits to determine which is the bigger number.\n i = xd.length;\n len = yd.length;\n xLTy = i < len;\n if (xLTy) len = i;\n\n for (i = 0; i < len; i++) {\n if (xd[i] != yd[i]) {\n xLTy = xd[i] < yd[i];\n break;\n }\n }\n\n k = 0;\n }\n\n if (xLTy) {\n d = xd;\n xd = yd;\n yd = d;\n y.s = -y.s;\n }\n\n len = xd.length; // Append zeros to `xd` if shorter.\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\n\n for (i = yd.length - len; i > 0; --i) {\n xd[len++] = 0;\n } // Subtract yd from xd.\n\n\n for (i = yd.length; i > k;) {\n if (xd[--i] < yd[i]) {\n for (j = i; j && xd[--j] === 0;) {\n xd[j] = BASE - 1;\n }\n\n --xd[j];\n xd[i] += BASE;\n }\n\n xd[i] -= yd[i];\n } // Remove trailing zeros.\n\n\n for (; xd[--len] === 0;) {\n xd.pop();\n } // Remove leading zeros and adjust exponent accordingly.\n\n\n for (; xd[0] === 0; xd.shift()) {\n --e;\n } // Zero?\n\n\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\n y.d = xd;\n y.e = getBase10Exponent(xd, e);\n return external ? finalise(y, pr, rm) : y;\n };\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 Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\n\n\n P.modulo = P.mod = function (y) {\n var q,\n x = this,\n Ctor = x.constructor;\n y = new Ctor(y); // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\n\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); // Return x if y is ±Infinity or x is ±0.\n\n if (!y.d || x.d && !x.d[0]) {\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\n } // Prevent rounding of intermediate calculations.\n\n\n external = false;\n\n if (Ctor.modulo == 9) {\n // Euclidian division: q = sign(y) * floor(x / abs(y))\n // result = x - q * y where 0 <= result < abs(y)\n q = divide(x, y.abs(), 0, 3, 1);\n q.s *= y.s;\n } else {\n q = divide(x, y, 0, Ctor.modulo, 1);\n }\n\n q = q.times(y);\n external = true;\n return x.minus(q);\n };\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, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.naturalExponential = P.exp = function () {\n return naturalExponential(this);\n };\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.naturalLogarithm = P.ln = function () {\n return naturalLogarithm(this);\n };\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 */\n\n\n P.negated = P.neg = function () {\n var x = new this.constructor(this);\n x.s = -x.s;\n return finalise(x);\n };\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 Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.plus = P.add = function (y) {\n var carry,\n d,\n e,\n i,\n k,\n len,\n pr,\n rm,\n xd,\n yd,\n x = this,\n Ctor = x.constructor;\n y = new Ctor(y); // If either is not finite...\n\n if (!x.d || !y.d) {\n // Return NaN if either is NaN.\n if (!x.s || !y.s) y = new Ctor(NaN); // Return x if y is finite and x is ±Infinity.\n // Return x if both are ±Infinity with the same sign.\n // Return NaN if both are ±Infinity with different signs.\n // Return y if x is finite and y is ±Infinity.\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\n return y;\n } // If signs differ...\n\n\n if (x.s != y.s) {\n y.s = -y.s;\n return x.minus(y);\n }\n\n xd = x.d;\n yd = y.d;\n pr = Ctor.precision;\n rm = Ctor.rounding; // If either is zero...\n\n if (!xd[0] || !yd[0]) {\n // Return x if y is zero.\n // Return y if y is non-zero.\n if (!yd[0]) y = new Ctor(x);\n return external ? finalise(y, pr, rm) : y;\n } // x and y are finite, non-zero numbers with the same sign.\n // Calculate base 1e7 exponents.\n\n\n k = mathfloor(x.e / LOG_BASE);\n e = mathfloor(y.e / LOG_BASE);\n xd = xd.slice();\n i = k - e; // If base 1e7 exponents differ...\n\n if (i) {\n if (i < 0) {\n d = xd;\n i = -i;\n len = yd.length;\n } else {\n d = yd;\n e = k;\n len = xd.length;\n } // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\n\n\n k = Math.ceil(pr / LOG_BASE);\n len = k > len ? k + 1 : len + 1;\n\n if (i > len) {\n i = len;\n d.length = 1;\n } // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\n\n\n d.reverse();\n\n for (; i--;) {\n d.push(0);\n }\n\n d.reverse();\n }\n\n len = xd.length;\n i = yd.length; // If yd is longer than xd, swap xd and yd so xd points to the longer array.\n\n if (len - i < 0) {\n i = len;\n d = yd;\n yd = xd;\n xd = d;\n } // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\n\n\n for (carry = 0; i;) {\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\n xd[i] %= BASE;\n }\n\n if (carry) {\n xd.unshift(carry);\n ++e;\n } // Remove trailing zeros.\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n\n\n for (len = xd.length; xd[--len] == 0;) {\n xd.pop();\n }\n\n y.d = xd;\n y.e = getBase10Exponent(xd, e);\n return external ? finalise(y, pr, rm) : y;\n };\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 */\n\n\n P.precision = P.sd = function (z) {\n var k,\n x = this;\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\n\n if (x.d) {\n k = getPrecision(x.d);\n if (z && x.e + 1 > k) k = x.e + 1;\n } else {\n k = NaN;\n }\n\n return k;\n };\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 */\n\n\n P.round = function () {\n var x = this,\n Ctor = x.constructor;\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\n };\n /*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\n\n\n P.sine = P.sin = function () {\n var pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite()) return new Ctor(NaN);\n if (x.isZero()) return new Ctor(x);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\n Ctor.rounding = 1;\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\n };\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\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 */\n\n\n P.squareRoot = P.sqrt = function () {\n var m,\n n,\n sd,\n r,\n rep,\n t,\n x = this,\n d = x.d,\n e = x.e,\n s = x.s,\n Ctor = x.constructor; // Negative/NaN/Infinity/zero?\n\n if (s !== 1 || !d || !d[0]) {\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\n }\n\n external = false; // Initial estimate.\n\n s = Math.sqrt(+x); // Math.sqrt underflow/overflow?\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\n\n if (s == 0 || s == 1 / 0) {\n n = digitsToString(d);\n if ((n.length + e) % 2 == 0) n += '0';\n s = Math.sqrt(n);\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\n\n if (s == 1 / 0) {\n n = '5e' + e;\n } else {\n n = s.toExponential();\n n = n.slice(0, n.indexOf('e') + 1) + e;\n }\n\n r = new Ctor(n);\n } else {\n r = new Ctor(s.toString());\n }\n\n sd = (e = Ctor.precision) + 3; // Newton-Raphson iteration.\n\n for (;;) {\n t = r;\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5); // TODO? Replace with for-loop and checkRoundingDigits.\n\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\n n = n.slice(sd - 3, sd + 1); // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\n\n if (n == '9999' || !rep && n == '4999') {\n // On the first iteration only, check to see if rounding up gives the exact result as the\n // nines may infinitely repeat.\n if (!rep) {\n finalise(t, e + 1, 0);\n\n if (t.times(t).eq(x)) {\n r = t;\n break;\n }\n }\n\n sd += 4;\n rep = 1;\n } else {\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\n // If not, then there are further digits and m will be truthy.\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\n // Truncate to the first rounding digit.\n finalise(r, e + 1, 1);\n m = !r.times(r).eq(x);\n }\n\n break;\n }\n }\n }\n\n external = true;\n return finalise(r, e, Ctor.rounding, m);\n };\n /*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\n\n\n P.tangent = P.tan = function () {\n var pr,\n rm,\n x = this,\n Ctor = x.constructor;\n if (!x.isFinite()) return new Ctor(NaN);\n if (x.isZero()) return new Ctor(x);\n pr = Ctor.precision;\n rm = Ctor.rounding;\n Ctor.precision = pr + 10;\n Ctor.rounding = 1;\n x = x.sin();\n x.s = 1;\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\n Ctor.precision = pr;\n Ctor.rounding = rm;\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\n };\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 Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\n\n\n P.times = P.mul = function (y) {\n var carry,\n e,\n i,\n k,\n r,\n rL,\n t,\n xdL,\n ydL,\n x = this,\n Ctor = x.constructor,\n xd = x.d,\n yd = (y = new Ctor(y)).d;\n y.s *= x.s; // If either is NaN, ±Infinity or ±0...\n\n if (!xd || !xd[0] || !yd || !yd[0]) {\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd // Return NaN if either is NaN.\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\n ? NaN // Return ±Infinity if either is ±Infinity.\n // Return ±0 if either is ±0.\n : !xd || !yd ? y.s / 0 : y.s * 0);\n }\n\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\n xdL = xd.length;\n ydL = yd.length; // Ensure xd points to the longer array.\n\n if (xdL < ydL) {\n r = xd;\n xd = yd;\n yd = r;\n rL = xdL;\n xdL = ydL;\n ydL = rL;\n } // Initialise the result array with zeros.\n\n\n r = [];\n rL = xdL + ydL;\n\n for (i = rL; i--;) {\n r.push(0);\n } // Multiply!\n\n\n for (i = ydL; --i >= 0;) {\n carry = 0;\n\n for (k = xdL + i; k > i;) {\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\n r[k--] = t % BASE | 0;\n carry = t / BASE | 0;\n }\n\n r[k] = (r[k] + carry) % BASE | 0;\n } // Remove trailing zeros.\n\n\n for (; !r[--rL];) {\n r.pop();\n }\n\n if (carry) ++e;else r.shift();\n y.d = r;\n y.e = getBase10Exponent(r, e);\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\n };\n /*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential 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 */\n\n\n P.toBinary = function (sd, rm) {\n return toStringBinary(this, 2, sd, rm);\n };\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 */\n\n\n P.toDecimalPlaces = P.toDP = function (dp, rm) {\n var x = this,\n Ctor = x.constructor;\n x = new Ctor(x);\n if (dp === void 0) return x;\n checkInt32(dp, 0, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n return finalise(x, dp + x.e + 1, rm);\n };\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 */\n\n\n P.toExponential = function (dp, rm) {\n var str,\n x = this,\n Ctor = x.constructor;\n\n if (dp === void 0) {\n str = finiteToString(x, true);\n } else {\n checkInt32(dp, 0, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n x = finalise(new Ctor(x), dp + 1, rm);\n str = finiteToString(x, true, dp + 1);\n }\n\n return x.isNeg() && !x.isZero() ? '-' + str : str;\n };\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 */\n\n\n P.toFixed = function (dp, rm) {\n var str,\n y,\n x = this,\n Ctor = x.constructor;\n\n if (dp === void 0) {\n str = finiteToString(x);\n } else {\n checkInt32(dp, 0, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\n str = finiteToString(y, false, dp + y.e + 1);\n } // To determine whether to add the minus sign look at the value before it was rounded,\n // i.e. look at `x` rather than `y`.\n\n\n return x.isNeg() && !x.isZero() ? '-' + str : str;\n };\n /*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\n\n\n P.toFraction = function (maxD) {\n var d,\n d0,\n d1,\n d2,\n e,\n k,\n n,\n n0,\n n1,\n pr,\n q,\n r,\n x = this,\n xd = x.d,\n Ctor = x.constructor;\n if (!xd) return new Ctor(x);\n n1 = d0 = new Ctor(1);\n d1 = n0 = new Ctor(0);\n d = new Ctor(d1);\n e = d.e = getPrecision(xd) - x.e - 1;\n k = e % LOG_BASE;\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\n\n if (maxD == null) {\n // d is 10**e, the minimum max-denominator needed.\n maxD = e > 0 ? d : n1;\n } else {\n n = new Ctor(maxD);\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\n maxD = n.gt(d) ? e > 0 ? d : n1 : n;\n }\n\n external = false;\n n = new Ctor(digitsToString(xd));\n pr = Ctor.precision;\n Ctor.precision = e = xd.length * LOG_BASE * 2;\n\n for (;;) {\n q = divide(n, d, 0, 1, 1);\n d2 = d0.plus(q.times(d1));\n if (d2.cmp(maxD) == 1) break;\n d0 = d1;\n d1 = d2;\n d2 = n1;\n n1 = n0.plus(q.times(d2));\n n0 = d2;\n d2 = d;\n d = n.minus(q.times(d2));\n n = d2;\n }\n\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\n n0 = n0.plus(d2.times(n1));\n d0 = d0.plus(d2.times(d1));\n n0.s = n1.s = x.s; // Determine which fraction is closer to x, n0/d0 or n1/d1?\n\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\n Ctor.precision = pr;\n external = true;\n return r;\n };\n /*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential 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 */\n\n\n P.toHexadecimal = P.toHex = function (sd, rm) {\n return toStringBinary(this, 16, sd, rm);\n };\n /*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\n\n\n P.toNearest = function (y, rm) {\n var x = this,\n Ctor = x.constructor;\n x = new Ctor(x);\n\n if (y == null) {\n // If x is not finite, return x.\n if (!x.d) return x;\n y = new Ctor(1);\n rm = Ctor.rounding;\n } else {\n y = new Ctor(y);\n\n if (rm === void 0) {\n rm = Ctor.rounding;\n } else {\n checkInt32(rm, 0, 8);\n } // If x is not finite, return x if y is not NaN, else NaN.\n\n\n if (!x.d) return y.s ? x : y; // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\n\n if (!y.d) {\n if (y.s) y.s = x.s;\n return y;\n }\n } // If y is not zero, calculate the nearest multiple of y to x.\n\n\n if (y.d[0]) {\n external = false;\n x = divide(x, y, 0, rm, 1).times(y);\n external = true;\n finalise(x); // If y is zero, return zero with the sign of x.\n } else {\n y.s = x.s;\n x = y;\n }\n\n return x;\n };\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\n\n\n P.toNumber = function () {\n return +this;\n };\n /*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential 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 */\n\n\n P.toOctal = function (sd, rm) {\n return toStringBinary(this, 8, sd, rm);\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\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 * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 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 */\n\n\n P.toPower = P.pow = function (y) {\n var e,\n k,\n pr,\n r,\n rm,\n s,\n x = this,\n Ctor = x.constructor,\n yn = +(y = new Ctor(y)); // Either ±Infinity, NaN or ±0?\n\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\n x = new Ctor(x);\n if (x.eq(1)) return x;\n pr = Ctor.precision;\n rm = Ctor.rounding;\n if (y.eq(1)) return finalise(x, pr, rm); // y exponent\n\n e = mathfloor(y.e / LOG_BASE); // If y is a small integer use the 'exponentiation by squaring' algorithm.\n\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\n r = intPow(Ctor, x, k, pr);\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\n }\n\n s = x.s; // if x is negative\n\n if (s < 0) {\n // if y is not an integer\n if (e < y.d.length - 1) return new Ctor(NaN); // Result is positive if x is negative and the last digit of integer y is even.\n\n if ((y.d[e] & 1) == 0) s = 1; // if x.eq(-1)\n\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\n x.s = s;\n return x;\n }\n } // Estimate result exponent.\n // x^y = 10^e, where e = y * log10(x)\n // log10(x) = log10(x_significand) + x_exponent\n // log10(x_significand) = ln(x_significand) / ln(10)\n\n\n k = mathpow(+x, yn);\n e = k == 0 || !isFinite(k) ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k + '').e; // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\n // Overflow/underflow?\n\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\n external = false;\n Ctor.rounding = x.s = 1; // Estimate the extra guard digits needed to ensure five correct rounding digits from\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\n // new Decimal(2.32456).pow('2087987436534566.46411')\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\n\n k = Math.min(12, (e + '').length); // r = x^y = exp(y*ln(x))\n\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr); // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\n\n if (r.d) {\n // Truncate to the required precision plus five rounding digits.\n r = finalise(r, pr + 5, 1); // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\n // the result.\n\n if (checkRoundingDigits(r.d, pr, rm)) {\n e = pr + 10; // Truncate to the increased precision plus five rounding digits.\n\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1); // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\n\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\n r = finalise(r, pr + 1, 0);\n }\n }\n }\n\n r.s = s;\n external = true;\n Ctor.rounding = rm;\n return finalise(r, pr, rm);\n };\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 */\n\n\n P.toPrecision = function (sd, rm) {\n var str,\n x = this,\n Ctor = x.constructor;\n\n if (sd === void 0) {\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\n } else {\n checkInt32(sd, 1, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n x = finalise(new Ctor(x), sd, rm);\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\n }\n\n return x.isNeg() && !x.isZero() ? '-' + str : str;\n };\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 * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\n\n\n P.toSignificantDigits = P.toSD = function (sd, rm) {\n var x = this,\n Ctor = x.constructor;\n\n if (sd === void 0) {\n sd = Ctor.precision;\n rm = Ctor.rounding;\n } else {\n checkInt32(sd, 1, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n }\n\n return finalise(new Ctor(x), sd, rm);\n };\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 */\n\n\n P.toString = function () {\n var x = this,\n Ctor = x.constructor,\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\n return x.isNeg() && !x.isZero() ? '-' + str : str;\n };\n /*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\n\n\n P.truncated = P.trunc = function () {\n return finalise(new this.constructor(this), this.e + 1, 1);\n };\n /*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\n\n\n P.valueOf = P.toJSON = function () {\n var x = this,\n Ctor = x.constructor,\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\n return x.isNeg() ? '-' + str : str;\n }; // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\n\n /*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\n\n\n function digitsToString(d) {\n var i,\n k,\n ws,\n indexOfLastWord = d.length - 1,\n str = '',\n w = d[0];\n\n if (indexOfLastWord > 0) {\n str += w;\n\n for (i = 1; i < indexOfLastWord; i++) {\n ws = d[i] + '';\n k = LOG_BASE - ws.length;\n if (k) str += getZeroString(k);\n str += ws;\n }\n\n w = d[i];\n ws = w + '';\n k = LOG_BASE - ws.length;\n if (k) str += getZeroString(k);\n } else if (w === 0) {\n return '0';\n } // Remove trailing zeros of last w.\n\n\n for (; w % 10 === 0;) {\n w /= 10;\n }\n\n return str + w;\n }\n\n function checkInt32(i, min, max) {\n if (i !== ~~i || i < min || i > max) {\n throw Error(invalidArgument + i);\n }\n }\n /*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\n\n\n function checkRoundingDigits(d, i, rm, repeating) {\n var di, k, r, rd; // Get the length of the first word of the array d.\n\n for (k = d[0]; k >= 10; k /= 10) {\n --i;\n } // Is the rounding digit in the first word of d?\n\n\n if (--i < 0) {\n i += LOG_BASE;\n di = 0;\n } else {\n di = Math.ceil((i + 1) / LOG_BASE);\n i %= LOG_BASE;\n } // i is the index (0 - 6) of the rounding digit.\n // E.g. if within the word 3487563 the first rounding digit is 5,\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\n\n\n k = mathpow(10, LOG_BASE - i);\n rd = d[di] % k | 0;\n\n if (repeating == null) {\n if (i < 3) {\n if (i == 0) rd = rd / 100 | 0;else if (i == 1) rd = rd / 10 | 0;\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\n } else {\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 || (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\n }\n } else {\n if (i < 4) {\n if (i == 0) rd = rd / 1000 | 0;else if (i == 1) rd = rd / 100 | 0;else if (i == 2) rd = rd / 10 | 0;\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\n } else {\n r = ((repeating || rm < 4) && rd + 1 == k || !repeating && rm > 3 && rd + 1 == k / 2) && (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\n }\n }\n\n return r;\n } // Convert string of `baseIn` to an array of numbers of `baseOut`.\n // Eg. convertBase('255', 10, 16) returns [15, 15].\n // Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\n\n\n function convertBase(str, baseIn, baseOut) {\n var j,\n arr = [0],\n arrL,\n i = 0,\n strL = str.length;\n\n for (; i < strL;) {\n for (arrL = arr.length; arrL--;) {\n arr[arrL] *= baseIn;\n }\n\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\n\n for (j = 0; j < arr.length; j++) {\n if (arr[j] > baseOut - 1) {\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\n arr[j + 1] += arr[j] / baseOut | 0;\n arr[j] %= baseOut;\n }\n }\n }\n\n return arr.reverse();\n }\n /*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\n\n\n function cosine(Ctor, x) {\n var k, len, y;\n if (x.isZero()) return x; // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\n // Estimate the optimum number of times to use the argument reduction.\n\n len = x.d.length;\n\n if (len < 32) {\n k = Math.ceil(len / 3);\n y = (1 / tinyPow(4, k)).toString();\n } else {\n k = 16;\n y = '2.3283064365386962890625e-10';\n }\n\n Ctor.precision += k;\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1)); // Reverse argument reduction\n\n for (var i = k; i--;) {\n var cos2x = x.times(x);\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\n }\n\n Ctor.precision -= k;\n return x;\n }\n /*\r\n * Perform division in the specified base.\r\n */\n\n\n var divide = function () {\n // Assumes non-zero x and k, and hence non-zero result.\n function multiplyInteger(x, k, base) {\n var temp,\n carry = 0,\n i = x.length;\n\n for (x = x.slice(); i--;) {\n temp = x[i] * k + carry;\n x[i] = temp % base | 0;\n carry = temp / base | 0;\n }\n\n if (carry) x.unshift(carry);\n return x;\n }\n\n function compare(a, b, aL, bL) {\n var i, r;\n\n if (aL != bL) {\n r = aL > bL ? 1 : -1;\n } else {\n for (i = r = 0; i < aL; i++) {\n if (a[i] != b[i]) {\n r = a[i] > b[i] ? 1 : -1;\n break;\n }\n }\n }\n\n return r;\n }\n\n function subtract(a, b, aL, base) {\n var i = 0; // Subtract b from a.\n\n for (; aL--;) {\n a[aL] -= i;\n i = a[aL] < b[aL] ? 1 : 0;\n a[aL] = i * base + a[aL] - b[aL];\n } // Remove leading zeros.\n\n\n for (; !a[0] && a.length > 1;) {\n a.shift();\n }\n }\n\n return function (x, y, pr, rm, dp, base) {\n var cmp,\n e,\n i,\n k,\n logBase,\n more,\n prod,\n prodL,\n q,\n qd,\n rem,\n remL,\n rem0,\n sd,\n t,\n xi,\n xL,\n yd0,\n yL,\n yz,\n Ctor = x.constructor,\n sign = x.s == y.s ? 1 : -1,\n xd = x.d,\n yd = y.d; // Either NaN, Infinity or 0?\n\n if (!xd || !xd[0] || !yd || !yd[0]) {\n return new Ctor( // Return NaN if either NaN, or both Infinity or 0.\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\n }\n\n if (base) {\n logBase = 1;\n e = x.e - y.e;\n } else {\n base = BASE;\n logBase = LOG_BASE;\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\n }\n\n yL = yd.length;\n xL = xd.length;\n q = new Ctor(sign);\n qd = q.d = []; // Result exponent may be one less than e.\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\n\n for (i = 0; yd[i] == (xd[i] || 0); i++) {\n ;\n }\n\n if (yd[i] > (xd[i] || 0)) e--;\n\n if (pr == null) {\n sd = pr = Ctor.precision;\n rm = Ctor.rounding;\n } else if (dp) {\n sd = pr + (x.e - y.e) + 1;\n } else {\n sd = pr;\n }\n\n if (sd < 0) {\n qd.push(1);\n more = true;\n } else {\n // Convert precision in number of base 10 digits to base 1e7 digits.\n sd = sd / logBase + 2 | 0;\n i = 0; // divisor < 1e7\n\n if (yL == 1) {\n k = 0;\n yd = yd[0];\n sd++; // k is the carry.\n\n for (; (i < xL || k) && sd--; i++) {\n t = k * base + (xd[i] || 0);\n qd[i] = t / yd | 0;\n k = t % yd | 0;\n }\n\n more = k || i < xL; // divisor >= 1e7\n } else {\n // Normalise xd and yd so highest order digit of yd is >= base/2\n k = base / (yd[0] + 1) | 0;\n\n if (k > 1) {\n yd = multiplyInteger(yd, k, base);\n xd = multiplyInteger(xd, k, base);\n yL = yd.length;\n xL = xd.length;\n }\n\n xi = yL;\n rem = xd.slice(0, yL);\n remL = rem.length; // Add zeros to make remainder as long as divisor.\n\n for (; remL < yL;) {\n rem[remL++] = 0;\n }\n\n yz = yd.slice();\n yz.unshift(0);\n yd0 = yd[0];\n if (yd[1] >= base / 2) ++yd0;\n\n do {\n k = 0; // Compare divisor and remainder.\n\n cmp = compare(yd, rem, yL, remL); // If divisor < remainder.\n\n if (cmp < 0) {\n // Calculate trial digit, k.\n rem0 = rem[0];\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); // k will be how many times the divisor goes into the current remainder.\n\n k = rem0 / yd0 | 0; // Algorithm:\n // 1. product = divisor * trial digit (k)\n // 2. if product > remainder: product -= divisor, k--\n // 3. remainder -= product\n // 4. if product was < remainder at 2:\n // 5. compare new remainder and divisor\n // 6. If remainder > divisor: remainder -= divisor, k++\n\n if (k > 1) {\n if (k >= base) k = base - 1; // product = divisor * trial digit.\n\n prod = multiplyInteger(yd, k, base);\n prodL = prod.length;\n remL = rem.length; // Compare product and remainder.\n\n cmp = compare(prod, rem, prodL, remL); // product > remainder.\n\n if (cmp == 1) {\n k--; // Subtract divisor from product.\n\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\n }\n } else {\n // cmp is -1.\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\n if (k == 0) cmp = k = 1;\n prod = yd.slice();\n }\n\n prodL = prod.length;\n if (prodL < remL) prod.unshift(0); // Subtract product from remainder.\n\n subtract(rem, prod, remL, base); // If product was < previous remainder.\n\n if (cmp == -1) {\n remL = rem.length; // Compare divisor and new remainder.\n\n cmp = compare(yd, rem, yL, remL); // If divisor < new remainder, subtract divisor from remainder.\n\n if (cmp < 1) {\n k++; // Subtract divisor from remainder.\n\n subtract(rem, yL < remL ? yz : yd, remL, base);\n }\n }\n\n remL = rem.length;\n } else if (cmp === 0) {\n k++;\n rem = [0];\n } // if cmp === 1, k will be 0\n // Add the next digit, k, to the result array.\n\n\n qd[i++] = k; // Update the remainder.\n\n if (cmp && rem[0]) {\n rem[remL++] = xd[xi] || 0;\n } else {\n rem = [xd[xi]];\n remL = 1;\n }\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\n\n more = rem[0] !== void 0;\n } // Leading zero?\n\n\n if (!qd[0]) qd.shift();\n } // logBase is 1 when divide is being used for base conversion.\n\n\n if (logBase == 1) {\n q.e = e;\n inexact = more;\n } else {\n // To calculate q.e, first get the number of digits of qd[0].\n for (i = 1, k = qd[0]; k >= 10; k /= 10) {\n i++;\n }\n\n q.e = i + e * logBase - 1;\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\n }\n\n return q;\n };\n }();\n /*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\n\n\n function finalise(x, sd, rm, isTruncated) {\n var digits,\n i,\n j,\n k,\n rd,\n roundUp,\n w,\n xd,\n xdi,\n Ctor = x.constructor; // Don't round if sd is null or undefined.\n\n out: if (sd != null) {\n xd = x.d; // Infinity/NaN.\n\n if (!xd) return x; // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\n // w: the word of xd containing rd, a base 1e7 number.\n // xdi: the index of w within xd.\n // digits: the number of digits of w.\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\n // they had leading zeros)\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\n // Get the length of the first word of the digits array xd.\n\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) {\n digits++;\n }\n\n i = sd - digits; // Is the rounding digit in the first word of xd?\n\n if (i < 0) {\n i += LOG_BASE;\n j = sd;\n w = xd[xdi = 0]; // Get the rounding digit at index j of w.\n\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\n } else {\n xdi = Math.ceil((i + 1) / LOG_BASE);\n k = xd.length;\n\n if (xdi >= k) {\n if (isTruncated) {\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\n for (; k++ <= xdi;) {\n xd.push(0);\n }\n\n w = rd = 0;\n digits = 1;\n i %= LOG_BASE;\n j = i - LOG_BASE + 1;\n } else {\n break out;\n }\n } else {\n w = k = xd[xdi]; // Get the number of digits of w.\n\n for (digits = 1; k >= 10; k /= 10) {\n digits++;\n } // Get the index of rd within w.\n\n\n i %= LOG_BASE; // Get the index of rd within w, adjusted for leading zeros.\n // The number of leading zeros of w is given by LOG_BASE - digits.\n\n j = i - LOG_BASE + digits; // Get the rounding digit at index j of w.\n\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\n }\n } // Are there any non-zero digits after the rounding digit?\n\n\n isTruncated = isTruncated || sd < 0 || xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1)); // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\n // will give 714.\n\n roundUp = rm < 4 ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.\n (i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));\n\n if (sd < 1 || !xd[0]) {\n xd.length = 0;\n\n if (roundUp) {\n // Convert sd to decimal places.\n sd -= x.e + 1; // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\n x.e = -sd || 0;\n } else {\n // Zero.\n xd[0] = x.e = 0;\n }\n\n return x;\n } // Remove excess digits.\n\n\n if (i == 0) {\n xd.length = xdi;\n k = 1;\n xdi--;\n } else {\n xd.length = xdi + 1;\n k = mathpow(10, LOG_BASE - i); // E.g. 56700 becomes 56000 if 7 is the rounding digit.\n // j > 0 means i > number of leading zeros of w.\n\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\n }\n\n if (roundUp) {\n for (;;) {\n // Is the digit to be rounded up in the first word of xd?\n if (xdi == 0) {\n // i will be the length of xd[0] before k is added.\n for (i = 1, j = xd[0]; j >= 10; j /= 10) {\n i++;\n }\n\n j = xd[0] += k;\n\n for (k = 1; j >= 10; j /= 10) {\n k++;\n } // if i != k the length has increased.\n\n\n if (i != k) {\n x.e++;\n if (xd[0] == BASE) xd[0] = 1;\n }\n\n break;\n } else {\n xd[xdi] += k;\n if (xd[xdi] != BASE) break;\n xd[xdi--] = 0;\n k = 1;\n }\n }\n } // Remove trailing zeros.\n\n\n for (i = xd.length; xd[--i] === 0;) {\n xd.pop();\n }\n }\n\n if (external) {\n // Overflow?\n if (x.e > Ctor.maxE) {\n // Infinity.\n x.d = null;\n x.e = NaN; // Underflow?\n } else if (x.e < Ctor.minE) {\n // Zero.\n x.e = 0;\n x.d = [0]; // Ctor.underflow = true;\n } // else Ctor.underflow = false;\n\n }\n\n return x;\n }\n\n function finiteToString(x, isExp, sd) {\n if (!x.isFinite()) return nonFiniteToString(x);\n var k,\n e = x.e,\n str = digitsToString(x.d),\n len = str.length;\n\n if (isExp) {\n if (sd && (k = sd - len) > 0) {\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\n } else if (len > 1) {\n str = str.charAt(0) + '.' + str.slice(1);\n }\n\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\n } else if (e < 0) {\n str = '0.' + getZeroString(-e - 1) + str;\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\n } else if (e >= len) {\n str += getZeroString(e + 1 - len);\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\n } else {\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\n\n if (sd && (k = sd - len) > 0) {\n if (e + 1 === len) str += '.';\n str += getZeroString(k);\n }\n }\n\n return str;\n } // Calculate the base 10 exponent from the base 1e7 exponent.\n\n\n function getBase10Exponent(digits, e) {\n var w = digits[0]; // Add the number of digits of the first word of the digits array.\n\n for (e *= LOG_BASE; w >= 10; w /= 10) {\n e++;\n }\n\n return e;\n }\n\n function getLn10(Ctor, sd, pr) {\n if (sd > LN10_PRECISION) {\n // Reset global state in case the exception is caught.\n external = true;\n if (pr) Ctor.precision = pr;\n throw Error(precisionLimitExceeded);\n }\n\n return finalise(new Ctor(LN10), sd, 1, true);\n }\n\n function getPi(Ctor, sd, rm) {\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\n return finalise(new Ctor(PI), sd, rm, true);\n }\n\n function getPrecision(digits) {\n var w = digits.length - 1,\n len = w * LOG_BASE + 1;\n w = digits[w]; // If non-zero...\n\n if (w) {\n // Subtract the number of trailing zeros of the last word.\n for (; w % 10 == 0; w /= 10) {\n len--;\n } // Add the number of digits of the first word.\n\n\n for (w = digits[0]; w >= 10; w /= 10) {\n len++;\n }\n }\n\n return len;\n }\n\n function getZeroString(k) {\n var zs = '';\n\n for (; k--;) {\n zs += '0';\n }\n\n return zs;\n }\n /*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\n\n\n function intPow(Ctor, x, n, pr) {\n var isTruncated,\n r = new Ctor(1),\n // Max n of 9007199254740991 takes 53 loop iterations.\n // Maximum digits array length; leaves [28, 34] guard digits.\n k = Math.ceil(pr / LOG_BASE + 4);\n external = false;\n\n for (;;) {\n if (n % 2) {\n r = r.times(x);\n if (truncate(r.d, k)) isTruncated = true;\n }\n\n n = mathfloor(n / 2);\n\n if (n === 0) {\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\n n = r.d.length - 1;\n if (isTruncated && r.d[n] === 0) ++r.d[n];\n break;\n }\n\n x = x.times(x);\n truncate(x.d, k);\n }\n\n external = true;\n return r;\n }\n\n function isOdd(n) {\n return n.d[n.d.length - 1] & 1;\n }\n /*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\n\n\n function maxOrMin(Ctor, args, ltgt) {\n var y,\n x = new Ctor(args[0]),\n i = 0;\n\n for (; ++i < args.length;) {\n y = new Ctor(args[i]);\n\n if (!y.s) {\n x = y;\n break;\n } else if (x[ltgt](y)) {\n x = y;\n }\n }\n\n return x;\n }\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * 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 * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\n\n\n function naturalExponential(x, sd) {\n var denominator,\n guard,\n j,\n pow,\n sum,\n t,\n wpr,\n rep = 0,\n i = 0,\n k = 0,\n Ctor = x.constructor,\n rm = Ctor.rounding,\n pr = Ctor.precision; // 0/NaN/Infinity?\n\n if (!x.d || !x.d[0] || x.e > 17) {\n return new Ctor(x.d ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 : x.s ? x.s < 0 ? 0 : x : 0 / 0);\n }\n\n if (sd == null) {\n external = false;\n wpr = pr;\n } else {\n wpr = sd;\n }\n\n t = new Ctor(0.03125); // while abs(x) >= 0.1\n\n while (x.e > -2) {\n // x = x / 2^5\n x = x.times(t);\n k += 5;\n } // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\n // necessary to ensure the first 4 rounding digits are correct.\n\n\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\n wpr += guard;\n denominator = pow = sum = new Ctor(1);\n Ctor.precision = wpr;\n\n for (;;) {\n pow = finalise(pow.times(x), wpr, 1);\n denominator = denominator.times(++i);\n t = sum.plus(divide(pow, denominator, wpr, 1));\n\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\n j = k;\n\n while (j--) {\n sum = finalise(sum.times(sum), wpr, 1);\n } // Check to see if the first 4 rounding digits are [49]999.\n // If so, repeat the summation with a higher precision, otherwise\n // e.g. with precision: 18, rounding: 1\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\n // `wpr - guard` is the index of first rounding digit.\n\n\n if (sd == null) {\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\n Ctor.precision = wpr += 10;\n denominator = pow = t = new Ctor(1);\n i = 0;\n rep++;\n } else {\n return finalise(sum, Ctor.precision = pr, rm, external = true);\n }\n } else {\n Ctor.precision = pr;\n return sum;\n }\n }\n\n sum = t;\n }\n }\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\n\n\n function naturalLogarithm(y, sd) {\n var c,\n c0,\n denominator,\n e,\n numerator,\n rep,\n sum,\n t,\n wpr,\n x1,\n x2,\n n = 1,\n guard = 10,\n x = y,\n xd = x.d,\n Ctor = x.constructor,\n rm = Ctor.rounding,\n pr = Ctor.precision; // Is x negative or Infinity, NaN, 0 or 1?\n\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\n }\n\n if (sd == null) {\n external = false;\n wpr = pr;\n } else {\n wpr = sd;\n }\n\n Ctor.precision = wpr += guard;\n c = digitsToString(xd);\n c0 = c.charAt(0);\n\n if (Math.abs(e = x.e) < 1.5e15) {\n // Argument reduction.\n // The series converges faster the closer the argument is to 1, so using\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\n // later be divided by this number, then separate out the power of 10 using\n // ln(a*10^b) = ln(a) + b*ln(10).\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\n // max n is 6 (gives 0.7 - 1.3)\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\n x = x.times(y);\n c = digitsToString(x.d);\n c0 = c.charAt(0);\n n++;\n }\n\n e = x.e;\n\n if (c0 > 1) {\n x = new Ctor('0.' + c);\n e++;\n } else {\n x = new Ctor(c0 + '.' + c.slice(1));\n }\n } else {\n // The argument reduction method above may result in overflow if the argument y is a massive\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\n // function using ln(x*10^e) = ln(x) + e*ln(10).\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\n Ctor.precision = pr;\n return sd == null ? finalise(x, pr, rm, external = true) : x;\n } // x1 is x reduced to a value near 1.\n\n\n x1 = x; // Taylor series.\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\n // where x = (y - 1)/(y + 1) (|x| < 1)\n\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\n x2 = finalise(x.times(x), wpr, 1);\n denominator = 3;\n\n for (;;) {\n numerator = finalise(numerator.times(x2), wpr, 1);\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\n\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\n sum = sum.times(2); // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\n\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\n sum = divide(sum, new Ctor(n), wpr, 1); // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\n // been repeated previously) and the first 4 rounding digits 9999?\n // If so, restart the summation with a higher precision, otherwise\n // e.g. with precision: 12, rounding: 1\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\n // `wpr - guard` is the index of first rounding digit.\n\n if (sd == null) {\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\n Ctor.precision = wpr += guard;\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\n x2 = finalise(x.times(x), wpr, 1);\n denominator = rep = 1;\n } else {\n return finalise(sum, Ctor.precision = pr, rm, external = true);\n }\n } else {\n Ctor.precision = pr;\n return sum;\n }\n }\n\n sum = t;\n denominator += 2;\n }\n } // ±Infinity, NaN.\n\n\n function nonFiniteToString(x) {\n // Unsigned.\n return String(x.s * x.s / 0);\n }\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\n\n\n function parseDecimal(x, str) {\n var e, i, len; // Decimal point?\n\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); // Exponential form?\n\n if ((i = str.search(/e/i)) > 0) {\n // Determine exponent.\n if (e < 0) e = i;\n e += +str.slice(i + 1);\n str = str.substring(0, i);\n } else if (e < 0) {\n // Integer.\n e = str.length;\n } // Determine leading zeros.\n\n\n for (i = 0; str.charCodeAt(i) === 48; i++) {\n ;\n } // Determine trailing zeros.\n\n\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len) {\n ;\n }\n\n str = str.slice(i, len);\n\n if (str) {\n len -= i;\n x.e = e = e - i - 1;\n x.d = []; // Transform base\n // e is the base 10 exponent.\n // i is where to slice str to get the first word of the digits array.\n\n i = (e + 1) % LOG_BASE;\n if (e < 0) i += LOG_BASE;\n\n if (i < len) {\n if (i) x.d.push(+str.slice(0, i));\n\n for (len -= LOG_BASE; i < len;) {\n x.d.push(+str.slice(i, i += LOG_BASE));\n }\n\n str = str.slice(i);\n i = LOG_BASE - str.length;\n } else {\n i -= len;\n }\n\n for (; i--;) {\n str += '0';\n }\n\n x.d.push(+str);\n\n if (external) {\n // Overflow?\n if (x.e > x.constructor.maxE) {\n // Infinity.\n x.d = null;\n x.e = NaN; // Underflow?\n } else if (x.e < x.constructor.minE) {\n // Zero.\n x.e = 0;\n x.d = [0]; // x.constructor.underflow = true;\n } // else x.constructor.underflow = false;\n\n }\n } else {\n // Zero.\n x.e = 0;\n x.d = [0];\n }\n\n return x;\n }\n /*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\n\n\n function parseOther(x, str) {\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\n\n if (str.indexOf('_') > -1) {\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\n if (isDecimal.test(str)) return parseDecimal(x, str);\n } else if (str === 'Infinity' || str === 'NaN') {\n if (!+str) x.s = NaN;\n x.e = NaN;\n x.d = null;\n return x;\n }\n\n if (isHex.test(str)) {\n base = 16;\n str = str.toLowerCase();\n } else if (isBinary.test(str)) {\n base = 2;\n } else if (isOctal.test(str)) {\n base = 8;\n } else {\n throw Error(invalidArgument + str);\n } // Is there a binary exponent part?\n\n\n i = str.search(/p/i);\n\n if (i > 0) {\n p = +str.slice(i + 1);\n str = str.substring(2, i);\n } else {\n str = str.slice(2);\n } // Convert `str` as an integer then divide the result by `base` raised to a power such that the\n // fraction part will be restored.\n\n\n i = str.indexOf('.');\n isFloat = i >= 0;\n Ctor = x.constructor;\n\n if (isFloat) {\n str = str.replace('.', '');\n len = str.length;\n i = len - i; // log[10](16) = 1.2041... , log[10](88) = 1.9444....\n\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\n }\n\n xd = convertBase(str, base, BASE);\n xe = xd.length - 1; // Remove trailing zeros.\n\n for (i = xe; xd[i] === 0; --i) {\n xd.pop();\n }\n\n if (i < 0) return new Ctor(x.s * 0);\n x.e = getBase10Exponent(xd, xe);\n x.d = xd;\n external = false; // At what precision to perform the division to ensure exact conversion?\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\n // Therefore using 4 * the number of digits of str will always be enough.\n\n if (isFloat) x = divide(x, divisor, len * 4); // Multiply by the binary exponent part if present.\n\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\n external = true;\n return x;\n }\n /*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\n\n\n function sine(Ctor, x) {\n var k,\n len = x.d.length;\n\n if (len < 3) {\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\n } // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\n // Estimate the optimum number of times to use the argument reduction.\n\n\n k = 1.4 * Math.sqrt(len);\n k = k > 16 ? 16 : k | 0;\n x = x.times(1 / tinyPow(5, k));\n x = taylorSeries(Ctor, 2, x, x); // Reverse argument reduction\n\n var sin2_x,\n d5 = new Ctor(5),\n d16 = new Ctor(16),\n d20 = new Ctor(20);\n\n for (; k--;) {\n sin2_x = x.times(x);\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\n }\n\n return x;\n } // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\n\n\n function taylorSeries(Ctor, n, x, y, isHyperbolic) {\n var j,\n t,\n u,\n x2,\n i = 1,\n pr = Ctor.precision,\n k = Math.ceil(pr / LOG_BASE);\n external = false;\n x2 = x.times(x);\n u = new Ctor(y);\n\n for (;;) {\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\n u = isHyperbolic ? y.plus(t) : y.minus(t);\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\n t = u.plus(y);\n\n if (t.d[k] !== void 0) {\n for (j = k; t.d[j] === u.d[j] && j--;) {\n ;\n }\n\n if (j == -1) break;\n }\n\n j = u;\n u = y;\n y = t;\n t = j;\n i++;\n }\n\n external = true;\n t.d.length = k + 1;\n return t;\n } // Exponent e must be positive and non-zero.\n\n\n function tinyPow(b, e) {\n var n = b;\n\n while (--e) {\n n *= b;\n }\n\n return n;\n } // Return the absolute value of `x` reduced to less than or equal to half pi.\n\n\n function toLessThanHalfPi(Ctor, x) {\n var t,\n isNeg = x.s < 0,\n pi = getPi(Ctor, Ctor.precision, 1),\n halfPi = pi.times(0.5);\n x = x.abs();\n\n if (x.lte(halfPi)) {\n quadrant = isNeg ? 4 : 1;\n return x;\n }\n\n t = x.divToInt(pi);\n\n if (t.isZero()) {\n quadrant = isNeg ? 3 : 2;\n } else {\n x = x.minus(t.times(pi)); // 0 <= x < pi\n\n if (x.lte(halfPi)) {\n quadrant = isOdd(t) ? isNeg ? 2 : 3 : isNeg ? 4 : 1;\n return x;\n }\n\n quadrant = isOdd(t) ? isNeg ? 1 : 4 : isNeg ? 3 : 2;\n }\n\n return x.minus(pi).abs();\n }\n /*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\n\n\n function toStringBinary(x, baseOut, sd, rm) {\n var base,\n e,\n i,\n k,\n len,\n roundUp,\n str,\n xd,\n y,\n Ctor = x.constructor,\n isExp = sd !== void 0;\n\n if (isExp) {\n checkInt32(sd, 1, MAX_DIGITS);\n if (rm === void 0) rm = Ctor.rounding;else checkInt32(rm, 0, 8);\n } else {\n sd = Ctor.precision;\n rm = Ctor.rounding;\n }\n\n if (!x.isFinite()) {\n str = nonFiniteToString(x);\n } else {\n str = finiteToString(x);\n i = str.indexOf('.'); // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\n // minBinaryExponent = floor(decimalExponent * log[2](10))\n // log[2](10) = 3.321928094887362347870319429489390175864\n\n if (isExp) {\n base = 2;\n\n if (baseOut == 16) {\n sd = sd * 4 - 3;\n } else if (baseOut == 8) {\n sd = sd * 3 - 2;\n }\n } else {\n base = baseOut;\n } // Convert the number as an integer then divide the result by its base raised to a power such\n // that the fraction part will be restored.\n // Non-integer.\n\n\n if (i >= 0) {\n str = str.replace('.', '');\n y = new Ctor(1);\n y.e = str.length - i;\n y.d = convertBase(finiteToString(y), 10, base);\n y.e = y.d.length;\n }\n\n xd = convertBase(str, 10, base);\n e = len = xd.length; // Remove trailing zeros.\n\n for (; xd[--len] == 0;) {\n xd.pop();\n }\n\n if (!xd[0]) {\n str = isExp ? '0p+0' : '0';\n } else {\n if (i < 0) {\n e--;\n } else {\n x = new Ctor(x);\n x.d = xd;\n x.e = e;\n x = divide(x, y, sd, rm, 0, base);\n xd = x.d;\n e = x.e;\n roundUp = inexact;\n } // The rounding digit, i.e. the digit after the digit that may be rounded up.\n\n\n i = xd[sd];\n k = base / 2;\n roundUp = roundUp || xd[sd + 1] !== void 0;\n roundUp = rm < 4 ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || rm === (x.s < 0 ? 8 : 7));\n xd.length = sd;\n\n if (roundUp) {\n // Rounding up may mean the previous digit has to be rounded up and so on.\n for (; ++xd[--sd] > base - 1;) {\n xd[sd] = 0;\n\n if (!sd) {\n ++e;\n xd.unshift(1);\n }\n }\n } // Determine trailing zeros.\n\n\n for (len = xd.length; !xd[len - 1]; --len) {\n ;\n } // E.g. [4, 11, 15] becomes 4bf.\n\n\n for (i = 0, str = ''; i < len; i++) {\n str += NUMERALS.charAt(xd[i]);\n } // Add binary exponent suffix?\n\n\n if (isExp) {\n if (len > 1) {\n if (baseOut == 16 || baseOut == 8) {\n i = baseOut == 16 ? 4 : 3;\n\n for (--len; len % i; len++) {\n str += '0';\n }\n\n xd = convertBase(str, base, baseOut);\n\n for (len = xd.length; !xd[len - 1]; --len) {\n ;\n } // xd[0] will always be be 1\n\n\n for (i = 1, str = '1.'; i < len; i++) {\n str += NUMERALS.charAt(xd[i]);\n }\n } else {\n str = str.charAt(0) + '.' + str.slice(1);\n }\n }\n\n str = str + (e < 0 ? 'p' : 'p+') + e;\n } else if (e < 0) {\n for (; ++e;) {\n str = '0' + str;\n }\n\n str = '0.' + str;\n } else {\n if (++e > len) for (e -= len; e--;) {\n str += '0';\n } else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\n }\n }\n\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\n }\n\n return x.s < 0 ? '-' + str : str;\n } // Does not strip trailing zeros.\n\n\n function truncate(arr, len) {\n if (arr.length > len) {\n arr.length = len;\n return true;\n }\n } // Decimal methods\n\n /*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\n\n /*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function abs(x) {\n return new this(x).abs();\n }\n /*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function acos(x) {\n return new this(x).acos();\n }\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function acosh(x) {\n return new this(x).acosh();\n }\n /*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\n\n\n function add(x, y) {\n return new this(x).plus(y);\n }\n /*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function asin(x) {\n return new this(x).asin();\n }\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function asinh(x) {\n return new this(x).asinh();\n }\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function atan(x) {\n return new this(x).atan();\n }\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function atanh(x) {\n return new this(x).atanh();\n }\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\n\n\n function atan2(y, x) {\n y = new this(y);\n x = new this(x);\n var r,\n pr = this.precision,\n rm = this.rounding,\n wpr = pr + 4; // Either NaN\n\n if (!y.s || !x.s) {\n r = new this(NaN); // Both ±Infinity\n } else if (!y.d && !x.d) {\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\n r.s = y.s; // x is ±Infinity or y is ±0\n } else if (!x.d || y.isZero()) {\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\n r.s = y.s; // y is ±Infinity or x is ±0\n } else if (!y.d || x.isZero()) {\n r = getPi(this, wpr, 1).times(0.5);\n r.s = y.s; // Both non-zero and finite\n } else if (x.s < 0) {\n this.precision = wpr;\n this.rounding = 1;\n r = this.atan(divide(y, x, wpr, 1));\n x = getPi(this, wpr, 1);\n this.precision = pr;\n this.rounding = rm;\n r = y.s < 0 ? r.minus(x) : r.plus(x);\n } else {\n r = this.atan(divide(y, x, wpr, 1));\n }\n\n return r;\n }\n /*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function cbrt(x) {\n return new this(x).cbrt();\n }\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function ceil(x) {\n return finalise(x = new this(x), x.e + 1, 2);\n }\n /*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|Decimal}\r\n * min {number|string|Decimal}\r\n * max {number|string|Decimal}\r\n *\r\n */\n\n\n function clamp(x, min, max) {\n return new this(x).clamp(min, max);\n }\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 * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\n\n\n function config(obj) {\n if (!obj || _typeof(obj) !== 'object') throw Error(decimalError + 'Object expected');\n var i,\n p,\n v,\n useDefaults = obj.defaults === true,\n ps = ['precision', 1, MAX_DIGITS, 'rounding', 0, 8, 'toExpNeg', -EXP_LIMIT, 0, 'toExpPos', 0, EXP_LIMIT, 'maxE', 0, EXP_LIMIT, 'minE', -EXP_LIMIT, 0, 'modulo', 0, 9];\n\n for (i = 0; i < ps.length; i += 3) {\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\n\n if ((v = obj[p]) !== void 0) {\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;else throw Error(invalidArgument + p + ': ' + v);\n }\n }\n\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\n\n if ((v = obj[p]) !== void 0) {\n if (v === true || v === false || v === 0 || v === 1) {\n if (v) {\n if (typeof crypto != 'undefined' && crypto && (crypto.getRandomValues || crypto.randomBytes)) {\n this[p] = true;\n } else {\n throw Error(cryptoUnavailable);\n }\n } else {\n this[p] = false;\n }\n } else {\n throw Error(invalidArgument + p + ': ' + v);\n }\n }\n\n return this;\n }\n /*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function cos(x) {\n return new this(x).cos();\n }\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function cosh(x) {\n return new this(x).cosh();\n }\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\n\n\n function clone(obj) {\n var i, p, ps;\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\n\n function Decimal(v) {\n var e,\n i,\n t,\n x = this; // Decimal called without new.\n\n if (!(x instanceof Decimal)) return new Decimal(v); // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\n // which points to Object.\n\n x.constructor = Decimal; // Duplicate.\n\n if (isDecimalInstance(v)) {\n x.s = v.s;\n\n if (external) {\n if (!v.d || v.e > Decimal.maxE) {\n // Infinity.\n x.e = NaN;\n x.d = null;\n } else if (v.e < Decimal.minE) {\n // Zero.\n x.e = 0;\n x.d = [0];\n } else {\n x.e = v.e;\n x.d = v.d.slice();\n }\n } else {\n x.e = v.e;\n x.d = v.d ? v.d.slice() : v.d;\n }\n\n return;\n }\n\n t = _typeof(v);\n\n if (t === 'number') {\n if (v === 0) {\n x.s = 1 / v < 0 ? -1 : 1;\n x.e = 0;\n x.d = [0];\n return;\n }\n\n if (v < 0) {\n v = -v;\n x.s = -1;\n } else {\n x.s = 1;\n } // Fast path for small integers.\n\n\n if (v === ~~v && v < 1e7) {\n for (e = 0, i = v; i >= 10; i /= 10) {\n e++;\n }\n\n if (external) {\n if (e > Decimal.maxE) {\n x.e = NaN;\n x.d = null;\n } else if (e < Decimal.minE) {\n x.e = 0;\n x.d = [0];\n } else {\n x.e = e;\n x.d = [v];\n }\n } else {\n x.e = e;\n x.d = [v];\n }\n\n return; // Infinity, NaN.\n } else if (v * 0 !== 0) {\n if (!v) x.s = NaN;\n x.e = NaN;\n x.d = null;\n return;\n }\n\n return parseDecimal(x, v.toString());\n } else if (t !== 'string') {\n throw Error(invalidArgument + v);\n } // Minus sign?\n\n\n if ((i = v.charCodeAt(0)) === 45) {\n v = v.slice(1);\n x.s = -1;\n } else {\n // Plus sign?\n if (i === 43) v = v.slice(1);\n x.s = 1;\n }\n\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\n }\n\n Decimal.prototype = P;\n Decimal.ROUND_UP = 0;\n Decimal.ROUND_DOWN = 1;\n Decimal.ROUND_CEIL = 2;\n Decimal.ROUND_FLOOR = 3;\n Decimal.ROUND_HALF_UP = 4;\n Decimal.ROUND_HALF_DOWN = 5;\n Decimal.ROUND_HALF_EVEN = 6;\n Decimal.ROUND_HALF_CEIL = 7;\n Decimal.ROUND_HALF_FLOOR = 8;\n Decimal.EUCLID = 9;\n Decimal.config = Decimal.set = config;\n Decimal.clone = clone;\n Decimal.isDecimal = isDecimalInstance;\n Decimal.abs = abs;\n Decimal.acos = acos;\n Decimal.acosh = acosh; // ES6\n\n Decimal.add = add;\n Decimal.asin = asin;\n Decimal.asinh = asinh; // ES6\n\n Decimal.atan = atan;\n Decimal.atanh = atanh; // ES6\n\n Decimal.atan2 = atan2;\n Decimal.cbrt = cbrt; // ES6\n\n Decimal.ceil = ceil;\n Decimal.clamp = clamp;\n Decimal.cos = cos;\n Decimal.cosh = cosh; // ES6\n\n Decimal.div = div;\n Decimal.exp = exp;\n Decimal.floor = floor;\n Decimal.hypot = hypot; // ES6\n\n Decimal.ln = ln;\n Decimal.log = log;\n Decimal.log10 = log10; // ES6\n\n Decimal.log2 = log2; // ES6\n\n Decimal.max = max;\n Decimal.min = min;\n Decimal.mod = mod;\n Decimal.mul = mul;\n Decimal.pow = pow;\n Decimal.random = random;\n Decimal.round = round;\n Decimal.sign = sign; // ES6\n\n Decimal.sin = sin;\n Decimal.sinh = sinh; // ES6\n\n Decimal.sqrt = sqrt;\n Decimal.sub = sub;\n Decimal.sum = sum;\n Decimal.tan = tan;\n Decimal.tanh = tanh; // ES6\n\n Decimal.trunc = trunc; // ES6\n\n if (obj === void 0) obj = {};\n\n if (obj) {\n if (obj.defaults !== true) {\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\n\n for (i = 0; i < ps.length;) {\n if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\n }\n }\n }\n\n Decimal.config(obj);\n return Decimal;\n }\n /*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\n\n\n function div(x, y) {\n return new this(x).div(y);\n }\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\n\n\n function exp(x) {\n return new this(x).exp();\n }\n /*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function floor(x) {\n return finalise(x = new this(x), x.e + 1, 3);\n }\n /*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\n\n\n function hypot() {\n var i,\n n,\n t = new this(0);\n external = false;\n\n for (i = 0; i < arguments.length;) {\n n = new this(arguments[i++]);\n\n if (!n.d) {\n if (n.s) {\n external = true;\n return new this(1 / 0);\n }\n\n t = n;\n } else if (t.d) {\n t = t.plus(n.times(n));\n }\n }\n\n external = true;\n return t.sqrt();\n }\n /*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\n\n\n function isDecimalInstance(obj) {\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\n }\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function ln(x) {\n return new this(x).ln();\n }\n /*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\n\n\n function log(x, y) {\n return new this(x).log(y);\n }\n /*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function log2(x) {\n return new this(x).log(2);\n }\n /*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function log10(x) {\n return new this(x).log(10);\n }\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\n\n\n function max() {\n return maxOrMin(this, arguments, 'lt');\n }\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\n\n\n function min() {\n return maxOrMin(this, arguments, 'gt');\n }\n /*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\n\n\n function mod(x, y) {\n return new this(x).mod(y);\n }\n /*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\n\n\n function mul(x, y) {\n return new this(x).mul(y);\n }\n /*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\n\n\n function pow(x, y) {\n return new this(x).pow(y);\n }\n /*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\n\n\n function random(sd) {\n var d,\n e,\n k,\n n,\n i = 0,\n r = new this(1),\n rd = [];\n if (sd === void 0) sd = this.precision;else checkInt32(sd, 1, MAX_DIGITS);\n k = Math.ceil(sd / LOG_BASE);\n\n if (!this.crypto) {\n for (; i < k;) {\n rd[i++] = Math.random() * 1e7 | 0;\n } // Browsers supporting crypto.getRandomValues.\n\n } else if (crypto.getRandomValues) {\n d = crypto.getRandomValues(new Uint32Array(k));\n\n for (; i < k;) {\n n = d[i]; // 0 <= n < 4294967296\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\n\n if (n >= 4.29e9) {\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\n } else {\n // 0 <= n <= 4289999999\n // 0 <= (n % 1e7) <= 9999999\n rd[i++] = n % 1e7;\n }\n } // Node.js supporting crypto.randomBytes.\n\n } else if (crypto.randomBytes) {\n // buffer\n d = crypto.randomBytes(k *= 4);\n\n for (; i < k;) {\n // 0 <= n < 2147483648\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24); // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\n\n if (n >= 2.14e9) {\n crypto.randomBytes(4).copy(d, i);\n } else {\n // 0 <= n <= 2139999999\n // 0 <= (n % 1e7) <= 9999999\n rd.push(n % 1e7);\n i += 4;\n }\n }\n\n i = k / 4;\n } else {\n throw Error(cryptoUnavailable);\n }\n\n k = rd[--i];\n sd %= LOG_BASE; // Convert trailing digits to zeros according to sd.\n\n if (k && sd) {\n n = mathpow(10, LOG_BASE - sd);\n rd[i] = (k / n | 0) * n;\n } // Remove trailing words which are zero.\n\n\n for (; rd[i] === 0; i--) {\n rd.pop();\n } // Zero?\n\n\n if (i < 0) {\n e = 0;\n rd = [0];\n } else {\n e = -1; // Remove leading words which are zero and adjust exponent accordingly.\n\n for (; rd[0] === 0; e -= LOG_BASE) {\n rd.shift();\n } // Count the digits of the first word of rd to determine leading zeros.\n\n\n for (k = 1, n = rd[0]; n >= 10; n /= 10) {\n k++;\n } // Adjust the exponent for leading zeros of the first word of rd.\n\n\n if (k < LOG_BASE) e -= LOG_BASE - k;\n }\n\n r.e = e;\n r.d = rd;\n return r;\n }\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function round(x) {\n return finalise(x = new this(x), x.e + 1, this.rounding);\n }\n /*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function sign(x) {\n x = new this(x);\n return x.d ? x.d[0] ? x.s : 0 * x.s : x.s || NaN;\n }\n /*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function sin(x) {\n return new this(x).sin();\n }\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function sinh(x) {\n return new this(x).sinh();\n }\n /*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function sqrt(x) {\n return new this(x).sqrt();\n }\n /*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\n\n\n function sub(x, y) {\n return new this(x).sub(y);\n }\n /*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\n\n\n function sum() {\n var i = 0,\n args = arguments,\n x = new this(args[i]);\n external = false;\n\n for (; x.s && ++i < args.length;) {\n x = x.plus(args[i]);\n }\n\n external = true;\n return finalise(x, this.precision, this.rounding);\n }\n /*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function tan(x) {\n return new this(x).tan();\n }\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\n\n\n function tanh(x) {\n return new this(x).tanh();\n }\n /*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\n\n\n function trunc(x) {\n return finalise(x = new this(x), x.e + 1, 1);\n } // Create and configure initial Decimal constructor.\n\n\n Decimal = clone(DEFAULTS);\n Decimal.prototype.constructor = Decimal;\n Decimal['default'] = Decimal.Decimal = Decimal; // Create the internal constants from their string values.\n\n LN10 = new Decimal(LN10);\n PI = new Decimal(PI); // Export.\n // AMD.\n\n if (typeof define == 'function' && define.amd) {\n define(function () {\n return Decimal;\n }); // Node and other environments that support module.exports.\n } else if (typeof module != 'undefined' && module.exports) {\n if (typeof Symbol == 'function' && _typeof(Symbol.iterator) == 'symbol') {\n P[Symbol['for']('nodejs.util.inspect.custom')] = P.toString;\n P[Symbol.toStringTag] = 'Decimal';\n }\n\n module.exports = Decimal; // Browser.\n } else {\n if (!globalScope) {\n globalScope = typeof self != 'undefined' && self && self.self == self ? self : window;\n }\n\n noConflict = globalScope.Decimal;\n\n Decimal.noConflict = function () {\n globalScope.Decimal = noConflict;\n return Decimal;\n };\n\n globalScope.Decimal = Decimal;\n }\n})(this);","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","\"use strict\";\n\n(function (root) {\n function checkInt(value) {\n return parseInt(value) === value;\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) {\n return false;\n }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n } // It's an array; check it is a valid representation of a byte\n\n\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n } // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n\n\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n\n targetArray.set(sourceArray, targetStart);\n }\n\n var convertUtf8 = function () {\n function toBytes(text) {\n var result = [],\n i = 0;\n text = encodeURI(text);\n\n while (i < text.length) {\n var c = text.charCodeAt(i++); // if it is a % sign, encode the following 2 bytes as a hex value\n\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16));\n i += 2; // otherwise, just the actual byte\n } else {\n result.push(c);\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [],\n i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode((c & 0x1f) << 6 | bytes[i + 1] & 0x3f));\n i += 2;\n } else {\n result.push(String.fromCharCode((c & 0x0f) << 12 | (bytes[i + 1] & 0x3f) << 6 | bytes[i + 2] & 0x3f));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes\n };\n }();\n\n var convertHex = function () {\n function toBytes(text) {\n var result = [];\n\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n } // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n\n\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes\n };\n }(); // Number of rounds by keysize\n\n\n var numberOfRounds = {\n 16: 10,\n 24: 12,\n 32: 14\n }; // Round constant words\n\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91]; // S-box and Inverse S-box (S is for Substitution)\n\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si = [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]; // Transformations for encryption\n\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c]; // Transformations for decryption\n\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0]; // Transformations for decryption key expansion\n\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]);\n }\n\n return result;\n }\n\n var AES = function AES(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n };\n\n AES.prototype._prepare = function () {\n var rounds = numberOfRounds[this.key.length];\n\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n } // encryption round keys\n\n\n this._Ke = []; // decryption round keys\n\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4; // convert the key into ints\n\n var tk = convertToInt32(this.key); // copy values into round key arrays\n\n var index;\n\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n } // key expansion (fips-197 section 5.2)\n\n\n var rconpointer = 0;\n var t = KC,\n tt;\n\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= S[tt >> 16 & 0xFF] << 24 ^ S[tt >> 8 & 0xFF] << 16 ^ S[tt & 0xFF] << 8 ^ S[tt >> 24 & 0xFF] ^ rcon[rconpointer] << 24;\n rconpointer += 1; // key expansion (for non-256 bit)\n\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n } // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n\n } else {\n for (var i = 1; i < KC / 2; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n tt = tk[KC / 2 - 1];\n tk[KC / 2] ^= S[tt & 0xFF] ^ S[tt >> 8 & 0xFF] << 8 ^ S[tt >> 16 & 0xFF] << 16 ^ S[tt >> 24 & 0xFF] << 24;\n\n for (var i = KC / 2 + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n } // copy values into round key arrays\n\n\n var i = 0,\n r,\n c;\n\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n } // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n\n\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = U1[tt >> 24 & 0xFF] ^ U2[tt >> 16 & 0xFF] ^ U3[tt >> 8 & 0xFF] ^ U4[tt & 0xFF];\n }\n }\n };\n\n AES.prototype.encrypt = function (plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0]; // convert plaintext to (ints ^ key)\n\n var t = convertToInt32(plaintext);\n\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n } // apply round transforms\n\n\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = T1[t[i] >> 24 & 0xff] ^ T2[t[(i + 1) % 4] >> 16 & 0xff] ^ T3[t[(i + 2) % 4] >> 8 & 0xff] ^ T4[t[(i + 3) % 4] & 0xff] ^ this._Ke[r][i];\n }\n\n t = a.slice();\n } // the last round is special\n\n\n var result = createArray(16),\n tt;\n\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i] = (S[t[i] >> 24 & 0xff] ^ tt >> 24) & 0xff;\n result[4 * i + 1] = (S[t[(i + 1) % 4] >> 16 & 0xff] ^ tt >> 16) & 0xff;\n result[4 * i + 2] = (S[t[(i + 2) % 4] >> 8 & 0xff] ^ tt >> 8) & 0xff;\n result[4 * i + 3] = (S[t[(i + 3) % 4] & 0xff] ^ tt) & 0xff;\n }\n\n return result;\n };\n\n AES.prototype.decrypt = function (ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0]; // convert plaintext to (ints ^ key)\n\n var t = convertToInt32(ciphertext);\n\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n } // apply round transforms\n\n\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = T5[t[i] >> 24 & 0xff] ^ T6[t[(i + 3) % 4] >> 16 & 0xff] ^ T7[t[(i + 2) % 4] >> 8 & 0xff] ^ T8[t[(i + 1) % 4] & 0xff] ^ this._Kd[r][i];\n }\n\n t = a.slice();\n } // the last round is special\n\n\n var result = createArray(16),\n tt;\n\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i] = (Si[t[i] >> 24 & 0xff] ^ tt >> 24) & 0xff;\n result[4 * i + 1] = (Si[t[(i + 3) % 4] >> 16 & 0xff] ^ tt >> 16) & 0xff;\n result[4 * i + 2] = (Si[t[(i + 2) % 4] >> 8 & 0xff] ^ tt >> 8) & 0xff;\n result[4 * i + 3] = (Si[t[(i + 1) % 4] & 0xff] ^ tt) & 0xff;\n }\n\n return result;\n };\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n\n\n var ModeOfOperationECB = function ModeOfOperationECB(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n this._aes = new AES(key);\n };\n\n ModeOfOperationECB.prototype.encrypt = function (plaintext) {\n plaintext = coerceArray(plaintext);\n\n if (plaintext.length % 16 !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n };\n\n ModeOfOperationECB.prototype.decrypt = function (ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if (ciphertext.length % 16 !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n };\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n\n\n var ModeOfOperationCBC = function ModeOfOperationCBC(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n this._aes = new AES(key);\n };\n\n ModeOfOperationCBC.prototype.encrypt = function (plaintext) {\n plaintext = coerceArray(plaintext);\n\n if (plaintext.length % 16 !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n };\n\n ModeOfOperationCBC.prototype.decrypt = function (ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if (ciphertext.length % 16 !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n };\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n\n\n var ModeOfOperationCFB = function ModeOfOperationCFB(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) {\n segmentSize = 1;\n }\n\n this.segmentSize = segmentSize;\n this._shiftRegister = coerceArray(iv, true);\n this._aes = new AES(key);\n };\n\n ModeOfOperationCFB.prototype.encrypt = function (plaintext) {\n if (plaintext.length % this.segmentSize != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n var xorSegment;\n\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n } // Shift the register\n\n\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n };\n\n ModeOfOperationCFB.prototype.decrypt = function (ciphertext) {\n if (ciphertext.length % this.segmentSize != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n var xorSegment;\n\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n } // Shift the register\n\n\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n };\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n\n\n var ModeOfOperationOFB = function ModeOfOperationOFB(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n this._aes = new AES(key);\n };\n\n ModeOfOperationOFB.prototype.encrypt = function (plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }; // Decryption is symetric\n\n\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n /**\n * Counter object for CTR common mode of operation\n */\n\n var Counter = function Counter(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n } // We allow 0, but anything false-ish uses the default 1\n\n\n if (initialValue !== 0 && !initialValue) {\n initialValue = 1;\n }\n\n if (typeof initialValue === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n } else {\n this.setBytes(initialValue);\n }\n };\n\n Counter.prototype.setValue = function (value) {\n if (typeof value !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n };\n\n Counter.prototype.setBytes = function (bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function () {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n };\n /**\n * Mode Of Operation - Counter (CTR)\n */\n\n\n var ModeOfOperationCTR = function ModeOfOperationCTR(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter);\n }\n\n this._counter = counter;\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n this._aes = new AES(key);\n };\n\n ModeOfOperationCTR.prototype.encrypt = function (plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n\n this._counter.increment();\n }\n\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }; // Decryption is symetric\n\n\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt; ///////////////////////\n // Padding\n // See:https://tools.ietf.org/html/rfc2315\n\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - data.length % 16;\n var result = createArray(data.length + padder);\n copyArray(data, result);\n\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n\n if (data.length < 16) {\n throw new Error('PKCS#7 invalid length');\n }\n\n var padder = data[data.length - 1];\n\n if (padder > 16) {\n throw new Error('PKCS#7 padding byte out of range');\n }\n\n var length = data.length - padder;\n\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n } ///////////////////////\n // Exporting\n // The block cipher\n\n\n var aesjs = {\n AES: AES,\n Counter: Counter,\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray\n }\n }; // node.js\n\n if (typeof exports !== 'undefined') {\n module.exports = aesjs; // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof define === 'function' && define.amd) {\n define(aesjs); // Web Browsers\n } else {\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n})(this);","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { PublicKey, Buffer } from '@depay/solana-web3.js';\nimport { request } from '@depay/web3-client';\nimport Token from '@depay/web3-tokens';\nimport React, { useState, useEffect } from 'react';\nimport Blockchains from '@depay/web3-blockchains';\nvar supported = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.solana = ['solana'];\nvar _jsxFileName = \"/Users/sebastian/Work/DePay/react-token-image/src/index.js\";\n\nfunction _optionalChain(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_value = value).call.apply(_value, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar tokenURIAPI = [{\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }],\n \"name\": \"tokenURI\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar uriAPI = [{\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }],\n \"name\": \"uri\",\n \"outputs\": [{\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}];\nvar UNKNOWN_IMAGE = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI4My41IDI4My41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxjaXJjbGUgZmlsbD0iI0YwRUZFRiIgY3g9IjE0MS43IiBjeT0iMTQxLjciIHI9IjE0MS43Ii8+CjxnPgoJPHBhdGggZmlsbD0iI0FCQUJBQiIgZD0iTTEyNywxNzUuMXYtNC40YzAtOC40LDEuMS0xNS4zLDMuNC0yMC43YzIuMy01LjQsNS4xLTEwLDguNC0xMy44YzMuMy0zLjcsNi42LTcsMTAuMS05LjdzNi4zLTUuNiw4LjYtOC41CgkJYzIuMy0yLjksMy40LTYuNCwzLjQtMTAuNWMwLTUtMS4xLTguNy0zLjMtMTEuMWMtMi4yLTIuNC01LTQtOC40LTQuOGMtMy40LTAuOC02LjktMS4zLTEwLjUtMS4zYy01LjgsMC0xMS44LDEtMTcuOSwyLjkKCQljLTYuMSwxLjktMTEuNSw0LjctMTYsOC40Vjc0YzIuMy0xLjcsNS40LTMuMyw5LjQtNC45YzQtMS42LDguNC0yLjksMTMuNC00YzUtMS4xLDEwLjEtMS42LDE1LjUtMS42YzguMSwwLDE1LjEsMS4xLDIxLjEsMy40CgkJYzYsMi4zLDEwLjgsNS41LDE0LjcsOS41YzMuOCw0LDYuNyw4LjcsOC42LDE0LjFjMS45LDUuMywyLjksMTEuMSwyLjksMTcuMmMwLDYuNi0xLjEsMTItMy40LDE2LjNjLTIuMyw0LjMtNS4xLDgtOC41LDExLjIKCQljLTMuNCwzLjItNi44LDYuNC0xMC4yLDkuNWMtMy40LDMuMS02LjMsNi44LTguNiwxMWMtMi4zLDQuMi0zLjQsOS41LTMuNCwxNS45djMuNEgxMjd6IE0xMjUuMiwyMTguMnYtMjcuN2gzM3YyNy43SDEyNS4yeiIvPgo8L2c+Cjwvc3ZnPgo=';\n\nvar TokenImage = function TokenImage(props) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n src = _useState2[0],\n setSrc = _useState2[1];\n\n var _useState3 = useState(),\n _useState4 = _slicedToArray(_useState3, 2),\n source = _useState4[0],\n _setSource = _useState4[1];\n\n var blockchain = props.blockchain.toLowerCase();\n var address = props.address;\n var id = props.id;\n\n var getLocalStorageKey = function getLocalStorageKey(blockchain, address) {\n return ['react-token-image', 'v5.0.2', blockchain, address].join('-');\n };\n\n var setSource = function setSource(src, source) {\n setSrc(src);\n\n _setSource(source);\n\n if (source != 'unknown') {\n localStorage.setItem(getLocalStorageKey(blockchain, address), JSON.stringify({\n src: src,\n expiresAt: Date.now() + 24 * 60 * 60 * 1000\n })); // 24 hours\n }\n };\n\n useEffect(function () {\n var storedImage = localStorage.getItem(getLocalStorageKey(blockchain, address));\n\n if (storedImage && storedImage.length) {\n try {\n storedImage = JSON.parse(storedImage);\n } catch (e) {}\n }\n\n if (storedImage && storedImage.src && storedImage.expiresAt > Date.now() && storedImage.src != UNKNOWN_IMAGE) {\n return setSource(storedImage.src, 'stored');\n }\n\n var foundMajorToken = Blockchains[blockchain].tokens.find(function (token) {\n return token.address.toLowerCase() === _optionalChain([address, 'optionalAccess', function (_) {\n return _.toLowerCase;\n }, 'call', function (_2) {\n return _2();\n }]);\n });\n\n if (foundMajorToken) {\n setSource(foundMajorToken.logo, 'web3-blockchains');\n } else {\n if (supported.evm.includes(blockchain)) {\n setSource(logoFromRepository({\n blockchain: blockchain,\n address: address\n }), 'repository');\n } else if (blockchain === 'solana') {\n logoFromMetaplex({\n blockchain: blockchain,\n address: address\n }).then(function (image) {\n setSource(image, 'metaplex');\n }).catch(function (error) {\n setSource(logoFromRepository({\n blockchain: blockchain,\n address: address\n }), 'repository');\n });\n }\n }\n }, [blockchain, address]);\n\n var logoFromMetaplex = function logoFromMetaplex(_ref) {\n var blockchain = _ref.blockchain,\n address = _ref.address;\n return new Promise( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {\n var mintPublicKey, metaDataPublicKey, seed, tokenMetaDataPublicKey, metaData, uri;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n mintPublicKey = new PublicKey(address);\n metaDataPublicKey = new PublicKey(Token.solana.METADATA_ACCOUNT);\n seed = [Buffer.from('metadata'), metaDataPublicKey.toBuffer(), mintPublicKey.toBuffer()];\n _context.next = 6;\n return PublicKey.findProgramAddress(seed, metaDataPublicKey);\n\n case 6:\n tokenMetaDataPublicKey = _context.sent[0];\n _context.next = 9;\n return request({\n blockchain: blockchain,\n address: tokenMetaDataPublicKey.toString(),\n api: Token.solana.METADATA_LAYOUT,\n cache: 86400000 // 1 day\n\n });\n\n case 9:\n metaData = _context.sent;\n\n if (!_optionalChain([metaData, 'optionalAccess', function (_3) {\n return _3.data;\n }, 'optionalAccess', function (_4) {\n return _4.uri;\n }])) {\n _context.next = 20;\n break;\n }\n\n uri = metaData.data.uri.replace(new RegExp(\"\\0\", 'g'), '');\n\n if (!(uri && uri.length)) {\n _context.next = 17;\n break;\n }\n\n _context.next = 15;\n return fetch(uri).then(function (response) {\n return response.json();\n }).then(function (json) {\n if (json && json.image) {\n resolve(json.image);\n } else {\n reject('image not found on metaplex');\n }\n }).catch(function () {\n return reject('image not found on metaplex');\n });\n\n case 15:\n _context.next = 18;\n break;\n\n case 17:\n reject('image not found on metaplex');\n\n case 18:\n _context.next = 21;\n break;\n\n case 20:\n reject('image not found on metaplex');\n\n case 21:\n _context.next = 26;\n break;\n\n case 23:\n _context.prev = 23;\n _context.t0 = _context[\"catch\"](0);\n reject('image not found on metaplex');\n\n case 26:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 23]]);\n }));\n\n return function (_x, _x2) {\n return _ref2.apply(this, arguments);\n };\n }());\n };\n\n var logoFromRepository = function logoFromRepository(_ref3) {\n var blockchain = _ref3.blockchain,\n address = _ref3.address;\n return \"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/\".concat(mapBlockchainNameToTrustWalletAssets(blockchain), \"/assets/\").concat(address, \"/logo.png\");\n };\n\n var mapBlockchainNameToTrustWalletAssets = function mapBlockchainNameToTrustWalletAssets(blockchain) {\n switch (blockchain) {\n case 'ethereum':\n return 'ethereum';\n\n case 'bsc':\n return 'smartchain';\n\n case 'polygon':\n return 'polygon';\n\n case 'solana':\n return 'solana';\n\n case 'fantom':\n return 'fantom';\n\n case 'arbitrum':\n return 'arbitrum';\n\n case 'avalanche':\n return 'avalanchec';\n\n case 'gnosis':\n return 'xdai';\n\n case 'optimism':\n return 'optimism';\n\n case 'base':\n return 'base';\n\n case 'worldchain':\n return 'optimism';\n\n default:\n throw 'DePayReactTokenImage: Unknown blockchain';\n }\n };\n\n var setUnknown = function setUnknown() {\n setSource(UNKNOWN_IMAGE, 'unknown');\n };\n\n var uriToImage = function uriToImage(tokenURI) {\n if (tokenURI.match(/^ipfs/)) {\n tokenURI = \"https://ipfs.io/ipfs/\".concat(tokenURI.split('://')[1]);\n }\n\n fetch(tokenURI).then(function (response) {\n if (response.ok) {\n return response.json();\n }\n\n setUnknown();\n }).then(function (responseJson) {\n if (responseJson) {\n var image = responseJson.image;\n\n if (image) {\n if (image.match(/^ipfs/)) {\n image = \"https://ipfs.io/ipfs/\".concat(image.split('://')[1]);\n }\n\n setSource(image, 'meta');\n } else {\n setUnknown();\n }\n }\n }).catch(setUnknown);\n };\n\n var handleLoadError = function handleLoadError(error) {\n delete localStorage[getLocalStorageKey(blockchain, address)];\n\n if (source == 'metaplex') {\n setSource(logoFromRepository({\n blockchain: blockchain,\n address: address\n }), 'repository');\n } else if (source == 'web3-blockchains') {\n setSource(logoFromRepository({\n blockchain: blockchain,\n address: address\n }), 'repository');\n } else if (source == 'repository') {\n setSource(\"https://integrate.depay.com/tokens/\".concat(blockchain, \"/\").concat(address, \"/image\"), 'depay');\n } else if (source == 'depay' && supported.evm.includes(blockchain)) {\n if (id) {\n request({\n blockchain: blockchain,\n address: address,\n api: uriAPI,\n method: 'uri',\n params: [id]\n }).then(function (uri) {\n uri = uri.match('0x{id}') ? uri.replace('0x{id}', id) : uri;\n uriToImage(uri);\n }).catch(setUnknown);\n } else {\n request({\n blockchain: blockchain,\n address: address,\n api: tokenURIAPI,\n method: 'tokenURI',\n params: [1]\n }).then(uriToImage).catch(setUnknown);\n }\n } else {\n setUnknown();\n }\n };\n\n if (src == undefined) {\n return /*#__PURE__*/React.createElement('div', {\n className: props.className,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 209\n }\n });\n }\n\n return /*#__PURE__*/React.createElement('img', {\n className: props.className,\n src: src,\n onError: handleLoadError,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 214\n }\n });\n};\n\nexport { TokenImage };","'use strict';\n\nvar assert = require('minimalistic-assert');\n\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\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg)) return msg.slice();\n if (!msg) return [];\n var res = [];\n\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\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n\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) msg = '0' + msg;\n\n for (i = 0; i < msg.length; i += 2) {\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n }\n } else {\n for (i = 0; i < msg.length; i++) {\n res[i] = msg[i] | 0;\n }\n }\n\n return res;\n}\n\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n res += zero2(msg[i].toString(16));\n }\n\n return res;\n}\n\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = w >>> 24 | w >>> 8 & 0xff00 | w << 8 & 0xff0000 | (w & 0xff) << 24;\n return res >>> 0;\n}\n\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little') w = htonl(w);\n res += zero8(w.toString(16));\n }\n\n return res;\n}\n\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1) return '0' + word;else return word;\n}\n\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7) return '0' + word;else if (word.length === 6) return '00' + word;else if (word.length === 5) return '000' + word;else if (word.length === 4) return '0000' + word;else if (word.length === 3) return '00000' + word;else if (word.length === 2) return '000000' + word;else if (word.length === 1) return '0000000' + word;else return word;\n}\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\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big') w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];else w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];\n res[i] = w >>> 0;\n }\n\n return res;\n}\n\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n\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\n return res;\n}\n\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return w >>> b | w << 32 - b;\n}\n\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return w << b | w >>> 32 - b;\n}\n\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return a + b >>> 0;\n}\n\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return a + b + c >>> 0;\n}\n\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return a + b + c + d >>> 0;\n}\n\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return a + b + c + d + e >>> 0;\n}\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 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}\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}\n\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\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 var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\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}\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 var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\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 return lo >>> 0;\n}\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}\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}\n\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\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}\n\nexports.shr64_lo = shr64_lo;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r);\n};","'use strict';\n\nvar utils = require('./utils');\n\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 this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\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) this.pending = msg;else this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length; // Enough data, try updating\n\n if (this.pending.length >= this._delta8) {\n msg = this.pending; // Process pending data in blocks\n\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0) this.pending = null;\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n\n for (var i = 0; i < msg.length; i += this._delta32) {\n this._update(msg, i, i + this._delta32);\n }\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\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\n for (var i = 1; i < k; i++) {\n res[i] = 0;\n } // Append length\n\n\n len <<= 3;\n\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++) {\n res[i++] = 0;\n }\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\n return res;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _wrapRegExp() { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, void 0, groups); }; var _super = RegExp.prototype, _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = new RegExp(re, flags); return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype); } function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { return groups[name] = result[g[name]], groups; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); return result && (result.groups = buildGroups(result, this)), result; }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if (\"string\" == typeof substitution) { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) { return \"$\" + groups[name]; })); } if (\"function\" == typeof substitution) { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = arguments; return \"object\" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); }); } return _super[Symbol.replace].call(this, str, substitution); }, _wrapRegExp.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport Blockchains from '@depay/web3-blockchains';\nimport { BN, struct, u64, i64, u128, bool, Connection, ACCOUNT_LAYOUT, PublicKey, Keypair, SystemProgram, Buffer, TransactionInstruction, publicKey } from '@depay/solana-web3.js';\nimport { ethers } from 'ethers';\nimport Token from '@depay/web3-tokens';\nimport { dripAssets } from '@depay/web3-assets';\nimport Exchanges from '@depay/web3-exchanges';\nvar solanaRouters = {\n solana: {\n address: 'DePayRG7ZySPWzeK9Kvq7aPeif7sdbBZNh6DHcvNj7F7',\n ammProgram: 'whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc',\n alt: 'EYGgx5fYCZtLN2pvnR4Bhn5KpMffKwyHCms4VhjSvF2K',\n api: {\n createPaymentsAccount: {\n anchorDiscriminator: new BN(\"8445995362644372894\"),\n layout: struct([u64(\"anchorDiscriminator\")])\n },\n createEscrowSolAccount: {\n anchorDiscriminator: new BN(\"2482112285991870004\"),\n layout: struct([u64(\"anchorDiscriminator\")])\n },\n createEscrowTokenAccount: {\n anchorDiscriminator: new BN(\"16156440424245087\"),\n layout: struct([u64(\"anchorDiscriminator\")])\n },\n routeSol: {\n anchorDiscriminator: new BN(\"6497164560834983274\"),\n layout: struct([u64(\"anchorDiscriminator\"), u64(\"nonce\"), u64(\"paymentAmount\"), u64(\"feeAmount\"), i64(\"deadline\")])\n },\n routeToken: {\n anchorDiscriminator: new BN(\"13483873682232752277\"),\n layout: struct([u64(\"anchorDiscriminator\"), u64(\"nonce\"), u64(\"paymentAmount\"), u64(\"feeAmount\"), i64(\"deadline\")])\n },\n routeOrcaSwap: {\n anchorDiscriminator: new BN(\"9797248061404332986\"),\n layout: struct([u64(\"anchorDiscriminator\"), u64(\"nonce\"), u64(\"amountIn\"), u128(\"sqrtPriceLimit\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToB\"), u64(\"paymentAmount\"), u64(\"feeAmount\"), i64(\"deadline\")])\n },\n routeOrcaSwapSolOut: {\n anchorDiscriminator: new BN(\"13662217913752830165\"),\n layout: struct([u64(\"anchorDiscriminator\"), u64(\"nonce\"), u64(\"amountIn\"), u128(\"sqrtPriceLimit\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToB\"), u64(\"paymentAmount\"), u64(\"feeAmount\"), i64(\"deadline\")])\n },\n routeOrcaTwoHopSwap: {\n anchorDiscriminator: new BN(\"15695720599845325801\"),\n layout: struct([u64(\"anchorDiscriminator\"), u64(\"nonce\"), u64(\"amountIn\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToBOne\"), bool(\"aToBTwo\"), u128(\"sqrtPriceLimitOne\"), u128(\"sqrtPriceLimitTwo\"), u64(\"paymentAmount\"), u64(\"feeAmount\"), i64(\"deadline\")])\n },\n routeOrcaTwoHopSwapSolOut: {\n anchorDiscriminator: new BN(\"15074061855608091530\"),\n layout: struct([u64(\"anchorDiscriminator\"), u64(\"nonce\"), u64(\"amountIn\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToBOne\"), bool(\"aToBTwo\"), u128(\"sqrtPriceLimitOne\"), u128(\"sqrtPriceLimitTwo\"), u64(\"paymentAmount\"), u64(\"feeAmount\"), i64(\"deadline\")])\n }\n }\n }\n};\n\nvar _window;\n\nvar getWindow = function getWindow() {\n if (_window) {\n return _window;\n }\n\n if ((typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object') {\n _window = global;\n } else {\n _window = window;\n }\n\n return _window;\n};\n\nvar getConfiguration = function getConfiguration() {\n if (getWindow()._Web3ClientConfiguration === undefined) {\n getWindow()._Web3ClientConfiguration = {};\n }\n\n return getWindow()._Web3ClientConfiguration;\n};\n\nfunction _optionalChain$5(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_value = value).call.apply(_value, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar BATCH_INTERVAL$1 = 10;\nvar CHUNK_SIZE$1 = 50;\nvar MAX_RETRY$1 = 5;\n\nvar StaticJsonRpcBatchProvider = /*#__PURE__*/function (_ethers$providers$Jso) {\n _inherits(StaticJsonRpcBatchProvider, _ethers$providers$Jso);\n\n var _super = _createSuper(StaticJsonRpcBatchProvider);\n\n function StaticJsonRpcBatchProvider(url, network, endpoints, failover) {\n var _this;\n\n _classCallCheck(this, StaticJsonRpcBatchProvider);\n\n _this = _super.call(this, url);\n _this._network = network;\n _this._endpoint = url;\n _this._endpoints = endpoints;\n _this._failover = failover;\n _this._pendingBatch = [];\n return _this;\n }\n\n _createClass(StaticJsonRpcBatchProvider, [{\n key: \"handleError\",\n value: function handleError(error, attempt, chunk) {\n if (attempt < MAX_RETRY$1 && error) {\n var index = this._endpoints.indexOf(this._endpoint) + 1;\n\n this._failover();\n\n this._endpoint = index >= this._endpoints.length ? this._endpoints[0] : this._endpoints[index];\n this.requestChunk(chunk, this._endpoint, attempt + 1);\n } else {\n chunk.forEach(function (inflightRequest) {\n inflightRequest.reject(error);\n });\n }\n }\n }, {\n key: \"detectNetwork\",\n value: function detectNetwork() {\n return Promise.resolve(Blockchains.findByName(this._network).id);\n }\n }, {\n key: \"batchRequest\",\n value: function batchRequest(batch, attempt) {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n if (batch.length === 0) resolve([]); // Do nothing if requests is empty\n\n fetch(_this2._endpoint, {\n method: 'POST',\n body: JSON.stringify(batch),\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n }).then(function (response) {\n if (response.ok) {\n response.json().then(function (parsedJson) {\n if (parsedJson.find(function (entry) {\n return _optionalChain$5([entry, 'optionalAccess', function (_) {\n return _.error;\n }]) && [-32062, -32016].includes(_optionalChain$5([entry, 'optionalAccess', function (_2) {\n return _2.error;\n }, 'optionalAccess', function (_3) {\n return _3.code;\n }]));\n })) {\n if (attempt < MAX_RETRY$1) {\n reject('Error in batch found!');\n } else {\n resolve(parsedJson);\n }\n } else {\n resolve(parsedJson);\n }\n }).catch(reject);\n } else {\n reject(\"\".concat(response.status, \" \").concat(response.text));\n }\n }).catch(reject);\n });\n }\n }, {\n key: \"requestChunk\",\n value: function requestChunk(chunk, endpoint, attempt) {\n var _this3 = this;\n\n var batch = chunk.map(function (inflight) {\n return inflight.request;\n });\n\n try {\n return this.batchRequest(batch, attempt).then(function (result) {\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n chunk.forEach(function (inflightRequest, index) {\n var payload = result[index];\n\n if (_optionalChain$5([payload, 'optionalAccess', function (_4) {\n return _4.error;\n }])) {\n var error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n } else if (_optionalChain$5([payload, 'optionalAccess', function (_5) {\n return _5.result;\n }])) {\n inflightRequest.resolve(payload.result);\n } else {\n inflightRequest.reject();\n }\n });\n }).catch(function (error) {\n return _this3.handleError(error, attempt, chunk);\n });\n } catch (error) {\n this.handleError(error, attempt, chunk);\n }\n }\n }, {\n key: \"send\",\n value: function send(method, params) {\n var _this4 = this;\n\n var request = {\n method: method,\n params: params,\n id: this._nextId++,\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n\n var inflightRequest = {\n request: request,\n resolve: null,\n reject: null\n };\n var promise = new Promise(function (resolve, reject) {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(function () {\n // Get the current batch and clear it, so new requests\n // go into the next batch\n var batch = _this4._pendingBatch;\n _this4._pendingBatch = [];\n _this4._pendingBatchAggregator = null; // Prepare Chunks of CHUNK_SIZE\n\n var chunks = [];\n\n for (var i = 0; i < Math.ceil(batch.length / CHUNK_SIZE$1); i++) {\n chunks[i] = batch.slice(i * CHUNK_SIZE$1, (i + 1) * CHUNK_SIZE$1);\n }\n\n chunks.forEach(function (chunk) {\n // Get the request as an array of requests\n chunk.map(function (inflight) {\n return inflight.request;\n });\n return _this4.requestChunk(chunk, _this4._endpoint, 1);\n });\n }, getConfiguration().batchInterval || BATCH_INTERVAL$1);\n }\n\n return promise;\n }\n }]);\n\n return StaticJsonRpcBatchProvider;\n}(ethers.providers.JsonRpcProvider);\n\nfunction _optionalChain$4(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return (_value2 = value).call.apply(_value2, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getAllProviders$1 = function getAllProviders$1() {\n if (getWindow()._Web3ClientProviders == undefined) {\n getWindow()._Web3ClientProviders = {};\n }\n\n return getWindow()._Web3ClientProviders;\n};\n\nvar setProvider$2 = function setProvider$2(blockchain, provider) {\n if (provider == undefined) {\n return;\n }\n\n if (getAllProviders$1()[blockchain] === undefined) {\n getAllProviders$1()[blockchain] = [];\n }\n\n var index = getAllProviders$1()[blockchain].indexOf(provider);\n\n if (index > -1) {\n getAllProviders$1()[blockchain].splice(index, 1);\n }\n\n getAllProviders$1()[blockchain].unshift(provider);\n};\n\nvar setProviderEndpoints$2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(blockchain, endpoints) {\n var detectFastest,\n provider,\n window,\n responseTimes,\n fastestResponse,\n fastestIndex,\n _args2 = arguments;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n detectFastest = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : true;\n getAllProviders$1()[blockchain] = endpoints.map(function (endpoint, index) {\n return new StaticJsonRpcBatchProvider(endpoint, blockchain, endpoints, function () {\n if (getAllProviders$1()[blockchain].length === 1) {\n setProviderEndpoints$2(blockchain, endpoints, detectFastest);\n } else {\n getAllProviders$1()[blockchain].splice(index, 1);\n }\n });\n });\n window = getWindow();\n\n if (!(window.fetch == undefined || typeof process != 'undefined' && process['env'] && process['env']['NODE_ENV'] == 'test' || typeof window.cy != 'undefined' || detectFastest === false)) {\n _context2.next = 7;\n break;\n }\n\n provider = getAllProviders$1()[blockchain][0];\n _context2.next = 13;\n break;\n\n case 7:\n _context2.next = 9;\n return Promise.all(endpoints.map(function (endpoint) {\n return new Promise( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve) {\n var timeout, before, response, after;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n timeout = 900;\n before = new Date().getTime();\n setTimeout(function () {\n return resolve(timeout);\n }, timeout);\n _context.prev = 3;\n _context.next = 6;\n return fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n referrer: \"\",\n referrerPolicy: \"no-referrer\",\n body: JSON.stringify({\n method: 'net_version',\n id: 1,\n jsonrpc: '2.0'\n }),\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n });\n\n case 6:\n response = _context.sent;\n _context.next = 11;\n break;\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n\n case 11:\n if (_optionalChain$4([response, 'optionalAccess', function (_) {\n return _.ok;\n }])) {\n _context.next = 13;\n break;\n }\n\n return _context.abrupt(\"return\", resolve(999));\n\n case 13:\n after = new Date().getTime();\n resolve(after - before);\n\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 9]]);\n }));\n\n return function (_x3) {\n return _ref2.apply(this, arguments);\n };\n }());\n }));\n\n case 9:\n responseTimes = _context2.sent;\n fastestResponse = Math.min.apply(Math, _toConsumableArray(responseTimes));\n fastestIndex = responseTimes.indexOf(fastestResponse);\n provider = getAllProviders$1()[blockchain][fastestIndex];\n\n case 13:\n setProvider$2(blockchain, provider);\n\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function setProviderEndpoints$2(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar getProvider$2 = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n providers = getAllProviders$1();\n\n if (!(providers && providers[blockchain])) {\n _context4.next = 3;\n break;\n }\n\n return _context4.abrupt(\"return\", providers[blockchain][0]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProviderPromise && window._Web3ClientGetProviderPromise[blockchain])) {\n _context4.next = 8;\n break;\n }\n\n _context4.next = 7;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 7:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 8:\n if (!window._Web3ClientGetProviderPromise) {\n window._Web3ClientGetProviderPromise = {};\n }\n\n window._Web3ClientGetProviderPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(resolve) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return setProviderEndpoints$2(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain][0]);\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function (_x5) {\n return _ref4.apply(this, arguments);\n };\n }());\n _context4.next = 12;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 12:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 13:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function getProvider$2(_x4) {\n return _ref3.apply(this, arguments);\n };\n}();\n\nvar getProviders$2 = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n providers = getAllProviders$1();\n\n if (!(providers && providers[blockchain])) {\n _context6.next = 3;\n break;\n }\n\n return _context6.abrupt(\"return\", providers[blockchain]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProvidersPromise && window._Web3ClientGetProvidersPromise[blockchain])) {\n _context6.next = 8;\n break;\n }\n\n _context6.next = 7;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 7:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 8:\n if (!window._Web3ClientGetProvidersPromise) {\n window._Web3ClientGetProvidersPromise = {};\n }\n\n window._Web3ClientGetProvidersPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(resolve) {\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return setProviderEndpoints$2(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain]);\n\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n\n return function (_x7) {\n return _ref6.apply(this, arguments);\n };\n }());\n _context6.next = 12;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 12:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n\n return function getProviders$2(_x6) {\n return _ref5.apply(this, arguments);\n };\n}();\n\nvar EVM = {\n getProvider: getProvider$2,\n getProviders: getProviders$2,\n setProviderEndpoints: setProviderEndpoints$2,\n setProvider: setProvider$2\n};\n\nfunction _optionalChain$3(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value3;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_value3 = value).call.apply(_value3, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar BATCH_INTERVAL = 10;\nvar CHUNK_SIZE = 50;\nvar MAX_RETRY = 10;\n\nvar StaticJsonRpcSequentialProvider = /*#__PURE__*/function (_Connection) {\n _inherits(StaticJsonRpcSequentialProvider, _Connection);\n\n var _super2 = _createSuper(StaticJsonRpcSequentialProvider);\n\n function StaticJsonRpcSequentialProvider(url, network, endpoints, failover) {\n var _this5;\n\n _classCallCheck(this, StaticJsonRpcSequentialProvider);\n\n _this5 = _super2.call(this, url);\n _this5._provider = new Connection(url);\n _this5._network = network;\n _this5._endpoint = url;\n _this5._endpoints = endpoints;\n _this5._failover = failover;\n _this5._pendingBatch = [];\n _this5._rpcRequest = _this5._rpcRequestReplacement.bind(_assertThisInitialized(_this5));\n return _this5;\n }\n\n _createClass(StaticJsonRpcSequentialProvider, [{\n key: \"handleError\",\n value: function handleError(error, attempt, chunk) {\n if (attempt < MAX_RETRY) {\n var index = this._endpoints.indexOf(this._endpoint) + 1;\n this._endpoint = index >= this._endpoints.length ? this._endpoints[0] : this._endpoints[index];\n this._provider = new Connection(this._endpoint);\n this.requestChunk(chunk, attempt + 1);\n } else {\n chunk.forEach(function (inflightRequest) {\n inflightRequest.reject(error);\n });\n }\n }\n }, {\n key: \"batchRequest\",\n value: function batchRequest(requests, attempt) {\n var _this6 = this;\n\n return new Promise(function (resolve, reject) {\n if (requests.length === 0) resolve([]); // Do nothing if requests is empty\n\n var batch = requests.map(function (params) {\n return _this6._rpcClient.request(params.methodName, params.args);\n });\n fetch(_this6._endpoint, {\n method: 'POST',\n body: JSON.stringify(batch),\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n }).then(function (response) {\n if (response.ok) {\n response.json().then(function (parsedJson) {\n if (parsedJson.find(function (entry) {\n return _optionalChain$3([entry, 'optionalAccess', function (_) {\n return _.error;\n }]);\n })) {\n if (attempt < MAX_RETRY) {\n reject('Error in batch found!');\n } else {\n resolve(parsedJson);\n }\n } else {\n resolve(parsedJson);\n }\n }).catch(reject);\n } else {\n reject(\"\".concat(response.status, \" \").concat(response.text));\n }\n }).catch(reject);\n });\n }\n }, {\n key: \"requestChunk\",\n value: function requestChunk(chunk, attempt) {\n var _this7 = this;\n\n var batch = chunk.map(function (inflight) {\n return inflight.request;\n });\n\n try {\n return this.batchRequest(batch, attempt).then(function (result) {\n chunk.forEach(function (inflightRequest, index) {\n var payload = result[index];\n\n if (_optionalChain$3([payload, 'optionalAccess', function (_2) {\n return _2.error;\n }])) {\n var error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n } else if (payload) {\n inflightRequest.resolve(payload);\n } else {\n inflightRequest.reject();\n }\n });\n }).catch(function (error) {\n return _this7.handleError(error, attempt, chunk);\n });\n } catch (error) {\n return this.handleError(error, attempt, chunk);\n }\n }\n }, {\n key: \"_rpcRequestReplacement\",\n value: function _rpcRequestReplacement(methodName, args) {\n var _this8 = this;\n\n var request = {\n methodName: methodName,\n args: args\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n\n var inflightRequest = {\n request: request,\n resolve: null,\n reject: null\n };\n var promise = new Promise(function (resolve, reject) {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(function () {\n // Get the current batch and clear it, so new requests\n // go into the next batch\n var batch = _this8._pendingBatch;\n _this8._pendingBatch = [];\n _this8._pendingBatchAggregator = null; // Prepare Chunks of CHUNK_SIZE\n\n var chunks = [];\n\n for (var i = 0; i < Math.ceil(batch.length / CHUNK_SIZE); i++) {\n chunks[i] = batch.slice(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE);\n }\n\n chunks.forEach(function (chunk) {\n // Get the request as an array of requests\n chunk.map(function (inflight) {\n return inflight.request;\n });\n return _this8.requestChunk(chunk, 1);\n });\n }, getConfiguration().batchInterval || BATCH_INTERVAL);\n }\n\n return promise;\n }\n }]);\n\n return StaticJsonRpcSequentialProvider;\n}(Connection);\n\nfunction _optionalChain$2(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value4;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return (_value4 = value).call.apply(_value4, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getAllProviders = function getAllProviders() {\n if (getWindow()._Web3ClientProviders == undefined) {\n getWindow()._Web3ClientProviders = {};\n }\n\n return getWindow()._Web3ClientProviders;\n};\n\nvar setProvider$1 = function setProvider$1(blockchain, provider) {\n if (provider == undefined) {\n return;\n }\n\n if (getAllProviders()[blockchain] === undefined) {\n getAllProviders()[blockchain] = [];\n }\n\n var index = getAllProviders()[blockchain].indexOf(provider);\n\n if (index > -1) {\n getAllProviders()[blockchain].splice(index, 1);\n }\n\n getAllProviders()[blockchain].unshift(provider);\n};\n\nvar setProviderEndpoints$1 = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(blockchain, endpoints) {\n var detectFastest,\n provider,\n window,\n responseTimes,\n fastestResponse,\n fastestIndex,\n _args8 = arguments;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n detectFastest = _args8.length > 2 && _args8[2] !== undefined ? _args8[2] : true;\n getAllProviders()[blockchain] = endpoints.map(function (endpoint, index) {\n return new StaticJsonRpcSequentialProvider(endpoint, blockchain, endpoints, function () {\n if (getAllProviders()[blockchain].length === 1) {\n setProviderEndpoints$1(blockchain, endpoints, detectFastest);\n } else {\n getAllProviders()[blockchain].splice(index, 1);\n }\n });\n });\n window = getWindow();\n\n if (!(window.fetch == undefined || typeof process != 'undefined' && process['env'] && process['env']['NODE_ENV'] == 'test' || typeof window.cy != 'undefined' || detectFastest === false)) {\n _context8.next = 7;\n break;\n }\n\n provider = getAllProviders()[blockchain][0];\n _context8.next = 13;\n break;\n\n case 7:\n _context8.next = 9;\n return Promise.all(endpoints.map(function (endpoint) {\n return new Promise( /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(resolve) {\n var timeout, before, response, after;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n timeout = 900;\n before = new Date().getTime();\n setTimeout(function () {\n return resolve(timeout);\n }, timeout);\n _context7.prev = 3;\n _context7.next = 6;\n return fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n referrer: \"\",\n referrerPolicy: \"no-referrer\",\n body: JSON.stringify({\n method: 'getIdentity',\n id: 1,\n jsonrpc: '2.0'\n }),\n signal: AbortSignal.timeout(10000) // 10-second timeout\n\n });\n\n case 6:\n response = _context7.sent;\n _context7.next = 11;\n break;\n\n case 9:\n _context7.prev = 9;\n _context7.t0 = _context7[\"catch\"](3);\n\n case 11:\n if (_optionalChain$2([response, 'optionalAccess', function (_) {\n return _.ok;\n }])) {\n _context7.next = 13;\n break;\n }\n\n return _context7.abrupt(\"return\", resolve(999));\n\n case 13:\n after = new Date().getTime();\n resolve(after - before);\n\n case 15:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, null, [[3, 9]]);\n }));\n\n return function (_x10) {\n return _ref8.apply(this, arguments);\n };\n }());\n }));\n\n case 9:\n responseTimes = _context8.sent;\n fastestResponse = Math.min.apply(Math, _toConsumableArray(responseTimes));\n fastestIndex = responseTimes.indexOf(fastestResponse);\n provider = getAllProviders()[blockchain][fastestIndex];\n\n case 13:\n setProvider$1(blockchain, provider);\n\n case 14:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n\n return function setProviderEndpoints$1(_x8, _x9) {\n return _ref7.apply(this, arguments);\n };\n}();\n\nvar getProvider$1 = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n providers = getAllProviders();\n\n if (!(providers && providers[blockchain])) {\n _context10.next = 3;\n break;\n }\n\n return _context10.abrupt(\"return\", providers[blockchain][0]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProviderPromise && window._Web3ClientGetProviderPromise[blockchain])) {\n _context10.next = 8;\n break;\n }\n\n _context10.next = 7;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 7:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 8:\n if (!window._Web3ClientGetProviderPromise) {\n window._Web3ClientGetProviderPromise = {};\n }\n\n window._Web3ClientGetProviderPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(resolve) {\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return setProviderEndpoints$1(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain][0]);\n\n case 3:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n\n return function (_x12) {\n return _ref10.apply(this, arguments);\n };\n }());\n _context10.next = 12;\n return window._Web3ClientGetProviderPromise[blockchain];\n\n case 12:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 13:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n\n return function getProvider$1(_x11) {\n return _ref9.apply(this, arguments);\n };\n}();\n\nvar getProviders$1 = /*#__PURE__*/function () {\n var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(blockchain) {\n var providers, window;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n providers = getAllProviders();\n\n if (!(providers && providers[blockchain])) {\n _context12.next = 3;\n break;\n }\n\n return _context12.abrupt(\"return\", providers[blockchain]);\n\n case 3:\n window = getWindow();\n\n if (!(window._Web3ClientGetProvidersPromise && window._Web3ClientGetProvidersPromise[blockchain])) {\n _context12.next = 8;\n break;\n }\n\n _context12.next = 7;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 7:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 8:\n if (!window._Web3ClientGetProvidersPromise) {\n window._Web3ClientGetProvidersPromise = {};\n }\n\n window._Web3ClientGetProvidersPromise[blockchain] = new Promise( /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(resolve) {\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return setProviderEndpoints$1(blockchain, Blockchains[blockchain].endpoints);\n\n case 2:\n resolve(getWindow()._Web3ClientProviders[blockchain]);\n\n case 3:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n\n return function (_x14) {\n return _ref12.apply(this, arguments);\n };\n }());\n _context12.next = 12;\n return window._Web3ClientGetProvidersPromise[blockchain];\n\n case 12:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 13:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n\n return function getProviders$1(_x13) {\n return _ref11.apply(this, arguments);\n };\n}();\n\nvar Solana = {\n getProvider: getProvider$1,\n getProviders: getProviders$1,\n setProviderEndpoints: setProviderEndpoints$1,\n setProvider: setProvider$1\n};\nvar supported$1 = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported$1.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported$1.solana = ['solana'];\n\nfunction _optionalChain$1$1(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value5;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return (_value5 = value).call.apply(_value5, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar getCacheStore = function getCacheStore() {\n if (getWindow()._Web3ClientCacheStore == undefined) {\n getWindow()._Web3ClientCacheStore = {};\n }\n\n return getWindow()._Web3ClientCacheStore;\n};\n\nvar getPromiseStore = function getPromiseStore() {\n if (getWindow()._Web3ClientPromiseStore == undefined) {\n getWindow()._Web3ClientPromiseStore = {};\n }\n\n return getWindow()._Web3ClientPromiseStore;\n};\n\nvar set = function set(_ref13) {\n var key = _ref13.key,\n value = _ref13.value,\n expires = _ref13.expires;\n getCacheStore()[key] = {\n expiresAt: Date.now() + expires,\n value: value\n };\n};\n\nvar get = function get(_ref14) {\n var key = _ref14.key,\n expires = _ref14.expires;\n var cachedEntry = getCacheStore()[key];\n\n if (_optionalChain$1$1([cachedEntry, 'optionalAccess', function (_) {\n return _.expiresAt;\n }]) > Date.now()) {\n return cachedEntry.value;\n }\n};\n\nvar getPromise = function getPromise(_ref15) {\n var key = _ref15.key;\n return getPromiseStore()[key];\n};\n\nvar setPromise = function setPromise(_ref16) {\n var key = _ref16.key,\n promise = _ref16.promise;\n getPromiseStore()[key] = promise;\n return promise;\n};\n\nvar deletePromise = function deletePromise(_ref17) {\n var key = _ref17.key;\n getPromiseStore()[key] = undefined;\n};\n\nvar cache = function cache(_ref18) {\n var call = _ref18.call,\n key = _ref18.key,\n _ref18$expires = _ref18.expires,\n expires = _ref18$expires === void 0 ? 0 : _ref18$expires;\n return new Promise(function (resolve, reject) {\n var value;\n key = JSON.stringify(key); // get existing promise (of a previous pending request asking for the exact same thing)\n\n var existingPromise = getPromise({\n key: key\n });\n\n if (existingPromise) {\n return existingPromise.then(resolve).catch(reject);\n }\n\n setPromise({\n key: key,\n promise: new Promise(function (resolveQueue, rejectQueue) {\n if (expires === 0) {\n return call().then(function (value) {\n resolve(value);\n resolveQueue(value);\n }).catch(function (error) {\n reject(error);\n rejectQueue(error);\n });\n } // get cached value\n\n\n value = get({\n key: key,\n expires: expires\n });\n\n if (value) {\n resolve(value);\n resolveQueue(value);\n return value;\n } // set new cache value\n\n\n call().then(function (value) {\n if (value) {\n set({\n key: key,\n value: value,\n expires: expires\n });\n }\n\n resolve(value);\n resolveQueue(value);\n }).catch(function (error) {\n reject(error);\n rejectQueue(error);\n });\n })\n }).then(function () {\n deletePromise({\n key: key\n });\n }).catch(function () {\n deletePromise({\n key: key\n });\n });\n });\n};\n\nvar getProvider = /*#__PURE__*/function () {\n var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(blockchain) {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n if (!supported$1.evm.includes(blockchain)) {\n _context13.next = 6;\n break;\n }\n\n _context13.next = 3;\n return EVM.getProvider(blockchain);\n\n case 3:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 6:\n if (!supported$1.solana.includes(blockchain)) {\n _context13.next = 12;\n break;\n }\n\n _context13.next = 9;\n return Solana.getProvider(blockchain);\n\n case 9:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 12:\n throw 'Unknown blockchain: ' + blockchain;\n\n case 13:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n\n return function getProvider(_x15) {\n return _ref19.apply(this, arguments);\n };\n}();\n\nvar paramsToContractArgs = function paramsToContractArgs(_ref20) {\n var contract = _ref20.contract,\n method = _ref20.method,\n params = _ref20.params;\n var fragment = contract.interface.fragments.find(function (fragment) {\n return fragment.name == method;\n });\n return fragment.inputs.map(function (input, index) {\n if (Array.isArray(params)) {\n return params[index];\n } else {\n return params[input.name];\n }\n });\n};\n\nvar contractCall = function contractCall(_ref21) {\n var address = _ref21.address,\n api = _ref21.api,\n method = _ref21.method,\n params = _ref21.params,\n provider = _ref21.provider,\n block = _ref21.block;\n var contract = new ethers.Contract(address, api, provider);\n var args = paramsToContractArgs({\n contract: contract,\n method: method,\n params: params\n });\n var fragment = contract.interface.fragments.find(function (fragment) {\n return fragment.name === method;\n });\n\n if (contract[method] === undefined) {\n method = \"\".concat(method, \"(\").concat(fragment.inputs.map(function (input) {\n return input.type;\n }).join(','), \")\");\n }\n\n if (fragment && fragment.stateMutability === 'nonpayable') {\n var _contract$callStatic;\n\n return (_contract$callStatic = contract.callStatic)[method].apply(_contract$callStatic, _toConsumableArray(args).concat([{\n blockTag: block\n }]));\n } else {\n return contract[method].apply(contract, _toConsumableArray(args).concat([{\n blockTag: block\n }]));\n }\n};\n\nvar balance$1 = function balance$1(_ref22) {\n var address = _ref22.address,\n provider = _ref22.provider;\n return provider.getBalance(address);\n};\n\nvar transactionCount = function transactionCount(_ref23) {\n var address = _ref23.address,\n provider = _ref23.provider;\n return provider.getTransactionCount(address);\n};\n\nvar singleRequest$1 = function singleRequest$1(_ref24) {\n var blockchain = _ref24.blockchain,\n address = _ref24.address,\n api = _ref24.api,\n method = _ref24.method,\n params = _ref24.params,\n block = _ref24.block,\n provider = _ref24.provider;\n\n if (api) {\n return contractCall({\n address: address,\n api: api,\n method: method,\n params: params,\n provider: provider,\n block: block\n });\n } else if (method === 'latestBlockNumber') {\n return provider.getBlockNumber();\n } else if (method === 'balance') {\n return balance$1({\n address: address,\n provider: provider\n });\n } else if (method === 'transactionCount') {\n return transactionCount({\n address: address,\n provider: provider\n });\n }\n};\n\nvar requestEVM = /*#__PURE__*/function () {\n var _ref26 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(_ref25) {\n var blockchain, address, api, method, params, block, timeout, strategy, providers, allRequestsFailed, allRequestsInParallel, timeoutPromise, provider, _request;\n\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n blockchain = _ref25.blockchain, address = _ref25.address, api = _ref25.api, method = _ref25.method, params = _ref25.params, block = _ref25.block, timeout = _ref25.timeout, strategy = _ref25.strategy;\n strategy = strategy ? strategy : getConfiguration().strategy || 'failover';\n timeout = timeout ? timeout : getConfiguration().timeout || undefined;\n\n if (!(strategy === 'fastest')) {\n _context14.next = 14;\n break;\n }\n\n _context14.next = 6;\n return EVM.getProviders(blockchain);\n\n case 6:\n providers = _context14.sent;\n allRequestsFailed = [];\n allRequestsInParallel = providers.map(function (provider) {\n return new Promise(function (resolve) {\n allRequestsFailed.push(singleRequest$1({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider\n }).then(resolve));\n });\n });\n timeoutPromise = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout || 10000);\n });\n allRequestsFailed = Promise.all(allRequestsFailed.map(function (request) {\n return new Promise(function (resolve) {\n request.catch(resolve);\n });\n })).then(function () {\n return;\n });\n return _context14.abrupt(\"return\", Promise.race([].concat(_toConsumableArray(allRequestsInParallel), [timeoutPromise, allRequestsFailed])));\n\n case 14:\n _context14.next = 16;\n return EVM.getProvider(blockchain);\n\n case 16:\n provider = _context14.sent;\n _request = singleRequest$1({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider\n });\n\n if (!timeout) {\n _context14.next = 23;\n break;\n }\n\n timeout = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout);\n });\n return _context14.abrupt(\"return\", Promise.race([_request, timeout]));\n\n case 23:\n return _context14.abrupt(\"return\", _request);\n\n case 24:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n\n return function requestEVM(_x16) {\n return _ref26.apply(this, arguments);\n };\n}();\n\nvar accountInfo = /*#__PURE__*/function () {\n var _ref28 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref27) {\n var address, api, method, params, provider, block, info;\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n address = _ref27.address, api = _ref27.api, method = _ref27.method, params = _ref27.params, provider = _ref27.provider, block = _ref27.block;\n _context15.next = 3;\n return provider.getAccountInfo(new PublicKey(address));\n\n case 3:\n info = _context15.sent;\n\n if (!(!info || !info.data)) {\n _context15.next = 6;\n break;\n }\n\n return _context15.abrupt(\"return\");\n\n case 6:\n return _context15.abrupt(\"return\", api.decode(info.data));\n\n case 7:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n\n return function accountInfo(_x17) {\n return _ref28.apply(this, arguments);\n };\n}();\n\nvar balance = function balance(_ref29) {\n var address = _ref29.address,\n provider = _ref29.provider;\n return provider.getBalance(new PublicKey(address));\n};\n\nvar singleRequest = /*#__PURE__*/function () {\n var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(_ref30) {\n var blockchain, address, api, method, params, block, provider, providers, nextProvider;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n blockchain = _ref30.blockchain, address = _ref30.address, api = _ref30.api, method = _ref30.method, params = _ref30.params, block = _ref30.block, provider = _ref30.provider, providers = _ref30.providers;\n _context16.prev = 1;\n\n if (!(method == undefined || method === 'getAccountInfo')) {\n _context16.next = 9;\n break;\n }\n\n if (api == undefined) {\n api = ACCOUNT_LAYOUT;\n }\n\n _context16.next = 6;\n return accountInfo({\n address: address,\n api: api,\n method: method,\n params: params,\n provider: provider,\n block: block\n });\n\n case 6:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 9:\n if (!(method === 'getProgramAccounts')) {\n _context16.next = 15;\n break;\n }\n\n _context16.next = 12;\n return provider.getProgramAccounts(new PublicKey(address), params).then(function (accounts) {\n if (api) {\n return accounts.map(function (account) {\n account.data = api.decode(account.account.data);\n return account;\n });\n } else {\n return accounts;\n }\n });\n\n case 12:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 15:\n if (!(method === 'getTokenAccountBalance')) {\n _context16.next = 21;\n break;\n }\n\n _context16.next = 18;\n return provider.getTokenAccountBalance(new PublicKey(address));\n\n case 18:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 21:\n if (!(method === 'latestBlockNumber')) {\n _context16.next = 27;\n break;\n }\n\n _context16.next = 24;\n return provider.getSlot(params ? params : undefined);\n\n case 24:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 27:\n if (!(method === 'balance')) {\n _context16.next = 31;\n break;\n }\n\n _context16.next = 30;\n return balance({\n address: address,\n provider: provider\n });\n\n case 30:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 31:\n _context16.next = 41;\n break;\n\n case 33:\n _context16.prev = 33;\n _context16.t0 = _context16[\"catch\"](1);\n\n if (!(providers && _context16.t0 && ['Failed to fetch', 'limit reached', '504', '503', '502', '500', '429', '426', '422', '413', '409', '408', '406', '405', '404', '403', '402', '401', '400'].some(function (errorType) {\n return _context16.t0.toString().match(errorType);\n }))) {\n _context16.next = 40;\n break;\n }\n\n nextProvider = providers[providers.indexOf(provider) + 1] || providers[0];\n return _context16.abrupt(\"return\", singleRequest({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: nextProvider,\n providers: providers\n }));\n\n case 40:\n throw _context16.t0;\n\n case 41:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, null, [[1, 33]]);\n }));\n\n return function singleRequest(_x18) {\n return _ref31.apply(this, arguments);\n };\n}();\n\nvar requestSolana = /*#__PURE__*/function () {\n var _ref33 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(_ref32) {\n var blockchain, address, api, method, params, block, timeout, strategy, providers, allRequestsFailed, allRequestsInParallel, timeoutPromise, provider, _request2;\n\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n blockchain = _ref32.blockchain, address = _ref32.address, api = _ref32.api, method = _ref32.method, params = _ref32.params, block = _ref32.block, timeout = _ref32.timeout, strategy = _ref32.strategy;\n strategy = strategy ? strategy : getConfiguration().strategy || 'failover';\n timeout = timeout ? timeout : getConfiguration().timeout || undefined;\n _context17.next = 5;\n return Solana.getProviders(blockchain);\n\n case 5:\n providers = _context17.sent;\n\n if (!(strategy === 'fastest')) {\n _context17.next = 14;\n break;\n }\n\n allRequestsFailed = [];\n allRequestsInParallel = providers.map(function (provider) {\n return new Promise(function (resolve) {\n allRequestsFailed.push(singleRequest({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider\n }).then(resolve));\n });\n });\n timeoutPromise = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout || 10000);\n });\n allRequestsFailed = Promise.all(allRequestsFailed.map(function (request) {\n return new Promise(function (resolve) {\n request.catch(resolve);\n });\n })).then(function () {\n return;\n });\n return _context17.abrupt(\"return\", Promise.race([].concat(_toConsumableArray(allRequestsInParallel), [timeoutPromise, allRequestsFailed])));\n\n case 14:\n _context17.next = 16;\n return Solana.getProvider(blockchain);\n\n case 16:\n provider = _context17.sent;\n _request2 = singleRequest({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n provider: provider,\n providers: providers\n });\n\n if (!timeout) {\n _context17.next = 23;\n break;\n }\n\n timeout = new Promise(function (_, reject) {\n return setTimeout(function () {\n reject(new Error(\"Web3ClientTimeout\"));\n }, timeout);\n });\n return _context17.abrupt(\"return\", Promise.race([_request2, timeout]));\n\n case 23:\n return _context17.abrupt(\"return\", _request2);\n\n case 24:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n\n return function requestSolana(_x19) {\n return _ref33.apply(this, arguments);\n };\n}();\n\nvar parseUrl = function parseUrl(url) {\n if (_typeof(url) == 'object') {\n return url;\n }\n\n var deconstructed = url.match( /*#__PURE__*/_wrapRegExp(/([0-9A-Z_a-z]+):\\/\\/([0-9A-Z_a-z]+)(\\/([0-9A-Z_a-z]+)*)?/, {\n blockchain: 1,\n part1: 2,\n part2: 4\n }));\n\n if (deconstructed.groups.part2 == undefined) {\n if (deconstructed.groups.part1.match(/\\d/)) {\n return {\n blockchain: deconstructed.groups.blockchain,\n address: deconstructed.groups.part1\n };\n } else {\n return {\n blockchain: deconstructed.groups.blockchain,\n method: deconstructed.groups.part1\n };\n }\n } else {\n return {\n blockchain: deconstructed.groups.blockchain,\n address: deconstructed.groups.part1,\n method: deconstructed.groups.part2\n };\n }\n};\n\nvar request = /*#__PURE__*/function () {\n var _ref34 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(url, options) {\n var _parseUrl, blockchain, address, method, _ref35, api, params, cache$1, block, timeout, strategy, cacheKey;\n\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _parseUrl = parseUrl(url), blockchain = _parseUrl.blockchain, address = _parseUrl.address, method = _parseUrl.method;\n _ref35 = (_typeof(url) == 'object' ? url : options) || {}, api = _ref35.api, params = _ref35.params, cache$1 = _ref35.cache, block = _ref35.block, timeout = _ref35.timeout, strategy = _ref35.strategy, cacheKey = _ref35.cacheKey;\n _context19.next = 4;\n return cache({\n expires: cache$1 || 0,\n key: cacheKey || [blockchain, address, method, params, block],\n call: function () {\n var _call = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18() {\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n if (!supported$1.evm.includes(blockchain)) {\n _context18.next = 6;\n break;\n }\n\n _context18.next = 3;\n return requestEVM({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n strategy: strategy,\n timeout: timeout\n });\n\n case 3:\n return _context18.abrupt(\"return\", _context18.sent);\n\n case 6:\n if (!supported$1.solana.includes(blockchain)) {\n _context18.next = 12;\n break;\n }\n\n _context18.next = 9;\n return requestSolana({\n blockchain: blockchain,\n address: address,\n api: api,\n method: method,\n params: params,\n block: block,\n strategy: strategy,\n timeout: timeout\n });\n\n case 9:\n return _context18.abrupt(\"return\", _context18.sent);\n\n case 12:\n throw 'Unknown blockchain: ' + blockchain;\n\n case 13:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n\n function call() {\n return _call.apply(this, arguments);\n }\n\n return call;\n }()\n });\n\n case 4:\n return _context19.abrupt(\"return\", _context19.sent);\n\n case 5:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19);\n }));\n\n return function request(_x20, _x21) {\n return _ref34.apply(this, arguments);\n };\n}();\n\nvar getWSolSenderAccountKeypairIfNeeded = /*#__PURE__*/function () {\n var _ref37 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref36) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n paymentRoute = _ref36.paymentRoute;\n\n if (!(paymentRoute.fromToken.address === Blockchains.solana.currency.address && paymentRoute.toToken.address !== Blockchains.solana.currency.address)) {\n _context20.next = 3;\n break;\n }\n\n return _context20.abrupt(\"return\", Keypair.generate());\n\n case 3:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20);\n }));\n\n return function getWSolSenderAccountKeypairIfNeeded(_x22) {\n return _ref37.apply(this, arguments);\n };\n}();\n\nvar getWSolEscrowAccountKeypairIfNeeded = /*#__PURE__*/function () {\n var _ref39 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref38) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n paymentRoute = _ref38.paymentRoute;\n\n if (!(paymentRoute.fromToken.address !== Blockchains.solana.currency.address && paymentRoute.toToken.address === Blockchains.solana.currency.address)) {\n _context21.next = 3;\n break;\n }\n\n return _context21.abrupt(\"return\", Keypair.generate());\n\n case 3:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21);\n }));\n\n return function getWSolEscrowAccountKeypairIfNeeded(_x23) {\n return _ref39.apply(this, arguments);\n };\n}();\n\nvar createWSolSenderAccount = /*#__PURE__*/function () {\n var _ref41 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(_ref40) {\n var wSolSenderAccountKeypair, paymentRoute, wSolStartAmount, provider, rent, owner, lamports, createAccountInstruction, initializeAccountInstruction;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n wSolSenderAccountKeypair = _ref40.wSolSenderAccountKeypair, paymentRoute = _ref40.paymentRoute;\n\n if (wSolSenderAccountKeypair) {\n _context22.next = 3;\n break;\n }\n\n return _context22.abrupt(\"return\");\n\n case 3:\n wSolStartAmount = paymentRoute.fromToken.address === Blockchains.solana.currency.address ? new BN(paymentRoute.fromAmount) : new BN('0');\n _context22.next = 6;\n return getProvider('solana');\n\n case 6:\n provider = _context22.sent;\n _context22.t0 = BN;\n _context22.next = 10;\n return provider.getMinimumBalanceForRentExemption(Token.solana.TOKEN_LAYOUT.span);\n\n case 10:\n _context22.t1 = _context22.sent;\n rent = new _context22.t0(_context22.t1);\n owner = paymentRoute.fromAddress;\n lamports = wSolStartAmount.add(rent);\n createAccountInstruction = SystemProgram.createAccount({\n fromPubkey: new PublicKey(owner),\n newAccountPubkey: wSolSenderAccountKeypair.publicKey,\n programId: new PublicKey(Token.solana.TOKEN_PROGRAM),\n space: Token.solana.TOKEN_LAYOUT.span,\n lamports: lamports\n });\n initializeAccountInstruction = Token.solana.initializeAccountInstruction({\n account: wSolSenderAccountKeypair.publicKey.toString(),\n token: Blockchains.solana.wrapped.address,\n owner: owner\n });\n return _context22.abrupt(\"return\", [createAccountInstruction, initializeAccountInstruction]);\n\n case 17:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22);\n }));\n\n return function createWSolSenderAccount(_x24) {\n return _ref41.apply(this, arguments);\n };\n}();\n\nvar createEscrowOutWSolAccount = /*#__PURE__*/function () {\n var _ref43 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(_ref42) {\n var wSolEscrowAccountKeypair, paymentRoute, provider, rent, owner, createAccountInstruction, initializeAccountInstruction;\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n wSolEscrowAccountKeypair = _ref42.wSolEscrowAccountKeypair, paymentRoute = _ref42.paymentRoute;\n\n if (wSolEscrowAccountKeypair) {\n _context23.next = 3;\n break;\n }\n\n return _context23.abrupt(\"return\");\n\n case 3:\n _context23.next = 5;\n return getProvider('solana');\n\n case 5:\n provider = _context23.sent;\n _context23.t0 = BN;\n _context23.next = 9;\n return provider.getMinimumBalanceForRentExemption(Token.solana.TOKEN_LAYOUT.span);\n\n case 9:\n _context23.t1 = _context23.sent;\n rent = new _context23.t0(_context23.t1);\n _context23.next = 13;\n return getEscrowSolAccountPublicKey();\n\n case 13:\n owner = _context23.sent;\n createAccountInstruction = SystemProgram.createAccount({\n fromPubkey: new PublicKey(paymentRoute.fromAddress),\n newAccountPubkey: wSolEscrowAccountKeypair.publicKey,\n programId: new PublicKey(Token.solana.TOKEN_PROGRAM),\n space: Token.solana.TOKEN_LAYOUT.span,\n lamports: rent\n });\n initializeAccountInstruction = Token.solana.initializeAccountInstruction({\n account: wSolEscrowAccountKeypair.publicKey.toString(),\n token: Blockchains.solana.wrapped.address,\n owner: owner.toString()\n });\n return _context23.abrupt(\"return\", [createAccountInstruction, initializeAccountInstruction]);\n\n case 17:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23);\n }));\n\n return function createEscrowOutWSolAccount(_x25) {\n return _ref43.apply(this, arguments);\n };\n}();\n\nvar getMiddleToken = function getMiddleToken(_ref44) {\n var paymentRoute = _ref44.paymentRoute;\n\n var path = _toConsumableArray(paymentRoute.exchangeRoutes[0].path);\n\n if (path.indexOf(Blockchains.solana.currency.address) > -1) {\n path.splice(path.indexOf(Blockchains.solana.currency.address), 1);\n }\n\n if (path.indexOf(paymentRoute.fromToken.address) > -1) {\n path.splice(path.indexOf(paymentRoute.fromToken.address), 1);\n }\n\n if (path.indexOf(paymentRoute.toToken.address) > -1) {\n path.splice(path.indexOf(paymentRoute.toToken.address), 1);\n }\n\n if (path.length === 2 && path[0] === Blockchains.solana.wrapped.address) {\n return path[1];\n } else {\n return path[0];\n }\n};\n\nvar getMiddleTokenAccountAddress = /*#__PURE__*/function () {\n var _ref46 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(_ref45) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n paymentRoute = _ref45.paymentRoute;\n _context24.next = 3;\n return Token.solana.findProgramAddress({\n token: getMiddleToken({\n paymentRoute: paymentRoute\n }),\n owner: paymentRoute.fromAddress\n });\n\n case 3:\n return _context24.abrupt(\"return\", _context24.sent);\n\n case 4:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24);\n }));\n\n return function getMiddleTokenAccountAddress(_x26) {\n return _ref46.apply(this, arguments);\n };\n}();\n\nvar getMiddleTokenAccount = /*#__PURE__*/function () {\n var _ref48 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref47) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n paymentRoute = _ref47.paymentRoute;\n _context25.t0 = request;\n _context25.next = 4;\n return getMiddleTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 4:\n _context25.t1 = _context25.sent;\n _context25.t2 = Token.solana.TOKEN_LAYOUT;\n _context25.t3 = {\n blockchain: 'solana',\n address: _context25.t1,\n api: _context25.t2,\n cache: 1000\n };\n _context25.next = 9;\n return (0, _context25.t0)(_context25.t3);\n\n case 9:\n return _context25.abrupt(\"return\", _context25.sent);\n\n case 10:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25);\n }));\n\n return function getMiddleTokenAccount(_x27) {\n return _ref48.apply(this, arguments);\n };\n}();\n\nvar createTokenMiddleAccount = /*#__PURE__*/function () {\n var _ref50 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26(_ref49) {\n var paymentRoute, middleTokenAccount;\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n paymentRoute = _ref49.paymentRoute;\n\n if (!(paymentRoute.exchangeRoutes.length === 0 || getFixedPath(paymentRoute.exchangeRoutes[0].path).length <= 2)) {\n _context26.next = 3;\n break;\n }\n\n return _context26.abrupt(\"return\");\n\n case 3:\n _context26.next = 5;\n return getMiddleTokenAccount({\n paymentRoute: paymentRoute\n });\n\n case 5:\n middleTokenAccount = _context26.sent;\n\n if (!middleTokenAccount) {\n _context26.next = 8;\n break;\n }\n\n return _context26.abrupt(\"return\");\n\n case 8:\n return _context26.abrupt(\"return\", Token.solana.createAssociatedTokenAccountInstruction({\n token: getMiddleToken({\n paymentRoute: paymentRoute\n }),\n owner: paymentRoute.fromAddress,\n payer: paymentRoute.fromAddress\n }));\n\n case 9:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26);\n }));\n\n return function createTokenMiddleAccount(_x28) {\n return _ref50.apply(this, arguments);\n };\n}();\n\nvar closeWSolSenderAccount = /*#__PURE__*/function () {\n var _ref52 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27(_ref51) {\n var wSolSenderAccountKeypair, paymentRoute;\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n wSolSenderAccountKeypair = _ref51.wSolSenderAccountKeypair, paymentRoute = _ref51.paymentRoute;\n\n if (wSolSenderAccountKeypair) {\n _context27.next = 3;\n break;\n }\n\n return _context27.abrupt(\"return\");\n\n case 3:\n return _context27.abrupt(\"return\", Token.solana.closeAccountInstruction({\n account: wSolSenderAccountKeypair.publicKey.toString(),\n owner: paymentRoute.fromAddress\n }));\n\n case 4:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27);\n }));\n\n return function closeWSolSenderAccount(_x29) {\n return _ref52.apply(this, arguments);\n };\n}();\n\nvar getPaymentsAccountAddress = /*#__PURE__*/function () {\n var _ref54 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28(_ref53) {\n var from, seeds, _yield$PublicKey$find, _yield$PublicKey$find2, pdaPublicKey;\n\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n from = _ref53.from;\n seeds = [Buffer.from(\"payments\"), new PublicKey(from).toBuffer()];\n _context28.next = 4;\n return PublicKey.findProgramAddress(seeds, new PublicKey(solanaRouters.solana.address));\n\n case 4:\n _yield$PublicKey$find = _context28.sent;\n _yield$PublicKey$find2 = _slicedToArray(_yield$PublicKey$find, 1);\n pdaPublicKey = _yield$PublicKey$find2[0];\n return _context28.abrupt(\"return\", pdaPublicKey);\n\n case 8:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28);\n }));\n\n return function getPaymentsAccountAddress(_x30) {\n return _ref54.apply(this, arguments);\n };\n}();\n\nvar getPaymentsAccountData = /*#__PURE__*/function () {\n var _ref56 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29(_ref55) {\n var from, address;\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n from = _ref55.from;\n _context29.next = 3;\n return getPaymentsAccountAddress({\n from: from\n });\n\n case 3:\n address = _context29.sent.toString();\n _context29.next = 6;\n return request({\n blockchain: 'solana',\n address: address,\n api: struct([u64('anchorDiscriminator'), u64('nonce')]),\n cache: 1000\n });\n\n case 6:\n return _context29.abrupt(\"return\", _context29.sent);\n\n case 7:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29);\n }));\n\n return function getPaymentsAccountData(_x31) {\n return _ref56.apply(this, arguments);\n };\n}();\n\nvar createPaymentsAccount = /*#__PURE__*/function () {\n var _ref58 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee30(_ref57) {\n var from, paymentsAccountData, keys, data;\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.next) {\n case 0:\n from = _ref57.from;\n _context30.next = 3;\n return getPaymentsAccountData({\n from: from\n });\n\n case 3:\n paymentsAccountData = _context30.sent;\n\n if (!paymentsAccountData) {\n _context30.next = 6;\n break;\n }\n\n return _context30.abrupt(\"return\");\n\n case 6:\n _context30.t0 = {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n };\n _context30.t1 = {\n pubkey: new PublicKey(from),\n isSigner: true,\n isWritable: true\n };\n _context30.next = 10;\n return getPaymentsAccountAddress({\n from: from\n });\n\n case 10:\n _context30.t2 = _context30.sent;\n _context30.t3 = {\n pubkey: _context30.t2,\n isSigner: false,\n isWritable: true\n };\n keys = [_context30.t0, _context30.t1, _context30.t3];\n data = Buffer.alloc(solanaRouters.solana.api.createPaymentsAccount.layout.span);\n solanaRouters.solana.api.createPaymentsAccount.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.createPaymentsAccount.anchorDiscriminator\n }, data);\n return _context30.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 16:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30);\n }));\n\n return function createPaymentsAccount(_x32) {\n return _ref58.apply(this, arguments);\n };\n}();\n\nvar getPaymentSenderTokenAccountAddress = /*#__PURE__*/function () {\n var _ref60 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee31(_ref59) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n paymentRoute = _ref59.paymentRoute;\n _context31.next = 3;\n return Token.solana.findProgramAddress({\n token: paymentRoute.fromToken.address,\n owner: paymentRoute.fromAddress\n });\n\n case 3:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 4:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31);\n }));\n\n return function getPaymentSenderTokenAccountAddress(_x33) {\n return _ref60.apply(this, arguments);\n };\n}();\n\nvar getPaymentReceiverTokenAccountAddress = /*#__PURE__*/function () {\n var _ref62 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee32(_ref61) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n paymentRoute = _ref61.paymentRoute;\n _context32.next = 3;\n return Token.solana.findProgramAddress({\n token: paymentRoute.toToken.address,\n owner: paymentRoute.toAddress\n });\n\n case 3:\n return _context32.abrupt(\"return\", _context32.sent);\n\n case 4:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32);\n }));\n\n return function getPaymentReceiverTokenAccountAddress(_x34) {\n return _ref62.apply(this, arguments);\n };\n}();\n\nvar getPaymentReceiverTokenAccount = /*#__PURE__*/function () {\n var _ref64 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee33(_ref63) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n paymentRoute = _ref63.paymentRoute;\n _context33.next = 3;\n return Token.solana.findAccount({\n token: paymentRoute.toToken.address,\n owner: paymentRoute.toAddress\n });\n\n case 3:\n return _context33.abrupt(\"return\", _context33.sent);\n\n case 4:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33);\n }));\n\n return function getPaymentReceiverTokenAccount(_x35) {\n return _ref64.apply(this, arguments);\n };\n}();\n\nvar createPaymentReceiverAccount = /*#__PURE__*/function () {\n var _ref66 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee34(_ref65) {\n var paymentRoute, paymentReceiverBalance, provider, rent, paymentAmount, token, paymentReceiverTokenAccount;\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n paymentRoute = _ref65.paymentRoute;\n\n if (!(paymentRoute.toToken.address === Blockchains.solana.currency.address)) {\n _context34.next = 19;\n break;\n }\n\n _context34.next = 4;\n return request({\n blockchain: 'solana',\n method: 'balance',\n address: paymentRoute.toAddress\n });\n\n case 4:\n paymentReceiverBalance = _context34.sent;\n _context34.next = 7;\n return getProvider('solana');\n\n case 7:\n provider = _context34.sent;\n _context34.t0 = BN;\n _context34.next = 11;\n return provider.getMinimumBalanceForRentExemption(0);\n\n case 11:\n _context34.t1 = _context34.sent;\n rent = new _context34.t0(_context34.t1);\n paymentAmount = new BN(paymentRoute.toAmount);\n\n if (!new BN(paymentReceiverBalance).add(paymentAmount).gt(rent)) {\n _context34.next = 16;\n break;\n }\n\n return _context34.abrupt(\"return\");\n\n case 16:\n return _context34.abrupt(\"return\", SystemProgram.transfer({\n fromPubkey: new PublicKey(paymentRoute.fromAddress),\n toPubkey: new PublicKey(paymentRoute.toAddress),\n lamports: rent.sub(paymentAmount)\n }));\n\n case 19:\n token = paymentRoute.toToken.address;\n _context34.next = 22;\n return getPaymentReceiverTokenAccount({\n paymentRoute: paymentRoute\n });\n\n case 22:\n paymentReceiverTokenAccount = _context34.sent;\n\n if (!paymentReceiverTokenAccount) {\n _context34.next = 25;\n break;\n }\n\n return _context34.abrupt(\"return\");\n\n case 25:\n return _context34.abrupt(\"return\", Token.solana.createAssociatedTokenAccountInstruction({\n token: token,\n owner: paymentRoute.toAddress,\n payer: paymentRoute.fromAddress\n }));\n\n case 26:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34);\n }));\n\n return function createPaymentReceiverAccount(_x36) {\n return _ref66.apply(this, arguments);\n };\n}();\n\nvar getFeeReceiverTokenAccountAddress = /*#__PURE__*/function () {\n var _ref68 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee35(_ref67) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n paymentRoute = _ref67.paymentRoute;\n _context35.next = 3;\n return Token.solana.findProgramAddress({\n token: paymentRoute.toToken.address,\n owner: paymentRoute.fee.receiver\n });\n\n case 3:\n return _context35.abrupt(\"return\", _context35.sent);\n\n case 4:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35);\n }));\n\n return function getFeeReceiverTokenAccountAddress(_x37) {\n return _ref68.apply(this, arguments);\n };\n}();\n\nvar getFeeReceiverTokenAccount = /*#__PURE__*/function () {\n var _ref70 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee36(_ref69) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee36$(_context36) {\n while (1) {\n switch (_context36.prev = _context36.next) {\n case 0:\n paymentRoute = _ref69.paymentRoute;\n _context36.next = 3;\n return Token.solana.findAccount({\n token: paymentRoute.toToken.address,\n owner: paymentRoute.fee.receiver\n });\n\n case 3:\n return _context36.abrupt(\"return\", _context36.sent);\n\n case 4:\n case \"end\":\n return _context36.stop();\n }\n }\n }, _callee36);\n }));\n\n return function getFeeReceiverTokenAccount(_x38) {\n return _ref70.apply(this, arguments);\n };\n}();\n\nvar createFeeReceiverAccount = /*#__PURE__*/function () {\n var _ref72 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee37(_ref71) {\n var paymentRoute, feeReceiverBalance, provider, rent, feeAmount, token, feeReceiverTokenAccount;\n return _regeneratorRuntime.wrap(function _callee37$(_context37) {\n while (1) {\n switch (_context37.prev = _context37.next) {\n case 0:\n paymentRoute = _ref71.paymentRoute;\n\n if (paymentRoute.fee) {\n _context37.next = 3;\n break;\n }\n\n return _context37.abrupt(\"return\");\n\n case 3:\n if (!(paymentRoute.toToken.address === Blockchains.solana.currency.address)) {\n _context37.next = 21;\n break;\n }\n\n _context37.next = 6;\n return request({\n blockchain: 'solana',\n method: 'balance',\n address: paymentRoute.fee.receiver\n });\n\n case 6:\n feeReceiverBalance = _context37.sent;\n _context37.next = 9;\n return getProvider('solana');\n\n case 9:\n provider = _context37.sent;\n _context37.t0 = BN;\n _context37.next = 13;\n return provider.getMinimumBalanceForRentExemption(0);\n\n case 13:\n _context37.t1 = _context37.sent;\n rent = new _context37.t0(_context37.t1);\n feeAmount = new BN(paymentRoute.feeAmount);\n\n if (!new BN(feeReceiverBalance).add(feeAmount).gt(rent)) {\n _context37.next = 18;\n break;\n }\n\n return _context37.abrupt(\"return\");\n\n case 18:\n return _context37.abrupt(\"return\", SystemProgram.transfer({\n fromPubkey: new PublicKey(paymentRoute.fromAddress),\n toPubkey: new PublicKey(paymentRoute.fee.receiver),\n lamports: rent.sub(feeAmount)\n }));\n\n case 21:\n token = paymentRoute.toToken.address;\n _context37.next = 24;\n return getFeeReceiverTokenAccount({\n paymentRoute: paymentRoute\n });\n\n case 24:\n feeReceiverTokenAccount = _context37.sent;\n\n if (!feeReceiverTokenAccount) {\n _context37.next = 27;\n break;\n }\n\n return _context37.abrupt(\"return\");\n\n case 27:\n return _context37.abrupt(\"return\", Token.solana.createAssociatedTokenAccountInstruction({\n token: token,\n owner: paymentRoute.fee.receiver,\n payer: paymentRoute.fromAddress\n }));\n\n case 28:\n case \"end\":\n return _context37.stop();\n }\n }\n }, _callee37);\n }));\n\n return function createFeeReceiverAccount(_x39) {\n return _ref72.apply(this, arguments);\n };\n}();\n\nvar getEscrowSolAccountPublicKey = /*#__PURE__*/function () {\n var _ref73 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee38() {\n var seeds, _yield$PublicKey$find3, _yield$PublicKey$find4, pdaPublicKey, bump;\n\n return _regeneratorRuntime.wrap(function _callee38$(_context38) {\n while (1) {\n switch (_context38.prev = _context38.next) {\n case 0:\n seeds = [Buffer.from(\"escrow_sol\")];\n _context38.next = 3;\n return PublicKey.findProgramAddress(seeds, new PublicKey(solanaRouters.solana.address));\n\n case 3:\n _yield$PublicKey$find3 = _context38.sent;\n _yield$PublicKey$find4 = _slicedToArray(_yield$PublicKey$find3, 2);\n pdaPublicKey = _yield$PublicKey$find4[0];\n bump = _yield$PublicKey$find4[1];\n return _context38.abrupt(\"return\", pdaPublicKey);\n\n case 8:\n case \"end\":\n return _context38.stop();\n }\n }\n }, _callee38);\n }));\n\n return function getEscrowSolAccountPublicKey() {\n return _ref73.apply(this, arguments);\n };\n}();\n\nvar getEscrowSolAccountData = /*#__PURE__*/function () {\n var _ref75 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee39(_ref74) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee39$(_context39) {\n while (1) {\n switch (_context39.prev = _context39.next) {\n case 0:\n paymentRoute = _ref74.paymentRoute;\n _context39.t0 = request;\n _context39.next = 4;\n return getEscrowSolAccountPublicKey();\n\n case 4:\n _context39.t1 = _context39.sent.toString();\n _context39.t2 = struct([u64('amount'), publicKey('owner')]);\n _context39.t3 = {\n blockchain: 'solana',\n address: _context39.t1,\n api: _context39.t2,\n cache: 1000\n };\n _context39.next = 9;\n return (0, _context39.t0)(_context39.t3);\n\n case 9:\n return _context39.abrupt(\"return\", _context39.sent);\n\n case 10:\n case \"end\":\n return _context39.stop();\n }\n }\n }, _callee39);\n }));\n\n return function getEscrowSolAccountData(_x40) {\n return _ref75.apply(this, arguments);\n };\n}();\n\nvar getEscrowAccountPublicKey = /*#__PURE__*/function () {\n var _ref77 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee40(_ref76) {\n var paymentRoute, seeds, _yield$PublicKey$find5, _yield$PublicKey$find6, pdaPublicKey, bump;\n\n return _regeneratorRuntime.wrap(function _callee40$(_context40) {\n while (1) {\n switch (_context40.prev = _context40.next) {\n case 0:\n paymentRoute = _ref76.paymentRoute;\n seeds = [Buffer.from(\"escrow\"), new PublicKey(paymentRoute.toToken.address === Blockchains.solana.currency.address ? Blockchains.solana.wrapped.address : paymentRoute.toToken.address).toBuffer()];\n _context40.next = 4;\n return PublicKey.findProgramAddress(seeds, new PublicKey(solanaRouters.solana.address));\n\n case 4:\n _yield$PublicKey$find5 = _context40.sent;\n _yield$PublicKey$find6 = _slicedToArray(_yield$PublicKey$find5, 2);\n pdaPublicKey = _yield$PublicKey$find6[0];\n bump = _yield$PublicKey$find6[1];\n return _context40.abrupt(\"return\", pdaPublicKey);\n\n case 9:\n case \"end\":\n return _context40.stop();\n }\n }\n }, _callee40);\n }));\n\n return function getEscrowAccountPublicKey(_x41) {\n return _ref77.apply(this, arguments);\n };\n}();\n\nvar getEscrowAccountData = /*#__PURE__*/function () {\n var _ref79 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee41(_ref78) {\n var paymentRoute;\n return _regeneratorRuntime.wrap(function _callee41$(_context41) {\n while (1) {\n switch (_context41.prev = _context41.next) {\n case 0:\n paymentRoute = _ref78.paymentRoute;\n _context41.t0 = request;\n _context41.next = 4;\n return getEscrowAccountPublicKey({\n paymentRoute: paymentRoute\n });\n\n case 4:\n _context41.t1 = _context41.sent.toString();\n _context41.t2 = Token.solana.TOKEN_LAYOUT;\n _context41.t3 = {\n blockchain: 'solana',\n address: _context41.t1,\n api: _context41.t2,\n cache: 1000\n };\n _context41.next = 9;\n return (0, _context41.t0)(_context41.t3);\n\n case 9:\n return _context41.abrupt(\"return\", _context41.sent);\n\n case 10:\n case \"end\":\n return _context41.stop();\n }\n }\n }, _callee41);\n }));\n\n return function getEscrowAccountData(_x42) {\n return _ref79.apply(this, arguments);\n };\n}();\n\nvar createEscrowOutTokenAccount = /*#__PURE__*/function () {\n var _ref81 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee42(_ref80) {\n var paymentRoute, escrowAccount, keys, data;\n return _regeneratorRuntime.wrap(function _callee42$(_context42) {\n while (1) {\n switch (_context42.prev = _context42.next) {\n case 0:\n paymentRoute = _ref80.paymentRoute;\n\n if (!(paymentRoute.exchangeRoutes.length === 0 || paymentRoute.toToken.address === Blockchains.solana.currency.address)) {\n _context42.next = 3;\n break;\n }\n\n return _context42.abrupt(\"return\");\n\n case 3:\n _context42.next = 5;\n return getEscrowAccountData({\n paymentRoute: paymentRoute\n });\n\n case 5:\n escrowAccount = _context42.sent;\n\n if (!escrowAccount) {\n _context42.next = 8;\n break;\n }\n\n return _context42.abrupt(\"return\");\n\n case 8:\n _context42.t0 = {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n };\n _context42.t1 = {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n };\n _context42.t2 = {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context42.t3 = {\n pubkey: new PublicKey(paymentRoute.toToken.address === Blockchains.solana.currency.address ? Blockchains.solana.wrapped.address : paymentRoute.toToken.address),\n isSigner: false,\n isWritable: true\n };\n _context42.next = 14;\n return getEscrowAccountPublicKey({\n paymentRoute: paymentRoute\n });\n\n case 14:\n _context42.t4 = _context42.sent;\n _context42.t5 = {\n pubkey: _context42.t4,\n isSigner: false,\n isWritable: true\n };\n keys = [_context42.t0, _context42.t1, _context42.t2, _context42.t3, _context42.t5];\n data = Buffer.alloc(solanaRouters.solana.api.createEscrowTokenAccount.layout.span);\n solanaRouters.solana.api.createEscrowTokenAccount.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.createEscrowTokenAccount.anchorDiscriminator\n }, data);\n return _context42.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 20:\n case \"end\":\n return _context42.stop();\n }\n }\n }, _callee42);\n }));\n\n return function createEscrowOutTokenAccount(_x43) {\n return _ref81.apply(this, arguments);\n };\n}();\n\nvar createEscrowOutSolAccount = /*#__PURE__*/function () {\n var _ref83 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee43(_ref82) {\n var paymentRoute, escrowAccount, keys, data;\n return _regeneratorRuntime.wrap(function _callee43$(_context43) {\n while (1) {\n switch (_context43.prev = _context43.next) {\n case 0:\n paymentRoute = _ref82.paymentRoute;\n\n if (!(paymentRoute.exchangeRoutes.length === 0 || paymentRoute.toToken.address != Blockchains.solana.currency.address)) {\n _context43.next = 3;\n break;\n }\n\n return _context43.abrupt(\"return\");\n\n case 3:\n _context43.next = 5;\n return getEscrowSolAccountData({\n paymentRoute: paymentRoute\n });\n\n case 5:\n escrowAccount = _context43.sent;\n\n if (!escrowAccount) {\n _context43.next = 8;\n break;\n }\n\n return _context43.abrupt(\"return\");\n\n case 8:\n _context43.t0 = {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n };\n _context43.t1 = {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context43.next = 12;\n return getEscrowSolAccountPublicKey();\n\n case 12:\n _context43.t2 = _context43.sent;\n _context43.t3 = {\n pubkey: _context43.t2,\n isSigner: false,\n isWritable: true\n };\n keys = [_context43.t0, _context43.t1, _context43.t3];\n data = Buffer.alloc(solanaRouters.solana.api.createEscrowSolAccount.layout.span);\n solanaRouters.solana.api.createEscrowSolAccount.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.createEscrowSolAccount.anchorDiscriminator\n }, data);\n return _context43.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 18:\n case \"end\":\n return _context43.stop();\n }\n }\n }, _callee43);\n }));\n\n return function createEscrowOutSolAccount(_x44) {\n return _ref83.apply(this, arguments);\n };\n}();\n\nvar getFixedPath = function getFixedPath(path) {\n return path.filter(function (step) {\n return step !== Blockchains.solana.currency.address;\n });\n};\n\nvar getPaymentMethod = function getPaymentMethod(_ref84) {\n var paymentRoute = _ref84.paymentRoute;\n\n if (paymentRoute.fromToken.address === Blockchains.solana.currency.address && paymentRoute.toToken.address === Blockchains.solana.currency.address) {\n return 'routeSol';\n } else if (paymentRoute.fromToken.address !== Blockchains.solana.currency.address && paymentRoute.toToken.address !== Blockchains.solana.currency.address && paymentRoute.exchangeRoutes.length === 0) {\n return 'routeToken';\n } else if (paymentRoute.exchangeRoutes.length > 0 && getFixedPath(paymentRoute.exchangeRoutes[0].path).length === 2) {\n if (paymentRoute.toToken.address === Blockchains.solana.currency.address) {\n return 'routeOrcaSwapSolOut';\n } else {\n return 'routeOrcaSwap';\n }\n } else if (paymentRoute.exchangeRoutes.length > 0 && getFixedPath(paymentRoute.exchangeRoutes[0].path).length > 2) {\n if (paymentRoute.toToken.address === Blockchains.solana.currency.address) {\n return 'routeOrcaTwoHopSwapSolOut';\n } else {\n return 'routeOrcaTwoHopSwap';\n }\n } else {\n throw 'Payment method does not exist!';\n }\n};\n\nvar getDeadline = function getDeadline() {\n return Math.ceil(new Date().getTime() / 1000) + 1800; // 30 Minutes (lower causes wallet simulation issues)\n};\n\nvar getNonce = function getNonce(paymentsAccountData) {\n return paymentsAccountData ? paymentsAccountData.nonce : new BN('0');\n};\n\nvar routeSol = /*#__PURE__*/function () {\n var _ref86 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee44(_ref85) {\n var paymentRoute, nonce, deadline, paymentReceiverPublicKey, feeReceiverPublicKey, keys, data;\n return _regeneratorRuntime.wrap(function _callee44$(_context44) {\n while (1) {\n switch (_context44.prev = _context44.next) {\n case 0:\n paymentRoute = _ref85.paymentRoute, nonce = _ref85.nonce, deadline = _ref85.deadline;\n paymentReceiverPublicKey = new PublicKey(paymentRoute.toAddress);\n feeReceiverPublicKey = paymentRoute.fee ? new PublicKey(paymentRoute.fee.receiver) : paymentReceiverPublicKey;\n _context44.t0 = {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n };\n _context44.t1 = {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context44.next = 7;\n return getPaymentsAccountAddress({\n from: paymentRoute.fromAddress\n });\n\n case 7:\n _context44.t2 = _context44.sent;\n _context44.t3 = {\n pubkey: _context44.t2,\n isSigner: false,\n isWritable: true\n };\n _context44.t4 = {\n pubkey: paymentReceiverPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context44.t5 = {\n pubkey: feeReceiverPublicKey,\n isSigner: false,\n isWritable: true\n };\n keys = [_context44.t0, _context44.t1, _context44.t3, _context44.t4, _context44.t5];\n data = Buffer.alloc(solanaRouters.solana.api.routeSol.layout.span);\n solanaRouters.solana.api.routeSol.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.routeSol.anchorDiscriminator,\n nonce: nonce,\n paymentAmount: new BN(paymentRoute.toAmount.toString()),\n feeAmount: new BN((paymentRoute.feeAmount || '0').toString()),\n deadline: new BN(deadline)\n }, data);\n return _context44.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 15:\n case \"end\":\n return _context44.stop();\n }\n }\n }, _callee44);\n }));\n\n return function routeSol(_x45) {\n return _ref86.apply(this, arguments);\n };\n}();\n\nvar routeToken = /*#__PURE__*/function () {\n var _ref88 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee45(_ref87) {\n var paymentRoute, nonce, deadline, senderTokenAccountAddress, paymentReceiverTokenAccountAddress, feeReceiverTokenAccountAddress, keys, data;\n return _regeneratorRuntime.wrap(function _callee45$(_context45) {\n while (1) {\n switch (_context45.prev = _context45.next) {\n case 0:\n paymentRoute = _ref87.paymentRoute, nonce = _ref87.nonce, deadline = _ref87.deadline;\n _context45.next = 3;\n return getPaymentSenderTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 3:\n senderTokenAccountAddress = _context45.sent;\n _context45.next = 6;\n return getPaymentReceiverTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 6:\n paymentReceiverTokenAccountAddress = _context45.sent;\n\n if (!paymentRoute.fee) {\n _context45.next = 13;\n break;\n }\n\n _context45.next = 10;\n return getFeeReceiverTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 10:\n _context45.t0 = _context45.sent;\n _context45.next = 14;\n break;\n\n case 13:\n _context45.t0 = paymentReceiverTokenAccountAddress;\n\n case 14:\n feeReceiverTokenAccountAddress = _context45.t0;\n _context45.t1 = {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n };\n _context45.t2 = {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context45.next = 19;\n return getPaymentsAccountAddress({\n from: paymentRoute.fromAddress\n });\n\n case 19:\n _context45.t3 = _context45.sent;\n _context45.t4 = {\n pubkey: _context45.t3,\n isSigner: false,\n isWritable: true\n };\n _context45.t5 = {\n pubkey: new PublicKey(senderTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n _context45.t6 = {\n pubkey: new PublicKey(paymentReceiverTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n _context45.t7 = {\n pubkey: new PublicKey(feeReceiverTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n keys = [_context45.t1, _context45.t2, _context45.t4, _context45.t5, _context45.t6, _context45.t7];\n data = Buffer.alloc(solanaRouters.solana.api.routeToken.layout.span);\n solanaRouters.solana.api.routeToken.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.routeToken.anchorDiscriminator,\n nonce: nonce,\n paymentAmount: new BN(paymentRoute.toAmount.toString()),\n feeAmount: new BN((paymentRoute.feeAmount || '0').toString()),\n deadline: new BN(deadline)\n }, data);\n return _context45.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 28:\n case \"end\":\n return _context45.stop();\n }\n }\n }, _callee45);\n }));\n\n return function routeToken(_x46) {\n return _ref88.apply(this, arguments);\n };\n}();\n\nvar routeOrcaSwap = /*#__PURE__*/function () {\n var _ref90 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee46(_ref89) {\n var paymentRoute, nonce, wSolSenderAccountKeypair, deadline, senderTokenAccountAddress, paymentReceiverTokenAccountAddress, feeReceiverTokenAccountAddress, escrowOutPublicKey, exchangeRouteTransaction, exchangeRouteSwapInstruction, SWAP_LAYOUT, exchangeRouteSwapInstructionData, keys, data;\n return _regeneratorRuntime.wrap(function _callee46$(_context46) {\n while (1) {\n switch (_context46.prev = _context46.next) {\n case 0:\n paymentRoute = _ref89.paymentRoute, nonce = _ref89.nonce, wSolSenderAccountKeypair = _ref89.wSolSenderAccountKeypair, deadline = _ref89.deadline;\n\n if (!wSolSenderAccountKeypair) {\n _context46.next = 5;\n break;\n }\n\n _context46.t0 = wSolSenderAccountKeypair.publicKey;\n _context46.next = 8;\n break;\n\n case 5:\n _context46.next = 7;\n return getPaymentSenderTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 7:\n _context46.t0 = _context46.sent;\n\n case 8:\n senderTokenAccountAddress = _context46.t0;\n _context46.next = 11;\n return getPaymentReceiverTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 11:\n paymentReceiverTokenAccountAddress = _context46.sent;\n\n if (!paymentRoute.fee) {\n _context46.next = 18;\n break;\n }\n\n _context46.next = 15;\n return getFeeReceiverTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 15:\n _context46.t1 = _context46.sent;\n _context46.next = 19;\n break;\n\n case 18:\n _context46.t1 = paymentReceiverTokenAccountAddress;\n\n case 19:\n feeReceiverTokenAccountAddress = _context46.t1;\n _context46.next = 22;\n return getEscrowAccountPublicKey({\n paymentRoute: paymentRoute\n });\n\n case 22:\n escrowOutPublicKey = _context46.sent;\n _context46.next = 25;\n return paymentRoute.exchangeRoutes[0].getTransaction({\n account: paymentRoute.fromAddress\n });\n\n case 25:\n exchangeRouteTransaction = _context46.sent;\n exchangeRouteSwapInstruction = exchangeRouteTransaction.instructions.find(function (instruction) {\n return instruction.programId.toString() === solanaRouters.solana.ammProgram;\n });\n SWAP_LAYOUT = struct([u64(\"anchorDiscriminator\"), u64(\"amount\"), u64(\"otherAmountThreshold\"), u128(\"sqrtPriceLimit\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToB\")]);\n exchangeRouteSwapInstructionData = SWAP_LAYOUT.decode(exchangeRouteSwapInstruction.data);\n _context46.t2 = // token_program\n {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n };\n _context46.t3 = // amm_program\n {\n pubkey: new PublicKey(solanaRouters.solana.ammProgram),\n isSigner: false,\n isWritable: false\n };\n _context46.t4 = // sender\n {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context46.next = 34;\n return getPaymentsAccountAddress({\n from: paymentRoute.fromAddress\n });\n\n case 34:\n _context46.t5 = _context46.sent;\n _context46.t6 = {\n pubkey: _context46.t5,\n isSigner: false,\n isWritable: true\n };\n _context46.t7 = // sender_token_account\n {\n pubkey: new PublicKey(senderTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n _context46.t8 = // whirlpool\n exchangeRouteSwapInstruction.keys[2];\n _context46.t9 = // token_vault_a\n exchangeRouteSwapInstruction.keys[4];\n _context46.t10 = // token_vault_b\n exchangeRouteSwapInstruction.keys[6];\n _context46.t11 = // tick_array_0\n exchangeRouteSwapInstruction.keys[7];\n _context46.t12 = // tick_array_1\n exchangeRouteSwapInstruction.keys[8];\n _context46.t13 = // tick_array_2\n exchangeRouteSwapInstruction.keys[9];\n _context46.t14 = // oracle\n exchangeRouteSwapInstruction.keys[10];\n _context46.t15 = // escrow_out\n {\n pubkey: escrowOutPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context46.t16 = // payment_receiver\n {\n pubkey: new PublicKey(paymentReceiverTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n _context46.t17 = // fee_receiver\n {\n pubkey: new PublicKey(feeReceiverTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n keys = [_context46.t2, _context46.t3, _context46.t4, _context46.t6, _context46.t7, _context46.t8, _context46.t9, _context46.t10, _context46.t11, _context46.t12, _context46.t13, _context46.t14, _context46.t15, _context46.t16, _context46.t17];\n data = Buffer.alloc(solanaRouters.solana.api.routeOrcaSwap.layout.span);\n solanaRouters.solana.api.routeOrcaSwap.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.routeOrcaSwap.anchorDiscriminator,\n nonce: nonce,\n amountIn: exchangeRouteSwapInstructionData.amount,\n sqrtPriceLimit: exchangeRouteSwapInstructionData.sqrtPriceLimit,\n amountSpecifiedIsInput: exchangeRouteSwapInstructionData.amountSpecifiedIsInput,\n aToB: exchangeRouteSwapInstructionData.aToB,\n paymentAmount: new BN(paymentRoute.toAmount.toString()),\n feeAmount: new BN((paymentRoute.feeAmount || '0').toString()),\n deadline: new BN(deadline)\n }, data);\n return _context46.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 51:\n case \"end\":\n return _context46.stop();\n }\n }\n }, _callee46);\n }));\n\n return function routeOrcaSwap(_x47) {\n return _ref90.apply(this, arguments);\n };\n}();\n\nvar routeOrcaSwapSolOut = /*#__PURE__*/function () {\n var _ref92 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee47(_ref91) {\n var paymentRoute, nonce, wSolEscrowAccountKeypair, deadline, senderTokenAccountAddress, escrowOutWsolPublicKey, exchangeRouteTransaction, exchangeRouteSwapInstruction, SWAP_LAYOUT, exchangeRouteSwapInstructionData, keys, data;\n return _regeneratorRuntime.wrap(function _callee47$(_context47) {\n while (1) {\n switch (_context47.prev = _context47.next) {\n case 0:\n paymentRoute = _ref91.paymentRoute, nonce = _ref91.nonce, wSolEscrowAccountKeypair = _ref91.wSolEscrowAccountKeypair, deadline = _ref91.deadline;\n _context47.next = 3;\n return getPaymentSenderTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 3:\n senderTokenAccountAddress = _context47.sent;\n escrowOutWsolPublicKey = wSolEscrowAccountKeypair.publicKey;\n _context47.next = 7;\n return paymentRoute.exchangeRoutes[0].getTransaction({\n account: paymentRoute.fromAddress\n });\n\n case 7:\n exchangeRouteTransaction = _context47.sent;\n exchangeRouteSwapInstruction = exchangeRouteTransaction.instructions.find(function (instruction) {\n return instruction.programId.toString() === solanaRouters.solana.ammProgram;\n });\n SWAP_LAYOUT = struct([u64(\"anchorDiscriminator\"), u64(\"amount\"), u64(\"otherAmountThreshold\"), u128(\"sqrtPriceLimit\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToB\")]);\n exchangeRouteSwapInstructionData = SWAP_LAYOUT.decode(exchangeRouteSwapInstruction.data);\n _context47.t0 = // system_program\n {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n };\n _context47.t1 = // token_program\n {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n };\n _context47.t2 = // amm_program\n {\n pubkey: new PublicKey(solanaRouters.solana.ammProgram),\n isSigner: false,\n isWritable: false\n };\n _context47.t3 = // sender\n {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context47.next = 17;\n return getPaymentsAccountAddress({\n from: paymentRoute.fromAddress\n });\n\n case 17:\n _context47.t4 = _context47.sent;\n _context47.t5 = {\n pubkey: _context47.t4,\n isSigner: false,\n isWritable: true\n };\n _context47.t6 = // sender_token_account\n {\n pubkey: new PublicKey(senderTokenAccountAddress),\n isSigner: false,\n isWritable: true\n };\n _context47.t7 = // whirlpool\n exchangeRouteSwapInstruction.keys[2];\n _context47.t8 = // token_vault_a\n exchangeRouteSwapInstruction.keys[4];\n _context47.t9 = // token_vault_b\n exchangeRouteSwapInstruction.keys[6];\n _context47.t10 = // tick_array_0\n exchangeRouteSwapInstruction.keys[7];\n _context47.t11 = // tick_array_1\n exchangeRouteSwapInstruction.keys[8];\n _context47.t12 = // tick_array_2\n exchangeRouteSwapInstruction.keys[9];\n _context47.t13 = // oracle\n exchangeRouteSwapInstruction.keys[10];\n _context47.t14 = // escrow_out\n {\n pubkey: escrowOutWsolPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context47.next = 30;\n return getEscrowSolAccountPublicKey();\n\n case 30:\n _context47.t15 = _context47.sent;\n _context47.t16 = {\n pubkey: _context47.t15,\n isSigner: false,\n isWritable: true\n };\n _context47.t17 = // payment_receiver\n {\n pubkey: new PublicKey(paymentRoute.toAddress),\n isSigner: false,\n isWritable: true\n };\n _context47.t18 = // fee_receiver\n {\n pubkey: new PublicKey(paymentRoute.fee ? paymentRoute.fee.receiver : paymentRoute.toAddress),\n isSigner: false,\n isWritable: true\n };\n keys = [_context47.t0, _context47.t1, _context47.t2, _context47.t3, _context47.t5, _context47.t6, _context47.t7, _context47.t8, _context47.t9, _context47.t10, _context47.t11, _context47.t12, _context47.t13, _context47.t14, _context47.t16, _context47.t17, _context47.t18];\n data = Buffer.alloc(solanaRouters.solana.api.routeOrcaSwapSolOut.layout.span);\n solanaRouters.solana.api.routeOrcaSwapSolOut.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.routeOrcaSwapSolOut.anchorDiscriminator,\n nonce: nonce,\n amountIn: exchangeRouteSwapInstructionData.amount,\n sqrtPriceLimit: exchangeRouteSwapInstructionData.sqrtPriceLimit,\n amountSpecifiedIsInput: exchangeRouteSwapInstructionData.amountSpecifiedIsInput,\n aToB: exchangeRouteSwapInstructionData.aToB,\n paymentAmount: new BN(paymentRoute.toAmount.toString()),\n feeAmount: new BN((paymentRoute.feeAmount || '0').toString()),\n deadline: new BN(deadline)\n }, data);\n return _context47.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 38:\n case \"end\":\n return _context47.stop();\n }\n }\n }, _callee47);\n }));\n\n return function routeOrcaSwapSolOut(_x48) {\n return _ref92.apply(this, arguments);\n };\n}();\n\nvar routeOrcaTwoHopSwap = /*#__PURE__*/function () {\n var _ref94 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee48(_ref93) {\n var paymentRoute, nonce, wSolSenderAccountKeypair, deadline, paymentReceiverTokenAccountPublicKey, feeReceiverTokenAccountPublicKey, escrowOutPublicKey, middleTokenAccountPublicKey, exchangeRouteTransaction, exchangeRouteSwapInstruction, senderTokenAccountPublicKey, SWAP_LAYOUT, exchangeRouteSwapInstructionData, keys, data;\n return _regeneratorRuntime.wrap(function _callee48$(_context48) {\n while (1) {\n switch (_context48.prev = _context48.next) {\n case 0:\n paymentRoute = _ref93.paymentRoute, nonce = _ref93.nonce, wSolSenderAccountKeypair = _ref93.wSolSenderAccountKeypair, deadline = _ref93.deadline;\n _context48.t0 = PublicKey;\n _context48.next = 4;\n return getPaymentReceiverTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 4:\n _context48.t1 = _context48.sent;\n paymentReceiverTokenAccountPublicKey = new _context48.t0(_context48.t1);\n\n if (!paymentRoute.fee) {\n _context48.next = 14;\n break;\n }\n\n _context48.t3 = PublicKey;\n _context48.next = 10;\n return getFeeReceiverTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 10:\n _context48.t4 = _context48.sent;\n _context48.t2 = new _context48.t3(_context48.t4);\n _context48.next = 15;\n break;\n\n case 14:\n _context48.t2 = paymentReceiverTokenAccountPublicKey;\n\n case 15:\n feeReceiverTokenAccountPublicKey = _context48.t2;\n _context48.next = 18;\n return getEscrowAccountPublicKey({\n paymentRoute: paymentRoute\n });\n\n case 18:\n escrowOutPublicKey = _context48.sent;\n _context48.t5 = PublicKey;\n _context48.next = 22;\n return getMiddleTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 22:\n _context48.t6 = _context48.sent;\n middleTokenAccountPublicKey = new _context48.t5(_context48.t6);\n _context48.next = 26;\n return paymentRoute.exchangeRoutes[0].getTransaction({\n account: paymentRoute.fromAddress\n });\n\n case 26:\n exchangeRouteTransaction = _context48.sent;\n exchangeRouteSwapInstruction = exchangeRouteTransaction.instructions.find(function (instruction) {\n return instruction.programId.toString() === solanaRouters.solana.ammProgram;\n });\n\n if (!wSolSenderAccountKeypair) {\n _context48.next = 32;\n break;\n }\n\n _context48.t7 = wSolSenderAccountKeypair.publicKey;\n _context48.next = 37;\n break;\n\n case 32:\n _context48.t8 = PublicKey;\n _context48.next = 35;\n return getPaymentSenderTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 35:\n _context48.t9 = _context48.sent;\n _context48.t7 = new _context48.t8(_context48.t9);\n\n case 37:\n senderTokenAccountPublicKey = _context48.t7;\n SWAP_LAYOUT = struct([u64(\"anchorDiscriminator\"), u64(\"amount\"), u64(\"otherAmountThreshold\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToBOne\"), bool(\"aToBTwo\"), u128(\"sqrtPriceLimitOne\"), u128(\"sqrtPriceLimitTwo\")]);\n exchangeRouteSwapInstructionData = SWAP_LAYOUT.decode(exchangeRouteSwapInstruction.data);\n _context48.t10 = // token_program\n {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n };\n _context48.t11 = // amm_program\n {\n pubkey: new PublicKey(solanaRouters.solana.ammProgram),\n isSigner: false,\n isWritable: false\n };\n _context48.t12 = // sender\n {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context48.next = 45;\n return getPaymentsAccountAddress({\n from: paymentRoute.fromAddress\n });\n\n case 45:\n _context48.t13 = _context48.sent;\n _context48.t14 = {\n pubkey: _context48.t13,\n isSigner: false,\n isWritable: true\n };\n _context48.t15 = // whirlpool_one\n exchangeRouteSwapInstruction.keys[2];\n _context48.t16 = // whirlpool_two\n exchangeRouteSwapInstruction.keys[3];\n _context48.t17 = // sender_token_account\n {\n pubkey: senderTokenAccountPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context48.t18 = // token_vault_one_a\n exchangeRouteSwapInstruction.keys[5];\n _context48.t19 = // token_vault_one_b\n exchangeRouteSwapInstruction.keys[7];\n _context48.t20 = // middle_token_account\n {\n pubkey: middleTokenAccountPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context48.t21 = // token_vault_two_a\n exchangeRouteSwapInstruction.keys[9];\n _context48.t22 = // token_vault_two_b\n exchangeRouteSwapInstruction.keys[11];\n _context48.t23 = // tick_array_one_0\n exchangeRouteSwapInstruction.keys[12];\n _context48.t24 = // tick_array_one_1\n exchangeRouteSwapInstruction.keys[13];\n _context48.t25 = // tick_array_one_2\n exchangeRouteSwapInstruction.keys[14];\n _context48.t26 = // tick_array_two_0\n exchangeRouteSwapInstruction.keys[15];\n _context48.t27 = // tick_array_two_1\n exchangeRouteSwapInstruction.keys[16];\n _context48.t28 = // tick_array_two_2\n exchangeRouteSwapInstruction.keys[17];\n _context48.t29 = // oracle_one\n exchangeRouteSwapInstruction.keys[18];\n _context48.t30 = // oracle_two\n exchangeRouteSwapInstruction.keys[19];\n _context48.t31 = // escrow_out\n {\n pubkey: escrowOutPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context48.t32 = // payment_receiver\n {\n pubkey: paymentReceiverTokenAccountPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context48.t33 = // fee_receiver\n {\n pubkey: feeReceiverTokenAccountPublicKey,\n isSigner: false,\n isWritable: true\n };\n keys = [_context48.t10, _context48.t11, _context48.t12, _context48.t14, _context48.t15, _context48.t16, _context48.t17, _context48.t18, _context48.t19, _context48.t20, _context48.t21, _context48.t22, _context48.t23, _context48.t24, _context48.t25, _context48.t26, _context48.t27, _context48.t28, _context48.t29, _context48.t30, _context48.t31, _context48.t32, _context48.t33];\n data = Buffer.alloc(solanaRouters.solana.api.routeOrcaTwoHopSwap.layout.span);\n solanaRouters.solana.api.routeOrcaTwoHopSwap.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.routeOrcaTwoHopSwap.anchorDiscriminator,\n nonce: nonce,\n amountIn: exchangeRouteSwapInstructionData.amount,\n amountSpecifiedIsInput: exchangeRouteSwapInstructionData.amountSpecifiedIsInput,\n aToBOne: exchangeRouteSwapInstructionData.aToBOne,\n aToBTwo: exchangeRouteSwapInstructionData.aToBTwo,\n sqrtPriceLimitOne: exchangeRouteSwapInstructionData.sqrtPriceLimitOne,\n sqrtPriceLimitTwo: exchangeRouteSwapInstructionData.sqrtPriceLimitTwo,\n paymentAmount: new BN(paymentRoute.toAmount.toString()),\n feeAmount: new BN((paymentRoute.feeAmount || '0').toString()),\n deadline: new BN(deadline)\n }, data);\n return _context48.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 70:\n case \"end\":\n return _context48.stop();\n }\n }\n }, _callee48);\n }));\n\n return function routeOrcaTwoHopSwap(_x49) {\n return _ref94.apply(this, arguments);\n };\n}();\n\nvar routeOrcaTwoHopSwapSolOut = /*#__PURE__*/function () {\n var _ref96 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee49(_ref95) {\n var paymentRoute, nonce, wSolEscrowAccountKeypair, deadline, middleTokenAccountPublicKey, exchangeRouteTransaction, exchangeRouteSwapInstruction, senderTokenAccountPublicKey, SWAP_LAYOUT, exchangeRouteSwapInstructionData, keys, data;\n return _regeneratorRuntime.wrap(function _callee49$(_context49) {\n while (1) {\n switch (_context49.prev = _context49.next) {\n case 0:\n paymentRoute = _ref95.paymentRoute, nonce = _ref95.nonce, wSolEscrowAccountKeypair = _ref95.wSolEscrowAccountKeypair, deadline = _ref95.deadline;\n _context49.t0 = PublicKey;\n _context49.next = 4;\n return getMiddleTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 4:\n _context49.t1 = _context49.sent;\n middleTokenAccountPublicKey = new _context49.t0(_context49.t1);\n _context49.next = 8;\n return paymentRoute.exchangeRoutes[0].getTransaction({\n account: paymentRoute.fromAddress\n });\n\n case 8:\n exchangeRouteTransaction = _context49.sent;\n exchangeRouteSwapInstruction = exchangeRouteTransaction.instructions.find(function (instruction) {\n return instruction.programId.toString() === solanaRouters.solana.ammProgram;\n });\n _context49.t2 = PublicKey;\n _context49.next = 13;\n return getPaymentSenderTokenAccountAddress({\n paymentRoute: paymentRoute\n });\n\n case 13:\n _context49.t3 = _context49.sent;\n senderTokenAccountPublicKey = new _context49.t2(_context49.t3);\n SWAP_LAYOUT = struct([u64(\"anchorDiscriminator\"), u64(\"amount\"), u64(\"otherAmountThreshold\"), bool(\"amountSpecifiedIsInput\"), bool(\"aToBOne\"), bool(\"aToBTwo\"), u128(\"sqrtPriceLimitOne\"), u128(\"sqrtPriceLimitTwo\")]);\n exchangeRouteSwapInstructionData = SWAP_LAYOUT.decode(exchangeRouteSwapInstruction.data);\n _context49.t4 = // system_program\n {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n };\n _context49.t5 = // token_program\n {\n pubkey: new PublicKey(Token.solana.TOKEN_PROGRAM),\n isSigner: false,\n isWritable: false\n };\n _context49.t6 = // amm_program\n {\n pubkey: new PublicKey(solanaRouters.solana.ammProgram),\n isSigner: false,\n isWritable: false\n };\n _context49.t7 = // sender\n {\n pubkey: new PublicKey(paymentRoute.fromAddress),\n isSigner: true,\n isWritable: true\n };\n _context49.next = 23;\n return getPaymentsAccountAddress({\n from: paymentRoute.fromAddress\n });\n\n case 23:\n _context49.t8 = _context49.sent;\n _context49.t9 = {\n pubkey: _context49.t8,\n isSigner: false,\n isWritable: true\n };\n _context49.t10 = // sender_token_account\n {\n pubkey: senderTokenAccountPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context49.t11 = // whirlpool_one\n exchangeRouteSwapInstruction.keys[2];\n _context49.t12 = // whirlpool_two\n exchangeRouteSwapInstruction.keys[3];\n _context49.t13 = // token_vault_one_a\n exchangeRouteSwapInstruction.keys[5];\n _context49.t14 = // token_vault_one_b\n exchangeRouteSwapInstruction.keys[7];\n _context49.t15 = // middle_token_account\n {\n pubkey: middleTokenAccountPublicKey,\n isSigner: false,\n isWritable: true\n };\n _context49.t16 = // token_vault_two_a\n exchangeRouteSwapInstruction.keys[9];\n _context49.t17 = // token_vault_two_b\n exchangeRouteSwapInstruction.keys[11];\n _context49.t18 = // tick_array_one_0\n exchangeRouteSwapInstruction.keys[12];\n _context49.t19 = // tick_array_one_1\n exchangeRouteSwapInstruction.keys[13];\n _context49.t20 = // tick_array_one_2\n exchangeRouteSwapInstruction.keys[14];\n _context49.t21 = // tick_array_two_0\n exchangeRouteSwapInstruction.keys[15];\n _context49.t22 = // tick_array_two_1\n exchangeRouteSwapInstruction.keys[16];\n _context49.t23 = // tick_array_two_2\n exchangeRouteSwapInstruction.keys[17];\n _context49.t24 = // oracle_one\n exchangeRouteSwapInstruction.keys[18];\n _context49.t25 = // oracle_two\n exchangeRouteSwapInstruction.keys[19];\n _context49.t26 = // escrow_out\n {\n pubkey: wSolEscrowAccountKeypair.publicKey,\n isSigner: false,\n isWritable: true\n };\n _context49.next = 44;\n return getEscrowSolAccountPublicKey();\n\n case 44:\n _context49.t27 = _context49.sent;\n _context49.t28 = {\n pubkey: _context49.t27,\n isSigner: false,\n isWritable: true\n };\n _context49.t29 = // payment_receiver\n {\n pubkey: new PublicKey(paymentRoute.toAddress),\n isSigner: false,\n isWritable: true\n };\n _context49.t30 = // fee_receiver\n {\n pubkey: new PublicKey(paymentRoute.fee ? paymentRoute.fee.receiver : paymentRoute.toAddress),\n isSigner: false,\n isWritable: true\n };\n keys = [_context49.t4, _context49.t5, _context49.t6, _context49.t7, _context49.t9, _context49.t10, _context49.t11, _context49.t12, _context49.t13, _context49.t14, _context49.t15, _context49.t16, _context49.t17, _context49.t18, _context49.t19, _context49.t20, _context49.t21, _context49.t22, _context49.t23, _context49.t24, _context49.t25, _context49.t26, _context49.t28, _context49.t29, _context49.t30];\n data = Buffer.alloc(solanaRouters.solana.api.routeOrcaTwoHopSwapSolOut.layout.span);\n solanaRouters.solana.api.routeOrcaTwoHopSwapSolOut.layout.encode({\n anchorDiscriminator: solanaRouters.solana.api.routeOrcaTwoHopSwapSolOut.anchorDiscriminator,\n nonce: nonce,\n amountIn: exchangeRouteSwapInstructionData.amount,\n amountSpecifiedIsInput: exchangeRouteSwapInstructionData.amountSpecifiedIsInput,\n aToBOne: exchangeRouteSwapInstructionData.aToBOne,\n aToBTwo: exchangeRouteSwapInstructionData.aToBTwo,\n sqrtPriceLimitOne: exchangeRouteSwapInstructionData.sqrtPriceLimitOne,\n sqrtPriceLimitTwo: exchangeRouteSwapInstructionData.sqrtPriceLimitTwo,\n paymentAmount: new BN(paymentRoute.toAmount.toString()),\n feeAmount: new BN((paymentRoute.feeAmount || '0').toString()),\n deadline: new BN(deadline)\n }, data);\n return _context49.abrupt(\"return\", new TransactionInstruction({\n keys: keys,\n programId: new PublicKey(solanaRouters.solana.address),\n data: data\n }));\n\n case 52:\n case \"end\":\n return _context49.stop();\n }\n }\n }, _callee49);\n }));\n\n return function routeOrcaTwoHopSwapSolOut(_x50) {\n return _ref96.apply(this, arguments);\n };\n}();\n\nvar payment = /*#__PURE__*/function () {\n var _ref98 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee50(_ref97) {\n var paymentRoute, wSolSenderAccountKeypair, wSolEscrowAccountKeypair, nonce, deadline, paymentMethod;\n return _regeneratorRuntime.wrap(function _callee50$(_context50) {\n while (1) {\n switch (_context50.prev = _context50.next) {\n case 0:\n paymentRoute = _ref97.paymentRoute, wSolSenderAccountKeypair = _ref97.wSolSenderAccountKeypair, wSolEscrowAccountKeypair = _ref97.wSolEscrowAccountKeypair, nonce = _ref97.nonce, deadline = _ref97.deadline;\n paymentMethod = getPaymentMethod({\n paymentRoute: paymentRoute\n });\n _context50.t0 = paymentMethod;\n _context50.next = _context50.t0 === 'routeSol' ? 5 : _context50.t0 === 'routeToken' ? 8 : _context50.t0 === 'routeOrcaSwap' ? 11 : _context50.t0 === 'routeOrcaSwapSolOut' ? 14 : _context50.t0 === 'routeOrcaTwoHopSwap' ? 17 : _context50.t0 === 'routeOrcaTwoHopSwapSolOut' ? 20 : 23;\n break;\n\n case 5:\n _context50.next = 7;\n return routeSol({\n paymentRoute: paymentRoute,\n nonce: nonce,\n deadline: deadline\n });\n\n case 7:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 8:\n _context50.next = 10;\n return routeToken({\n paymentRoute: paymentRoute,\n nonce: nonce,\n deadline: deadline\n });\n\n case 10:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 11:\n _context50.next = 13;\n return routeOrcaSwap({\n paymentRoute: paymentRoute,\n nonce: nonce,\n wSolSenderAccountKeypair: wSolSenderAccountKeypair,\n deadline: deadline\n });\n\n case 13:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 14:\n _context50.next = 16;\n return routeOrcaSwapSolOut({\n paymentRoute: paymentRoute,\n nonce: nonce,\n wSolEscrowAccountKeypair: wSolEscrowAccountKeypair,\n deadline: deadline\n });\n\n case 16:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 17:\n _context50.next = 19;\n return routeOrcaTwoHopSwap({\n paymentRoute: paymentRoute,\n nonce: nonce,\n wSolSenderAccountKeypair: wSolSenderAccountKeypair,\n deadline: deadline\n });\n\n case 19:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 20:\n _context50.next = 22;\n return routeOrcaTwoHopSwapSolOut({\n paymentRoute: paymentRoute,\n nonce: nonce,\n wSolEscrowAccountKeypair: wSolEscrowAccountKeypair,\n deadline: deadline\n });\n\n case 22:\n return _context50.abrupt(\"return\", _context50.sent);\n\n case 23:\n case \"end\":\n return _context50.stop();\n }\n }\n }, _callee50);\n }));\n\n return function payment(_x51) {\n return _ref98.apply(this, arguments);\n };\n}();\n\nvar getTransaction$3 = /*#__PURE__*/function () {\n var _ref100 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee51(_ref99) {\n var paymentRoute, paymentsAccountData, deadline, nonce, wSolSenderAccountKeypair, wSolEscrowAccountKeypair, instructions, transaction;\n return _regeneratorRuntime.wrap(function _callee51$(_context51) {\n while (1) {\n switch (_context51.prev = _context51.next) {\n case 0:\n paymentRoute = _ref99.paymentRoute;\n _context51.next = 3;\n return getPaymentsAccountData({\n from: paymentRoute.fromAddress\n });\n\n case 3:\n paymentsAccountData = _context51.sent;\n deadline = getDeadline();\n nonce = getNonce(paymentsAccountData);\n _context51.next = 8;\n return getWSolSenderAccountKeypairIfNeeded({\n paymentRoute: paymentRoute\n });\n\n case 8:\n wSolSenderAccountKeypair = _context51.sent;\n _context51.next = 11;\n return getWSolEscrowAccountKeypairIfNeeded({\n paymentRoute: paymentRoute\n });\n\n case 11:\n wSolEscrowAccountKeypair = _context51.sent;\n _context51.next = 14;\n return Promise.all([createPaymentsAccount({\n from: paymentRoute.fromAddress\n }), createWSolSenderAccount({\n paymentRoute: paymentRoute,\n wSolSenderAccountKeypair: wSolSenderAccountKeypair\n }), createTokenMiddleAccount({\n paymentRoute: paymentRoute\n }), createPaymentReceiverAccount({\n paymentRoute: paymentRoute\n }), createFeeReceiverAccount({\n paymentRoute: paymentRoute\n }), createEscrowOutSolAccount({\n paymentRoute: paymentRoute\n }), // needs to happen before createEscrowOutWSolAccount\n createEscrowOutWSolAccount({\n paymentRoute: paymentRoute,\n wSolEscrowAccountKeypair: wSolEscrowAccountKeypair\n }), createEscrowOutTokenAccount({\n paymentRoute: paymentRoute\n }), payment({\n paymentRoute: paymentRoute,\n wSolSenderAccountKeypair: wSolSenderAccountKeypair,\n wSolEscrowAccountKeypair: wSolEscrowAccountKeypair,\n nonce: nonce,\n deadline: deadline\n }), closeWSolSenderAccount({\n paymentRoute: paymentRoute,\n wSolSenderAccountKeypair: wSolSenderAccountKeypair\n })]);\n\n case 14:\n instructions = _context51.sent.filter(Boolean).flat();\n transaction = {\n blockchain: paymentRoute.blockchain,\n instructions: instructions,\n signers: [wSolSenderAccountKeypair, wSolEscrowAccountKeypair].filter(Boolean),\n alts: [solanaRouters.solana.alt]\n }; // debug(transaction, paymentRoute)\n\n transaction.deadline = deadline;\n transaction.nonce = nonce.toString();\n return _context51.abrupt(\"return\", transaction);\n\n case 19:\n case \"end\":\n return _context51.stop();\n }\n }\n }, _callee51);\n }));\n\n return function getTransaction$3(_x52) {\n return _ref100.apply(this, arguments);\n };\n}();\n\nvar API = [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_PERMIT2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_FORWARDER\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n}, {\n \"inputs\": [],\n \"name\": \"ExchangeCallFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"ExchangeCallMissing\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"ExchangeNotApproved\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"ForwardingPaymentFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InsufficientBalanceInAfterPayment\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"InsufficientBalanceOutAfterPayment\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"NativeFeePaymentFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"NativePaymentFailed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PaymentDeadlineReached\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"PaymentToZeroAddressNotAllowed\",\n \"type\": \"error\"\n}, {\n \"inputs\": [],\n \"name\": \"WrongAmountPaidIn\",\n \"type\": \"error\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"exchange\",\n \"type\": \"address\"\n }],\n \"name\": \"Disabled\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"exchange\",\n \"type\": \"address\"\n }],\n \"name\": \"Enabled\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }],\n \"name\": \"InternalTransfer\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"event\"\n}, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n}, {\n \"inputs\": [],\n \"name\": \"FORWARDER\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"PERMIT2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"acceptOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"exchange\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }],\n \"name\": \"enable\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"exchanges\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"permit2\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"paymentAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenInAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"exchangeAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOutAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"paymentReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"exchangeType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"receiverType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"exchangeCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"receiverCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IDePayRouterV2.Payment\",\n \"name\": \"payment\",\n \"type\": \"tuple\"\n }],\n \"name\": \"pay\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"permit2\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"paymentAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenInAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"exchangeAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOutAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"paymentReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"exchangeType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"receiverType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"exchangeCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"receiverCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IDePayRouterV2.Payment\",\n \"name\": \"payment\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"internalType\": \"struct IPermit2.PermitDetails\",\n \"name\": \"details\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"sigDeadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IPermit2.PermitSingle\",\n \"name\": \"permitSingle\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"pay\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"pendingOwner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}, {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"withdraw\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n}, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n}];\nvar routers$1 = {\n ethereum: {\n address: '0x6466F27B169C908Ba8174d80aEfa7173CbC3D0c7',\n api: API\n },\n bsc: {\n address: '0x7ea09401db4692a8AEF4111b75bD32AE758f552A',\n api: API\n },\n polygon: {\n address: '0x50CFAB577623B1359602E11514a9482B061A941e',\n api: API\n },\n fantom: {\n address: '0xFee05C41195985909DDfc9127Db1f94559c46db3',\n api: API\n },\n avalanche: {\n address: '0xFee05C41195985909DDfc9127Db1f94559c46db3',\n api: API\n },\n gnosis: {\n address: '0xFee05C41195985909DDfc9127Db1f94559c46db3',\n api: API\n },\n arbitrum: {\n address: '0xA1cfbeeF344A52e18f748fd6a126f9426A40fbc7',\n api: API\n },\n optimism: {\n address: '0x8698E529E9867eEbcC68b4792daC627cd8870736',\n api: API\n },\n base: {\n address: '0x8B127D169D232D5F3ebE1C3D06CE343FD7C1AA11',\n api: API\n },\n worldchain: {\n address: '0xC9850b32475f4fdE5c972EA6f967982a3c435D10',\n api: [{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"_PERMIT2\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"_FORWARDER\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n }, {\n \"inputs\": [],\n \"name\": \"ExchangeCallFailed\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"ExchangeCallMissing\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"ExchangeNotApproved\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"ForwardingPaymentFailed\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InsufficientBalanceInAfterPayment\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InsufficientBalanceOutAfterPayment\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InsufficientProtocolAmount\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"NativeFeePaymentFailed\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"NativePaymentFailed\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"PaymentDeadlineReached\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"PaymentToZeroAddressNotAllowed\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"WrongAmountPaidIn\",\n \"type\": \"error\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"exchange\",\n \"type\": \"address\"\n }],\n \"name\": \"Disabled\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"exchange\",\n \"type\": \"address\"\n }],\n \"name\": \"Enabled\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnershipTransferStarted\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"paymentAmount\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"protocolAmount\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"slippageAmount\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"tokenInAddress\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"tokenOutAddress\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"feeReceiverAddress\",\n \"type\": \"address\"\n }],\n \"name\": \"Payment\",\n \"type\": \"event\"\n }, {\n \"inputs\": [],\n \"name\": \"FORWARDER\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"PERMIT2\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"acceptOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"exchange\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }],\n \"name\": \"enable\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"exchanges\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"paymentAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"protocolAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenInAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"exchangeAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOutAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"paymentReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"exchangeType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"receiverType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"permit2\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"exchangeCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"receiverCallData\",\n \"type\": \"bytes\"\n }],\n \"internalType\": \"structIDePayRouterV3.Payment\",\n \"name\": \"payment\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"structIPermit2.TokenPermissions\",\n \"name\": \"permitted\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"structIPermit2.PermitTransferFrom\",\n \"name\": \"permitTransferFrom\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"internalType\": \"structIDePayRouterV3.PermitTransferFromAndSignature\",\n \"name\": \"permitTransferFromAndSignature\",\n \"type\": \"tuple\"\n }],\n \"name\": \"pay\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"paymentAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"protocolAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenInAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"exchangeAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOutAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"paymentReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"exchangeType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"receiverType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"permit2\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"exchangeCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"receiverCallData\",\n \"type\": \"bytes\"\n }],\n \"internalType\": \"structIDePayRouterV3.Payment\",\n \"name\": \"payment\",\n \"type\": \"tuple\"\n }],\n \"name\": \"pay\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amountIn\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"paymentAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"feeAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"protocolAmount\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenInAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"exchangeAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"tokenOutAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"paymentReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"feeReceiverAddress\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"exchangeType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"uint8\",\n \"name\": \"receiverType\",\n \"type\": \"uint8\"\n }, {\n \"internalType\": \"bool\",\n \"name\": \"permit2\",\n \"type\": \"bool\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"exchangeCallData\",\n \"type\": \"bytes\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"receiverCallData\",\n \"type\": \"bytes\"\n }],\n \"internalType\": \"structIDePayRouterV3.Payment\",\n \"name\": \"payment\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"internalType\": \"structIPermit2.PermitDetails\",\n \"name\": \"details\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"sigDeadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"structIPermit2.PermitSingle\",\n \"name\": \"permitSingle\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"pay\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"pendingOwner\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"withdraw\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"stateMutability\": \"payable\",\n \"type\": \"receive\"\n }]\n }\n};\n\nvar routers = _objectSpread(_objectSpread({}, routers$1), solanaRouters);\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = _typeof(commonjsGlobal) == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\nvar _freeGlobal = freeGlobal;\n/** Detect free variable `self`. */\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = _freeGlobal || freeSelf || Function('return this')();\nvar _root = root;\n/** Built-in value references. */\n\nvar _Symbol2 = _root.Symbol;\nvar _Symbol = _Symbol2;\n/** Built-in value references. */\n\n_Symbol ? _Symbol.toStringTag : undefined;\n/** Built-in value references. */\n\n_Symbol ? _Symbol.toStringTag : undefined; // lower blockchain cost is better\n\nvar getBlockchainCost = function getBlockchainCost(blockchain) {\n // in $USD\n switch (blockchain) {\n case 'solana':\n return 0.000125;\n\n case 'worldchain':\n return 0.0043;\n\n case 'gnosis':\n return 0.0090;\n\n case 'base':\n return 0.0095;\n\n case 'optimism':\n return 0.0096;\n\n case 'polygon':\n return 0.011;\n\n case 'fantom':\n return 0.05;\n\n case 'avalanche':\n return 0.10;\n\n case 'arbitrum':\n return 0.11;\n\n case 'bsc':\n return 0.20;\n\n case 'ethereum':\n return 10.0;\n\n default:\n return 100;\n }\n};\n\nfunction _optionalChain$1(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value6;\n\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return (_value6 = value).call.apply(_value6, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar EXCHANGE_PROXIES = {\n 'arbitrum': _defineProperty({}, Blockchains.arbitrum.wrapped.address, '0x7E655088214d0657251A51aDccE9109CFd23B5B5'),\n 'avalanche': _defineProperty({}, Blockchains.avalanche.wrapped.address, '0x2d0a6275eaDa0d03226919ce6D93661E589B2d59'),\n 'base': _defineProperty({}, Blockchains.base.wrapped.address, '0xD1711710843B125a6a01FfDF9b95fDc3064BeF7A'),\n 'bsc': _defineProperty({}, Blockchains.bsc.wrapped.address, '0xeEb80d14abfB058AA78DE38813fe705c3e3b243E'),\n 'ethereum': _defineProperty({}, Blockchains.ethereum.wrapped.address, '0x298f4980525594b3b982779cf74ba76819708D43'),\n 'fantom': _defineProperty({}, Blockchains.fantom.wrapped.address, '0x2d0a6275eaDa0d03226919ce6D93661E589B2d59'),\n 'gnosis': _defineProperty({}, Blockchains.gnosis.wrapped.address, '0x2d0a6275eaDa0d03226919ce6D93661E589B2d59'),\n 'optimism': _defineProperty({}, Blockchains.optimism.wrapped.address, '0x69594057e2C0224deb1180c7a5Df9ec9d5B611B5'),\n 'polygon': _defineProperty({}, Blockchains.polygon.wrapped.address, '0xaE59C9d3E055BdFAa583E169aA5Ebe395689476a'),\n 'worldchain': _defineProperty({}, Blockchains.worldchain.wrapped.address, '0x2CA727BC33915823e3D05fe043d310B8c5b2dC5b'),\n 'solana': {}\n};\n\nvar getTransaction$2 = /*#__PURE__*/function () {\n var _ref102 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee52(_ref101) {\n var paymentRoute, options, deadline, transaction;\n return _regeneratorRuntime.wrap(function _callee52$(_context52) {\n while (1) {\n switch (_context52.prev = _context52.next) {\n case 0:\n paymentRoute = _ref101.paymentRoute, options = _ref101.options;\n\n if (paymentRoute.blockchain === 'worldchain') {\n // protocol V3 deadline\n deadline = Math.ceil(new Date()) + 3600 * 1000; // 1 hour in ms\n } else {\n deadline = Math.ceil(new Date() / 1000) + 3600; // 1 hour in s\n }\n\n _context52.t0 = paymentRoute.blockchain;\n _context52.t1 = transactionAddress({\n paymentRoute: paymentRoute,\n options: options\n });\n _context52.t2 = transactionApi({\n paymentRoute: paymentRoute,\n options: options\n });\n _context52.t3 = transactionMethod({\n paymentRoute: paymentRoute,\n options: options\n });\n _context52.next = 8;\n return transactionParams({\n paymentRoute: paymentRoute,\n options: options,\n deadline: deadline\n });\n\n case 8:\n _context52.t4 = _context52.sent;\n _context52.t5 = transactionValue({\n paymentRoute: paymentRoute\n });\n transaction = {\n blockchain: _context52.t0,\n to: _context52.t1,\n api: _context52.t2,\n method: _context52.t3,\n params: _context52.t4,\n value: _context52.t5\n };\n transaction.deadline = deadline;\n return _context52.abrupt(\"return\", transaction);\n\n case 13:\n case \"end\":\n return _context52.stop();\n }\n }\n }, _callee52);\n }));\n\n return function getTransaction$2(_x53) {\n return _ref102.apply(this, arguments);\n };\n}();\n\nvar transactionAddress = function transactionAddress(_ref103) {\n var paymentRoute = _ref103.paymentRoute,\n options = _ref103.options;\n\n if (paymentRoute.directTransfer && !paymentRoute.fee && _optionalChain$1([options, 'optionalAccess', function (_) {\n return _.wallet;\n }, 'optionalAccess', function (_2) {\n return _2.name;\n }]) !== 'World App') {\n if (paymentRoute.toToken.address == Blockchains[paymentRoute.blockchain].currency.address) {\n return paymentRoute.toAddress;\n } else {\n return paymentRoute.toToken.address;\n }\n } else {\n return routers$1[paymentRoute.blockchain].address;\n }\n};\n\nvar transactionApi = function transactionApi(_ref104) {\n var paymentRoute = _ref104.paymentRoute,\n options = _ref104.options;\n\n if (paymentRoute.directTransfer && !paymentRoute.fee && _optionalChain$1([options, 'optionalAccess', function (_3) {\n return _3.wallet;\n }, 'optionalAccess', function (_4) {\n return _4.name;\n }]) !== 'World App') {\n if (paymentRoute.toToken.address == Blockchains[paymentRoute.blockchain].currency.address) {\n return undefined;\n } else {\n return Token[paymentRoute.blockchain].DEFAULT;\n }\n } else {\n return routers$1[paymentRoute.blockchain].api;\n }\n};\n\nvar transactionMethod = function transactionMethod(_ref105) {\n var paymentRoute = _ref105.paymentRoute,\n options = _ref105.options;\n\n if (paymentRoute.directTransfer && !paymentRoute.fee && _optionalChain$1([options, 'optionalAccess', function (_5) {\n return _5.wallet;\n }, 'optionalAccess', function (_6) {\n return _6.name;\n }]) !== 'World App') {\n if (paymentRoute.toToken.address == Blockchains[paymentRoute.blockchain].currency.address) {\n return undefined;\n } else {\n // standard token transfer\n return 'transfer';\n }\n } else {\n return 'pay';\n }\n};\n\nvar getExchangeType = function getExchangeType(_ref106) {\n var exchangeRoute = _ref106.exchangeRoute,\n blockchain = _ref106.blockchain;\n\n if (typeof exchangeRoute === 'undefined') {\n return 0;\n }\n\n if (exchangeRoute.exchange[blockchain].router.address === Blockchains[blockchain].wrapped.address) {\n return 2; // push\n } else {\n return 1; // pull\n }\n};\n\nvar getExchangeCallData = function getExchangeCallData(_ref107) {\n var exchangeTransaction = _ref107.exchangeTransaction;\n var contract = new ethers.Contract(exchangeTransaction.to, exchangeTransaction.api);\n var method = exchangeTransaction.method;\n var params = exchangeTransaction.params;\n var contractMethod;\n var fragment;\n fragment = contract.interface.fragments.find(function (fragment) {\n return fragment.name == method && (fragment.inputs && params && _typeof(params) === 'object' ? fragment.inputs.length == Object.keys(params).length : true);\n });\n var paramsToEncode;\n\n if (fragment.inputs.length === 1 && fragment.inputs[0].type === 'tuple') {\n contractMethod = method;\n paramsToEncode = [params[fragment.inputs[0].name]];\n } else {\n contractMethod = \"\".concat(method, \"(\").concat(fragment.inputs.map(function (input) {\n return input.type;\n }).join(','), \")\");\n paramsToEncode = fragment.inputs.map(function (input) {\n if (input.type === 'tuple') {\n var tuple = {};\n input.components.forEach(function (component, index) {\n tuple[component.name] = params[input.name][index];\n });\n contractMethod = method;\n return tuple;\n } else {\n return params[input.name];\n }\n });\n }\n\n return contract.interface.encodeFunctionData(contractMethod, paramsToEncode);\n};\n\nvar getPermit2SignatureTransferNonce = /*#__PURE__*/function () {\n var _ref109 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee53(_ref108) {\n var address, blockchain, getBitmap, getFirstUnsetBit, buildNonce, word, bitmap, bitPos, nonce;\n return _regeneratorRuntime.wrap(function _callee53$(_context53) {\n while (1) {\n switch (_context53.prev = _context53.next) {\n case 0:\n buildNonce = function _buildNonce(word, bitPos) {\n return ethers.BigNumber.from(word).mul(256).add(bitPos);\n };\n\n address = _ref108.address, blockchain = _ref108.blockchain;\n\n getBitmap = function getBitmap(address, word) {\n return request({\n blockchain: blockchain,\n address: Blockchains[blockchain].permit2,\n api: [{\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"AllowanceExpired\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"ExcessiveInvalidation\",\n \"type\": \"error\"\n }, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"InsufficientAllowance\",\n \"type\": \"error\"\n }, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"maxAmount\",\n \"type\": \"uint256\"\n }],\n \"name\": \"InvalidAmount\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InvalidContractSignature\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InvalidNonce\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InvalidSignature\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InvalidSignatureLength\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"InvalidSigner\",\n \"type\": \"error\"\n }, {\n \"inputs\": [],\n \"name\": \"LengthMismatch\",\n \"type\": \"error\"\n }, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"signatureDeadline\",\n \"type\": \"uint256\"\n }],\n \"name\": \"SignatureExpired\",\n \"type\": \"error\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }],\n \"name\": \"Approval\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }],\n \"name\": \"Lockdown\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"newNonce\",\n \"type\": \"uint48\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"oldNonce\",\n \"type\": \"uint48\"\n }],\n \"name\": \"NonceInvalidation\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"name\": \"Permit\",\n \"type\": \"event\"\n }, {\n \"anonymous\": false,\n \"inputs\": [{\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"word\",\n \"type\": \"uint256\"\n }, {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"mask\",\n \"type\": \"uint256\"\n }],\n \"name\": \"UnorderedNonceInvalidation\",\n \"type\": \"event\"\n }, {\n \"inputs\": [],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [{\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"name\": \"allowance\",\n \"outputs\": [{\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }],\n \"name\": \"approve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"newNonce\",\n \"type\": \"uint48\"\n }],\n \"name\": \"invalidateNonces\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"wordPos\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"mask\",\n \"type\": \"uint256\"\n }],\n \"name\": \"invalidateUnorderedNonces\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.TokenSpenderPair[]\",\n \"name\": \"approvals\",\n \"type\": \"tuple[]\"\n }],\n \"name\": \"lockdown\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"name\": \"nonceBitmap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitDetails[]\",\n \"name\": \"details\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"sigDeadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitBatch\",\n \"name\": \"permitBatch\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"expiration\",\n \"type\": \"uint48\"\n }, {\n \"internalType\": \"uint48\",\n \"name\": \"nonce\",\n \"type\": \"uint48\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitDetails\",\n \"name\": \"details\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"sigDeadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.PermitSingle\",\n \"name\": \"permitSingle\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions\",\n \"name\": \"permitted\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions[]\",\n \"name\": \"permitted\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitBatchTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails[]\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions\",\n \"name\": \"permitted\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"witness\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"string\",\n \"name\": \"witnessTypeString\",\n \"type\": \"string\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitWitnessTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.TokenPermissions[]\",\n \"name\": \"permitted\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.PermitBatchTransferFrom\",\n \"name\": \"permit\",\n \"type\": \"tuple\"\n }, {\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint256\",\n \"name\": \"requestedAmount\",\n \"type\": \"uint256\"\n }],\n \"internalType\": \"struct ISignatureTransfer.SignatureTransferDetails[]\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple[]\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"bytes32\",\n \"name\": \"witness\",\n \"type\": \"bytes32\"\n }, {\n \"internalType\": \"string\",\n \"name\": \"witnessTypeString\",\n \"type\": \"string\"\n }, {\n \"internalType\": \"bytes\",\n \"name\": \"signature\",\n \"type\": \"bytes\"\n }],\n \"name\": \"permitWitnessTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"components\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IAllowanceTransfer.AllowanceTransferDetails[]\",\n \"name\": \"transferDetails\",\n \"type\": \"tuple[]\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }, {\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }, {\n \"internalType\": \"uint160\",\n \"name\": \"amount\",\n \"type\": \"uint160\"\n }, {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }],\n \"name\": \"transferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }],\n method: 'nonceBitmap',\n params: [address, word]\n });\n };\n\n getFirstUnsetBit = function getFirstUnsetBit(bitmap) {\n for (var i = 0; i < 256; i++) {\n if (bitmap.shr(i).and(1).eq(0)) {\n return i;\n }\n }\n\n return -1;\n };\n\n word = 0;\n\n case 5:\n if (!(word < 1)) {\n _context53.next = 17;\n break;\n }\n\n _context53.next = 8;\n return getBitmap(address, word);\n\n case 8:\n bitmap = _context53.sent;\n\n if (!(bitmap.toString() != Blockchains[blockchain].maxInt)) {\n _context53.next = 14;\n break;\n }\n\n bitPos = getFirstUnsetBit(bitmap);\n\n if (!(bitPos >= 0)) {\n _context53.next = 14;\n break;\n }\n\n // Build and return the nonce\n nonce = buildNonce(word, bitPos);\n return _context53.abrupt(\"return\", nonce);\n\n case 14:\n word = word + 1;\n _context53.next = 5;\n break;\n\n case 17:\n case \"end\":\n return _context53.stop();\n }\n }\n }, _callee53);\n }));\n\n return function getPermit2SignatureTransferNonce(_x54) {\n return _ref109.apply(this, arguments);\n };\n}();\n\nvar transactionParams = /*#__PURE__*/function () {\n var _ref111 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee54(_ref110) {\n var paymentRoute, options, deadline, exchangeRoute, exchangeType, exchangeTransaction, exchangeCallData, exchangeAddress, params, permitDeadline, nonce, permitTransfer;\n return _regeneratorRuntime.wrap(function _callee54$(_context54) {\n while (1) {\n switch (_context54.prev = _context54.next) {\n case 0:\n paymentRoute = _ref110.paymentRoute, options = _ref110.options, deadline = _ref110.deadline;\n\n if (!(paymentRoute.directTransfer && !paymentRoute.fee && _optionalChain$1([options, 'optionalAccess', function (_7) {\n return _7.wallet;\n }, 'optionalAccess', function (_8) {\n return _8.name;\n }]) !== 'World App')) {\n _context54.next = 9;\n break;\n }\n\n if (!(paymentRoute.toToken.address == Blockchains[paymentRoute.blockchain].currency.address)) {\n _context54.next = 6;\n break;\n }\n\n return _context54.abrupt(\"return\", undefined);\n\n case 6:\n return _context54.abrupt(\"return\", [paymentRoute.toAddress, paymentRoute.toAmount]);\n\n case 7:\n _context54.next = 33;\n break;\n\n case 9:\n exchangeRoute = paymentRoute.exchangeRoutes[0];\n exchangeType = getExchangeType({\n exchangeRoute: exchangeRoute,\n blockchain: paymentRoute.blockchain\n });\n\n if (exchangeRoute) {\n _context54.next = 15;\n break;\n }\n\n _context54.t0 = undefined;\n _context54.next = 18;\n break;\n\n case 15:\n _context54.next = 17;\n return exchangeRoute.getTransaction({\n account: routers$1[paymentRoute.blockchain].address,\n inputTokenPushed: exchangeType === 2\n });\n\n case 17:\n _context54.t0 = _context54.sent;\n\n case 18:\n exchangeTransaction = _context54.t0;\n exchangeCallData = !exchangeTransaction ? Blockchains[paymentRoute.blockchain].zero : getExchangeCallData({\n exchangeTransaction: exchangeTransaction\n });\n exchangeAddress = Blockchains[paymentRoute.blockchain].zero;\n\n if (exchangeRoute) {\n if (paymentRoute.blockchain === 'bsc' && exchangeRoute.exchange.name === 'pancakeswap_v3' && paymentRoute.toToken.address === Blockchains[paymentRoute.blockchain].currency.address) {\n // bsc pancakeswap_v3 requries smart router exchange address for converting and paying out BNB/NATIVE\n exchangeAddress = exchangeRoute.exchange[paymentRoute.blockchain].smartRouter.address;\n } else {\n // proxy exchange or exchange directly\n exchangeAddress = EXCHANGE_PROXIES[exchangeTransaction.blockchain][exchangeRoute.exchange[paymentRoute.blockchain].router.address] || exchangeRoute.exchange[paymentRoute.blockchain].router.address;\n }\n }\n\n if (!(options && _optionalChain$1([options, 'optionalAccess', function (_9) {\n return _9.wallet;\n }, 'optionalAccess', function (_10) {\n return _10.name;\n }]) === 'World App' && paymentRoute.blockchain === 'worldchain')) {\n _context54.next = 31;\n break;\n }\n\n permitDeadline = Math.floor(Date.now() / 1000) + 30 * 60;\n _context54.next = 26;\n return getPermit2SignatureTransferNonce({\n blockchain: paymentRoute.blockchain,\n address: paymentRoute.fromAddress\n });\n\n case 26:\n nonce = _context54.sent;\n permitTransfer = {\n permitted: {\n token: paymentRoute.fromToken.address,\n amount: paymentRoute.fromAmount.toString()\n },\n nonce: nonce.toString(),\n deadline: permitDeadline.toString()\n };\n params = {\n args: [[// payment\n paymentRoute.fromAmount.toString(), // amountIn\n paymentRoute.toAmount.toString(), // paymentAmount\n (paymentRoute.feeAmount || 0).toString(), // feeAmount\n \"0\", // protocolAmount\n deadline.toString(), // deadline\n paymentRoute.fromToken.address, // tokenInAddress\n exchangeAddress, // exchangeAddress\n paymentRoute.toToken.address, // tokenOutAddress\n paymentRoute.toAddress, // paymentReceiverAddress\n paymentRoute.fee ? paymentRoute.fee.receiver : Blockchains[paymentRoute.blockchain].zero, // feeReceiverAddress\n exchangeType, // exchangeType\n 0, // receiverType\n true, // permit2\n exchangeCallData, // exchangeCallData\n '0x' // receiverCallData\n ], [// permitTransferFromAndSignature\n [// permitTransferFrom\n [// permitted\n paymentRoute.fromToken.address, // token\n paymentRoute.fromAmount.toString() // amount\n ], nonce.toString(), // nonce\n permitDeadline.toString() // deadline\n ], \"PERMIT2_SIGNATURE_PLACEHOLDER_0\"]],\n permit2: _objectSpread(_objectSpread({}, permitTransfer), {}, {\n spender: routers$1[paymentRoute.blockchain].address\n })\n };\n _context54.next = 32;\n break;\n\n case 31:\n if (paymentRoute.blockchain === 'worldchain') {\n params = {\n payment: {\n amountIn: paymentRoute.fromAmount,\n paymentAmount: paymentRoute.toAmount,\n feeAmount: paymentRoute.feeAmount || 0,\n protocolAmount: 0,\n tokenInAddress: paymentRoute.fromToken.address,\n exchangeAddress: exchangeAddress,\n tokenOutAddress: paymentRoute.toToken.address,\n paymentReceiverAddress: paymentRoute.toAddress,\n feeReceiverAddress: paymentRoute.fee ? paymentRoute.fee.receiver : Blockchains[paymentRoute.blockchain].zero,\n exchangeType: exchangeType,\n receiverType: 0,\n exchangeCallData: exchangeCallData,\n receiverCallData: Blockchains[paymentRoute.blockchain].zero,\n deadline: deadline\n }\n };\n } else {\n params = {\n payment: {\n amountIn: paymentRoute.fromAmount,\n paymentAmount: paymentRoute.toAmount,\n feeAmount: paymentRoute.feeAmount || 0,\n tokenInAddress: paymentRoute.fromToken.address,\n exchangeAddress: exchangeAddress,\n tokenOutAddress: paymentRoute.toToken.address,\n paymentReceiverAddress: paymentRoute.toAddress,\n feeReceiverAddress: paymentRoute.fee ? paymentRoute.fee.receiver : Blockchains[paymentRoute.blockchain].zero,\n exchangeType: exchangeType,\n receiverType: 0,\n exchangeCallData: exchangeCallData,\n receiverCallData: Blockchains[paymentRoute.blockchain].zero,\n deadline: deadline\n }\n };\n }\n\n case 32:\n return _context54.abrupt(\"return\", params);\n\n case 33:\n case \"end\":\n return _context54.stop();\n }\n }\n }, _callee54);\n }));\n\n return function transactionParams(_x55) {\n return _ref111.apply(this, arguments);\n };\n}();\n\nvar transactionValue = function transactionValue(_ref112) {\n var paymentRoute = _ref112.paymentRoute;\n\n if (paymentRoute.fromToken.address == Blockchains[paymentRoute.blockchain].currency.address) {\n if (!paymentRoute.directTransfer) {\n return paymentRoute.fromAmount.toString();\n } else {\n // direct payment\n return paymentRoute.toAmount.toString();\n }\n } else {\n return ethers.BigNumber.from('0').toString();\n }\n};\n\nvar supported = ['ethereum', 'bsc', 'polygon', 'solana', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.evm = ['ethereum', 'bsc', 'polygon', 'fantom', 'arbitrum', 'avalanche', 'gnosis', 'optimism', 'base', 'worldchain'];\nsupported.solana = ['solana'];\n\nvar getTransaction$1 = function getTransaction$1(_ref113) {\n var paymentRoute = _ref113.paymentRoute,\n fee = _ref113.fee,\n options = _ref113.options;\n\n if (supported.evm.includes(paymentRoute.blockchain)) {\n return getTransaction$2({\n paymentRoute: paymentRoute,\n fee: fee,\n options: options\n });\n } else if (supported.solana.includes(paymentRoute.blockchain)) {\n return getTransaction$3({\n paymentRoute: paymentRoute,\n fee: fee,\n options: options\n });\n } else {\n throw 'Blockchain not supported!';\n }\n};\n\nfunction _optionalChain(ops) {\n var lastAccessLHS = undefined;\n var value = ops[0];\n var i = 1;\n\n while (i < ops.length) {\n var op = ops[i];\n var fn = ops[i + 1];\n i += 2;\n\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn(function () {\n var _value7;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return (_value7 = value).call.apply(_value7, [lastAccessLHS].concat(args));\n });\n lastAccessLHS = undefined;\n }\n }\n\n return value;\n}\n\nvar PaymentRoute = /*#__PURE__*/_createClass(function PaymentRoute(_ref114) {\n var _this9 = this;\n\n var blockchain = _ref114.blockchain,\n fromAddress = _ref114.fromAddress,\n fromToken = _ref114.fromToken,\n fromAmount = _ref114.fromAmount,\n fromDecimals = _ref114.fromDecimals,\n fromBalance = _ref114.fromBalance,\n toToken = _ref114.toToken,\n toAmount = _ref114.toAmount,\n toDecimals = _ref114.toDecimals,\n toAddress = _ref114.toAddress,\n fee = _ref114.fee,\n feeAmount = _ref114.feeAmount,\n exchangeRoutes = _ref114.exchangeRoutes,\n approvalRequired = _ref114.approvalRequired,\n currentAllowance = _ref114.currentAllowance,\n approvalTransaction = _ref114.approvalTransaction,\n directTransfer = _ref114.directTransfer;\n\n _classCallCheck(this, PaymentRoute);\n\n this.blockchain = blockchain;\n this.fromAddress = fromAddress;\n this.fromToken = fromToken;\n this.fromAmount = _optionalChain([fromAmount || toAmount, 'optionalAccess', function (_) {\n return _.toString;\n }, 'call', function (_2) {\n return _2();\n }]);\n this.fromDecimals = fromDecimals;\n this.fromBalance = fromBalance;\n this.toToken = toToken;\n this.toAmount = _optionalChain([toAmount, 'optionalAccess', function (_3) {\n return _3.toString;\n }, 'call', function (_4) {\n return _4();\n }]);\n this.toDecimals = toDecimals;\n this.toAddress = toAddress;\n this.fee = fee;\n this.feeAmount = feeAmount;\n this.exchangeRoutes = exchangeRoutes || [];\n this.currentAllowance = currentAllowance;\n this.approvalRequired = approvalRequired;\n this.approvalTransaction = approvalTransaction;\n this.directTransfer = directTransfer;\n\n this.getTransaction = /*#__PURE__*/function () {\n var _ref115 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee55(options) {\n return _regeneratorRuntime.wrap(function _callee55$(_context55) {\n while (1) {\n switch (_context55.prev = _context55.next) {\n case 0:\n _context55.next = 2;\n return getTransaction$1({\n paymentRoute: _this9,\n options: options\n });\n\n case 2:\n return _context55.abrupt(\"return\", _context55.sent);\n\n case 3:\n case \"end\":\n return _context55.stop();\n }\n }\n }, _callee55);\n }));\n\n return function (_x56) {\n return _ref115.apply(this, arguments);\n };\n }();\n});\n\nfunction convertToRoutes(_ref116) {\n var assets = _ref116.assets,\n accept = _ref116.accept,\n from = _ref116.from;\n return Promise.all(assets.map( /*#__PURE__*/function () {\n var _ref117 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee57(asset) {\n var relevantConfigurations, fromToken;\n return _regeneratorRuntime.wrap(function _callee57$(_context57) {\n while (1) {\n switch (_context57.prev = _context57.next) {\n case 0:\n relevantConfigurations = accept.filter(function (configuration) {\n return configuration.blockchain == asset.blockchain;\n });\n fromToken = new Token(asset);\n return _context57.abrupt(\"return\", Promise.all(relevantConfigurations.map( /*#__PURE__*/function () {\n var _ref118 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee56(configuration) {\n var _blockchain, fromDecimals, toToken, toDecimals, toAmount, _blockchain2, fromAmount, _fromDecimals, _toToken, _toDecimals;\n\n return _regeneratorRuntime.wrap(function _callee56$(_context56) {\n while (1) {\n switch (_context56.prev = _context56.next) {\n case 0:\n if (!(configuration.token && configuration.amount)) {\n _context56.next = 13;\n break;\n }\n\n _blockchain = configuration.blockchain;\n fromDecimals = asset.decimals;\n toToken = new Token({\n blockchain: _blockchain,\n address: configuration.token\n });\n _context56.next = 6;\n return toToken.decimals();\n\n case 6:\n toDecimals = _context56.sent;\n _context56.next = 9;\n return toToken.BigNumber(configuration.amount);\n\n case 9:\n toAmount = _context56.sent.toString();\n return _context56.abrupt(\"return\", new PaymentRoute({\n blockchain: _blockchain,\n fromToken: fromToken,\n fromDecimals: fromDecimals,\n toToken: toToken,\n toAmount: toAmount,\n toDecimals: toDecimals,\n fromBalance: asset.balance,\n fromAddress: from[configuration.blockchain],\n toAddress: configuration.toAddress,\n fee: configuration.fee\n }));\n\n case 13:\n if (!(configuration.fromToken && configuration.fromAmount && fromToken.address.toLowerCase() == configuration.fromToken.toLowerCase())) {\n _context56.next = 24;\n break;\n }\n\n _blockchain2 = configuration.blockchain;\n _context56.next = 17;\n return fromToken.BigNumber(configuration.fromAmount);\n\n case 17:\n fromAmount = _context56.sent.toString();\n _fromDecimals = asset.decimals;\n _toToken = new Token({\n blockchain: _blockchain2,\n address: configuration.toToken\n });\n _context56.next = 22;\n return _toToken.decimals();\n\n case 22:\n _toDecimals = _context56.sent;\n return _context56.abrupt(\"return\", new PaymentRoute({\n blockchain: _blockchain2,\n fromToken: fromToken,\n fromDecimals: _fromDecimals,\n fromAmount: fromAmount,\n toToken: _toToken,\n toDecimals: _toDecimals,\n fromBalance: asset.balance,\n fromAddress: from[configuration.blockchain],\n toAddress: configuration.toAddress,\n fee: configuration.fee\n }));\n\n case 24:\n case \"end\":\n return _context56.stop();\n }\n }\n }, _callee56);\n }));\n\n return function (_x58) {\n return _ref118.apply(this, arguments);\n };\n }())));\n\n case 3:\n case \"end\":\n return _context57.stop();\n }\n }\n }, _callee57);\n }));\n\n return function (_x57) {\n return _ref117.apply(this, arguments);\n };\n }())).then(function (routes) {\n return routes.flat().filter(function (el) {\n return el;\n });\n });\n}\n\nfunction assetsToRoutes(_ref119) {\n var assets = _ref119.assets,\n blacklist = _ref119.blacklist,\n accept = _ref119.accept,\n from = _ref119.from;\n return Promise.resolve(filterBlacklistedAssets({\n assets: assets,\n blacklist: blacklist\n })).then(function (assets) {\n return convertToRoutes({\n assets: assets,\n accept: accept,\n from: from\n });\n }).then(function (routes) {\n return addDirectTransferStatus({\n routes: routes\n });\n }).then(addExchangeRoutes).then(filterNotRoutable).then(filterInsufficientBalance).then(function (routes) {\n return addRouteAmounts({\n routes: routes\n });\n }).then(addApproval).then(sortPaymentRoutes).then(filterDuplicateFromTokens).then(function (routes) {\n return routes.map(function (route) {\n return new PaymentRoute(route);\n });\n });\n}\n\nfunction route(_ref120) {\n var accept = _ref120.accept,\n from = _ref120.from,\n whitelist = _ref120.whitelist,\n blacklist = _ref120.blacklist,\n drip = _ref120.drip;\n\n if (accept.some(function (accept) {\n return accept && accept.fee && typeof accept.fee.amount == 'string' && accept.fee.amount.match(/\\.\\d\\d+\\%/);\n })) {\n throw 'Only up to 1 decimal is supported for fee amounts!';\n }\n\n return new Promise( /*#__PURE__*/function () {\n var _ref121 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee58(resolveAll, rejectAll) {\n var priority, blockchains, _loop, _blockchain3, sortPriorities, drippedIndex, dripQueue, dripped, priorities, thresholdToFirstDripIfNo1PriorityWasNotFirst, now, time, dripRoute, allAssets, allPaymentRoutes;\n\n return _regeneratorRuntime.wrap(function _callee58$(_context58) {\n while (1) {\n switch (_context58.prev = _context58.next) {\n case 0:\n priority = [];\n blockchains = [];\n\n if (whitelist) {\n _loop = function _loop(_blockchain3) {\n (whitelist[_blockchain3] || []).forEach(function (address) {\n blockchains.push(_blockchain3);\n priority.push({\n blockchain: _blockchain3,\n address: address\n });\n });\n };\n\n for (_blockchain3 in whitelist) {\n _loop(_blockchain3);\n }\n } else {\n accept.forEach(function (accepted) {\n blockchains.push(accepted.blockchain);\n priority.push({\n blockchain: accepted.blockchain,\n address: accepted.token || accepted.toToken\n });\n });\n } // add native currency as priority if does not exist already\n\n\n _toConsumableArray(new Set(blockchains)).forEach(function (blockchain) {\n if (!priority.find(function (priority) {\n return priority.blockchain === blockchain && priority.address === Blockchains[blockchain].currency.address;\n }) && (!whitelist || whitelist && whitelist[blockchain] && whitelist[blockchain].includes(Blockchains[blockchain].currency.address))) {\n priority.push({\n blockchain: blockchain,\n address: Blockchains[blockchain].currency.address\n });\n }\n });\n\n priority.sort(function (a, b) {\n // cheaper blockchains are more cost efficient\n if (getBlockchainCost(a.blockchain) < getBlockchainCost(b.blockchain)) {\n return -1; // a wins\n }\n\n if (getBlockchainCost(b.blockchain) < getBlockchainCost(a.blockchain)) {\n return 1; // b wins\n } // NATIVE input token is more cost efficient\n\n\n if (a.address.toLowerCase() === Blockchains[a.blockchain].currency.address.toLowerCase()) {\n return -1; // a wins\n }\n\n if (b.address.toLowerCase() === Blockchains[b.blockchain].currency.address.toLowerCase()) {\n return 1; // b wins\n }\n\n return 0;\n });\n\n sortPriorities = function sortPriorities(priorities, a, b) {\n if (!priorities || priorities.length === 0) {\n return 0;\n }\n\n var priorityIndexOfA = priorities.indexOf([a.blockchain, a.address.toLowerCase()].join(''));\n var priorityIndexOfB = priorities.indexOf([b.blockchain, b.address.toLowerCase()].join(''));\n\n if (priorityIndexOfA !== -1 && priorityIndexOfB === -1) {\n return -1; // a wins\n }\n\n if (priorityIndexOfB !== -1 && priorityIndexOfA === -1) {\n return 1; // b wins\n }\n\n if (priorityIndexOfA < priorityIndexOfB) {\n return -1; // a wins\n }\n\n if (priorityIndexOfB < priorityIndexOfA) {\n return 1; // b wins\n }\n\n return 0;\n };\n\n drippedIndex = 0;\n dripQueue = [];\n dripped = [];\n priorities = priority.map(function (priority) {\n return [priority.blockchain, priority.address.toLowerCase()].join('');\n });\n thresholdToFirstDripIfNo1PriorityWasNotFirst = 3000;\n\n now = function now() {\n return Math.ceil(new Date());\n };\n\n time = now();\n setTimeout(function () {\n dripQueue.forEach(function (asset) {\n return dripRoute(route, false);\n });\n }, thresholdToFirstDripIfNo1PriorityWasNotFirst);\n\n dripRoute = function dripRoute(route) {\n var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n try {\n var asset = {\n blockchain: route.blockchain,\n address: route.fromToken.address\n };\n var assetAsKey = [asset.blockchain, asset.address.toLowerCase()].join('');\n var timeThresholdReached = now() - time > thresholdToFirstDripIfNo1PriorityWasNotFirst;\n\n if (dripped.indexOf(assetAsKey) > -1) {\n return;\n }\n\n if (priorities.indexOf(assetAsKey) === drippedIndex) {\n dripped.push(assetAsKey);\n drip(route);\n drippedIndex += 1;\n\n if (!recursive) {\n return;\n }\n\n dripQueue.forEach(function (asset) {\n return dripRoute(route, false);\n });\n } else if (drippedIndex >= priorities.length || timeThresholdReached) {\n if (priorities.indexOf(assetAsKey) === -1) {\n dripped.push(assetAsKey);\n drip(route);\n } else if (drippedIndex >= priorities.length || timeThresholdReached) {\n dripped.push(assetAsKey);\n drip(route);\n }\n } else if (!dripQueue.find(function (queued) {\n return queued.blockchain === asset.blockchain && queued.address.toLowerCase() === asset.address.toLowerCase();\n })) {\n dripQueue.push(asset);\n dripQueue.sort(function (a, b) {\n return sortPriorities(priorities, a, b);\n });\n }\n } catch (e) {}\n };\n\n _context58.next = 17;\n return dripAssets({\n accounts: from,\n priority: priority,\n only: whitelist,\n exclude: blacklist,\n drip: !drip ? undefined : function (asset) {\n assetsToRoutes({\n assets: [asset],\n blacklist: blacklist,\n accept: accept,\n from: from\n }).then(function (routes) {\n if (_optionalChain([routes, 'optionalAccess', function (_5) {\n return _5.length;\n }])) {\n dripRoute(routes[0]);\n }\n });\n }\n });\n\n case 17:\n allAssets = _context58.sent;\n _context58.next = 20;\n return assetsToRoutes({\n assets: allAssets,\n blacklist: blacklist,\n accept: accept,\n from: from\n });\n\n case 20:\n _context58.t0 = _context58.sent;\n\n if (_context58.t0) {\n _context58.next = 23;\n break;\n }\n\n _context58.t0 = [];\n\n case 23:\n allPaymentRoutes = _context58.t0;\n allPaymentRoutes.assets = allAssets;\n resolveAll(allPaymentRoutes);\n\n case 26:\n case \"end\":\n return _context58.stop();\n }\n }\n }, _callee58);\n }));\n\n return function (_x59, _x60) {\n return _ref121.apply(this, arguments);\n };\n }());\n}\n\nvar filterBlacklistedAssets = function filterBlacklistedAssets(_ref122) {\n var assets = _ref122.assets,\n blacklist = _ref122.blacklist;\n\n if (blacklist == undefined) {\n return assets;\n } else {\n return assets.filter(function (asset) {\n if (blacklist[asset.blockchain] == undefined) {\n return true;\n } else {\n return !blacklist[asset.blockchain].find(function (blacklistedAddress) {\n return blacklistedAddress.toLowerCase() == asset.address.toLowerCase();\n });\n }\n });\n }\n};\n\nvar addExchangeRoutes = /*#__PURE__*/function () {\n var _ref123 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee59(routes) {\n return _regeneratorRuntime.wrap(function _callee59$(_context59) {\n while (1) {\n switch (_context59.prev = _context59.next) {\n case 0:\n _context59.next = 2;\n return Promise.all(routes.map(function (route) {\n if (route.directTransfer) {\n return [];\n }\n\n if (route.toToken && route.toAmount) {\n return Exchanges.route({\n blockchain: route.blockchain,\n tokenIn: route.fromToken.address,\n tokenOut: route.toToken.address,\n amountOutMin: route.toAmount,\n fromAddress: route.fromAddress,\n toAddress: route.toAddress\n });\n } else if (route.fromToken && route.fromAmount) {\n return Exchanges.route({\n blockchain: route.blockchain,\n tokenIn: route.fromToken.address,\n tokenOut: route.toToken.address,\n amountIn: route.fromAmount,\n fromAddress: route.fromAddress,\n toAddress: route.toAddress\n });\n }\n })).then(function (exchangeRoutes) {\n return routes.map(function (route, index) {\n route.exchangeRoutes = exchangeRoutes[index];\n return route;\n });\n });\n\n case 2:\n return _context59.abrupt(\"return\", _context59.sent);\n\n case 3:\n case \"end\":\n return _context59.stop();\n }\n }\n }, _callee59);\n }));\n\n return function addExchangeRoutes(_x61) {\n return _ref123.apply(this, arguments);\n };\n}();\n\nvar filterNotRoutable = function filterNotRoutable(routes) {\n return routes.filter(function (route) {\n return route.exchangeRoutes.length != 0 || route.fromToken.address.toLowerCase() == route.toToken.address.toLowerCase() // direct transfer always possible\n ;\n });\n};\n\nvar filterInsufficientBalance = /*#__PURE__*/function () {\n var _ref124 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee60(routes) {\n return _regeneratorRuntime.wrap(function _callee60$(_context60) {\n while (1) {\n switch (_context60.prev = _context60.next) {\n case 0:\n return _context60.abrupt(\"return\", routes.filter(function (route) {\n if (route.fromToken.address.toLowerCase() == route.toToken.address.toLowerCase()) {\n return ethers.BigNumber.from(route.fromBalance).gte(ethers.BigNumber.from(route.toAmount));\n } else if (route.fromAmount && route.toAmount) {\n return ethers.BigNumber.from(route.fromBalance).gte(ethers.BigNumber.from(route.exchangeRoutes[0].amountInMax));\n } else if (route.exchangeRoutes[0] && route.exchangeRoutes[0].amountIn) {\n return ethers.BigNumber.from(route.fromBalance).gte(ethers.BigNumber.from(route.exchangeRoutes[0].amountIn));\n }\n }));\n\n case 1:\n case \"end\":\n return _context60.stop();\n }\n }\n }, _callee60);\n }));\n\n return function filterInsufficientBalance(_x62) {\n return _ref124.apply(this, arguments);\n };\n}();\n\nvar addApproval = function addApproval(routes) {\n return Promise.all(routes.map(function (route) {\n if (route.blockchain === 'solana') {\n return Promise.resolve(Blockchains.solana.maxInt);\n } else {\n return route.fromToken.allowance(route.fromAddress, routers[route.blockchain].address).catch(function () {});\n }\n })).then(function (allowances) {\n routes.map(function (route, index) {\n if (allowances[index] === undefined || route.directTransfer || route.fromToken.address.toLowerCase() == Blockchains[route.blockchain].currency.address.toLowerCase() || route.blockchain === 'solana') {\n routes[index].approvalRequired = false;\n } else {\n routes[index].currentAllowance = ethers.BigNumber.from(allowances[index]);\n routes[index].approvalRequired = ethers.BigNumber.from(route.fromAmount).gte(ethers.BigNumber.from(allowances[index]));\n\n if (routes[index].approvalRequired) {\n routes[index].approvalTransaction = {\n blockchain: route.blockchain,\n to: route.fromToken.address,\n api: Token[route.blockchain].DEFAULT,\n method: 'approve',\n params: [routers[route.blockchain].address, Blockchains[route.blockchain].maxInt]\n };\n }\n }\n });\n return routes;\n });\n};\n\nvar addDirectTransferStatus = function addDirectTransferStatus(_ref125) {\n var routes = _ref125.routes;\n return routes.map(function (route) {\n if (supported.evm.includes(route.blockchain)) {\n route.directTransfer = route.fromToken.address.toLowerCase() == route.toToken.address.toLowerCase() && route.fee == undefined;\n } else if (route.blockchain === 'solana') {\n route.directTransfer = route.fromToken.address.toLowerCase() == route.toToken.address.toLowerCase();\n }\n\n return route;\n });\n};\n\nvar calculateAmounts = function calculateAmounts(_ref126) {\n var paymentRoute = _ref126.paymentRoute,\n exchangeRoute = _ref126.exchangeRoute;\n var fromAmount;\n var toAmount;\n var feeAmount;\n\n if (exchangeRoute) {\n if (exchangeRoute && exchangeRoute.exchange.wrapper) {\n fromAmount = exchangeRoute.amountIn.toString();\n toAmount = subtractFee({\n amount: exchangeRoute.amountOutMin.toString(),\n paymentRoute: paymentRoute\n });\n } else {\n fromAmount = exchangeRoute.amountIn.toString();\n toAmount = subtractFee({\n amount: exchangeRoute.amountOutMin.toString(),\n paymentRoute: paymentRoute\n });\n }\n } else {\n fromAmount = paymentRoute.fromAmount;\n toAmount = subtractFee({\n amount: paymentRoute.fromAmount,\n paymentRoute: paymentRoute\n });\n }\n\n if (paymentRoute.fee) {\n feeAmount = getFeeAmount({\n paymentRoute: paymentRoute\n });\n }\n\n return {\n fromAmount: fromAmount,\n toAmount: toAmount,\n feeAmount: feeAmount\n };\n};\n\nvar subtractFee = function subtractFee(_ref127) {\n var amount = _ref127.amount,\n paymentRoute = _ref127.paymentRoute;\n\n if (paymentRoute.fee) {\n var feeAmount = getFeeAmount({\n paymentRoute: paymentRoute\n });\n return ethers.BigNumber.from(amount).sub(feeAmount).toString();\n } else {\n return amount;\n }\n};\n\nvar getFeeAmount = function getFeeAmount(_ref128) {\n var paymentRoute = _ref128.paymentRoute;\n\n if (typeof paymentRoute.fee.amount == 'string' && paymentRoute.fee.amount.match('%')) {\n return ethers.BigNumber.from(paymentRoute.toAmount).mul(parseFloat(paymentRoute.fee.amount) * 10).div(1000).toString();\n } else if (typeof paymentRoute.fee.amount == 'string') {\n return paymentRoute.fee.amount;\n } else if (typeof paymentRoute.fee.amount == 'number') {\n return ethers.utils.parseUnits(paymentRoute.fee.amount.toString(), paymentRoute.toDecimals).toString();\n } else {\n throw 'Unknown fee amount type!';\n }\n};\n\nvar addRouteAmounts = function addRouteAmounts(_ref129) {\n var routes = _ref129.routes;\n return routes.map(function (route) {\n if (supported.evm.includes(route.blockchain)) {\n if (route.directTransfer && !route.fee) {\n route.fromAmount = route.toAmount;\n } else {\n var _calculateAmounts = calculateAmounts({\n paymentRoute: route,\n exchangeRoute: route.exchangeRoutes[0]\n }),\n fromAmount = _calculateAmounts.fromAmount,\n toAmount = _calculateAmounts.toAmount,\n feeAmount = _calculateAmounts.feeAmount;\n\n route.fromAmount = fromAmount;\n route.toAmount = toAmount;\n\n if (route.fee) {\n route.feeAmount = feeAmount;\n }\n }\n } else if (supported.solana.includes(route.blockchain)) {\n var _calculateAmounts2 = calculateAmounts({\n paymentRoute: route,\n exchangeRoute: route.exchangeRoutes[0]\n }),\n _fromAmount = _calculateAmounts2.fromAmount,\n _toAmount = _calculateAmounts2.toAmount,\n _feeAmount = _calculateAmounts2.feeAmount;\n\n route.fromAmount = _fromAmount;\n route.toAmount = _toAmount;\n\n if (route.fee) {\n route.feeAmount = _feeAmount;\n }\n }\n\n return route;\n });\n};\n\nvar filterDuplicateFromTokens = function filterDuplicateFromTokens(routes) {\n return routes.filter(function (routeA, indexA) {\n var otherMoreEfficientRoute = routes.find(function (routeB, indexB) {\n if (routeA.fromToken.address != routeB.fromToken.address) {\n return false;\n }\n\n if (routeA.fromToken.blockchain != routeB.fromToken.blockchain) {\n return false;\n }\n\n if (routeB.directTransfer && !routeA.directTransfer) {\n return true;\n }\n\n if (ethers.BigNumber.from(routeB.fromAmount).lt(ethers.BigNumber.from(routeA.fromAmount)) && !routeA.directTransfer) {\n return true;\n }\n\n if (routeB.fromAmount == routeA.fromAmount && indexB < indexA) {\n return true;\n }\n });\n return otherMoreEfficientRoute == undefined;\n });\n};\n\nvar sortPaymentRoutes = function sortPaymentRoutes(routes) {\n var aWins = -1;\n var bWins = 1;\n return routes.sort(function (a, b) {\n // cheaper blockchains are more cost-efficien\n if (getBlockchainCost(a.fromToken.blockchain) < getBlockchainCost(b.fromToken.blockchain)) {\n return aWins;\n }\n\n if (getBlockchainCost(b.fromToken.blockchain) < getBlockchainCost(a.fromToken.blockchain)) {\n return bWins;\n } // direct transfer is always more cost-efficient\n\n\n if (a.fromToken.address.toLowerCase() == a.toToken.address.toLowerCase()) {\n return aWins;\n }\n\n if (b.fromToken.address.toLowerCase() == b.toToken.address.toLowerCase()) {\n return bWins;\n } // requiring approval is less cost efficient\n\n\n if (a.approvalRequired && !b.approvalRequired) {\n return bWins;\n }\n\n if (b.approvalRequired && !a.approvalRequired) {\n return aWins;\n } // NATIVE -> WRAPPED is more cost efficient that swapping to another token\n\n\n if (JSON.stringify([a.fromToken.address.toLowerCase(), a.toToken.address.toLowerCase()].sort()) == JSON.stringify([Blockchains[a.blockchain].currency.address.toLowerCase(), Blockchains[a.blockchain].wrapped.address.toLowerCase()].sort())) {\n return aWins;\n }\n\n if (JSON.stringify([b.fromToken.address.toLowerCase(), b.toToken.address.toLowerCase()].sort()) == JSON.stringify([Blockchains[b.blockchain].currency.address.toLowerCase(), Blockchains[b.blockchain].wrapped.address.toLowerCase()].sort())) {\n return bWins;\n } // NATIVE input token is more cost efficient\n\n\n if (a.fromToken.address.toLowerCase() == Blockchains[a.blockchain].currency.address.toLowerCase()) {\n return aWins;\n }\n\n if (b.fromToken.address.toLowerCase() == Blockchains[b.blockchain].currency.address.toLowerCase()) {\n return bWins;\n }\n\n if (a.fromToken.address < b.fromToken.address) {\n return aWins;\n } else {\n return bWins;\n }\n });\n};\n\nvar getTransaction = function getTransaction(paymentRoute) {\n if (paymentRoute.blockchain === 'solana') {\n return getTransaction$3({\n paymentRoute: paymentRoute\n });\n }\n};\n\nexport { getTransaction, route, routers };","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","\"use strict\";\n\n(function (root) {\n var MAX_VALUE = 0x7fffffff; // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n\n function SHA256(m) {\n var K = new Uint32Array([0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]);\n var h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a;\n var h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n var w = new Uint32Array(64);\n\n function blocks(p) {\n var off = 0,\n len = p.length;\n\n while (len >= 64) {\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n u = void 0,\n _i = void 0,\n j = void 0,\n t1 = void 0,\n t2 = void 0;\n\n for (_i = 0; _i < 16; _i++) {\n j = off + _i * 4;\n w[_i] = (p[j] & 0xff) << 24 | (p[j + 1] & 0xff) << 16 | (p[j + 2] & 0xff) << 8 | p[j + 3] & 0xff;\n }\n\n for (_i = 16; _i < 64; _i++) {\n u = w[_i - 2];\n t1 = (u >>> 17 | u << 32 - 17) ^ (u >>> 19 | u << 32 - 19) ^ u >>> 10;\n u = w[_i - 15];\n 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) | 0;\n }\n\n for (_i = 0; _i < 64; _i++) {\n t1 = (((e >>> 6 | e << 32 - 6) ^ (e >>> 11 | e << 32 - 11) ^ (e >>> 25 | e << 32 - 25)) + (e & f ^ ~e & g) | 0) + (h + (K[_i] + w[_i] | 0) | 0) | 0;\n t2 = ((a >>> 2 | a << 32 - 2) ^ (a >>> 13 | a << 32 - 13) ^ (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\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n h5 = h5 + f | 0;\n h6 = h6 + g | 0;\n h7 = h7 + h | 0;\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n var i,\n bytesLeft = m.length % 64,\n bitLenHi = m.length / 0x20000000 | 0,\n bitLenLo = m.length << 3,\n numZeros = bytesLeft < 56 ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n p.push(0x80);\n\n for (i = bytesLeft + 1; i < numZeros; i++) {\n p.push(0);\n }\n\n p.push(bitLenHi >>> 24 & 0xff);\n p.push(bitLenHi >>> 16 & 0xff);\n p.push(bitLenHi >>> 8 & 0xff);\n p.push(bitLenHi >>> 0 & 0xff);\n p.push(bitLenLo >>> 24 & 0xff);\n p.push(bitLenLo >>> 16 & 0xff);\n p.push(bitLenLo >>> 8 & 0xff);\n p.push(bitLenLo >>> 0 & 0xff);\n blocks(p);\n return [h0 >>> 24 & 0xff, h0 >>> 16 & 0xff, h0 >>> 8 & 0xff, h0 >>> 0 & 0xff, h1 >>> 24 & 0xff, h1 >>> 16 & 0xff, h1 >>> 8 & 0xff, h1 >>> 0 & 0xff, h2 >>> 24 & 0xff, h2 >>> 16 & 0xff, h2 >>> 8 & 0xff, h2 >>> 0 & 0xff, h3 >>> 24 & 0xff, h3 >>> 16 & 0xff, h3 >>> 8 & 0xff, h3 >>> 0 & 0xff, h4 >>> 24 & 0xff, h4 >>> 16 & 0xff, h4 >>> 8 & 0xff, h4 >>> 0 & 0xff, h5 >>> 24 & 0xff, h5 >>> 16 & 0xff, h5 >>> 8 & 0xff, h5 >>> 0 & 0xff, h6 >>> 24 & 0xff, h6 >>> 16 & 0xff, h6 >>> 8 & 0xff, h6 >>> 0 & 0xff, h7 >>> 24 & 0xff, h7 >>> 16 & 0xff, h7 >>> 8 & 0xff, h7 >>> 0 & 0xff];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = password.length <= 64 ? password : SHA256(password);\n var innerLen = 64 + salt.length + 4;\n var inner = new Array(innerLen);\n var outerKey = new Array(64);\n var i;\n var dk = []; // inner = (password ^ ipad) || salt || counter\n\n for (i = 0; i < 64; i++) {\n inner[i] = 0x36;\n }\n\n for (i = 0; i < password.length; i++) {\n inner[i] ^= password[i];\n }\n\n for (i = 0; i < salt.length; i++) {\n inner[64 + i] = salt[i];\n }\n\n for (i = innerLen - 4; i < innerLen; i++) {\n inner[i] = 0;\n } // outerKey = password ^ opad\n\n\n for (i = 0; i < 64; i++) {\n outerKey[i] = 0x5c;\n }\n\n for (i = 0; i < password.length; i++) {\n outerKey[i] ^= password[i];\n } // increments counter inside inner\n\n\n function incrementCounter() {\n for (var _i2 = innerLen - 1; _i2 >= innerLen - 4; _i2--) {\n inner[_i2]++;\n if (inner[_i2] <= 0xff) return;\n inner[_i2] = 0;\n }\n } // output blocks = SHA256(outerKey || SHA256(inner)) ...\n\n\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n } // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n\n\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n var i;\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + i * 16, 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + i * 2 * 16, BY, i * 16, 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return a << b | a >>> 32 - b;\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (var i = 8; i > 0; i -= 2) {\n x[4] ^= R(x[0] + x[12], 7);\n x[8] ^= R(x[4] + x[0], 9);\n x[12] ^= R(x[8] + x[4], 13);\n x[0] ^= R(x[12] + x[8], 18);\n x[9] ^= R(x[5] + x[1], 7);\n x[13] ^= R(x[9] + x[5], 9);\n x[1] ^= R(x[13] + x[9], 13);\n x[5] ^= R(x[1] + x[13], 18);\n x[14] ^= R(x[10] + x[6], 7);\n x[2] ^= R(x[14] + x[10], 9);\n x[6] ^= R(x[2] + x[14], 13);\n x[10] ^= R(x[6] + x[2], 18);\n x[3] ^= R(x[15] + x[11], 7);\n x[7] ^= R(x[3] + x[15], 9);\n x[11] ^= R(x[7] + x[3], 13);\n x[15] ^= R(x[11] + x[7], 18);\n x[1] ^= R(x[0] + x[3], 7);\n x[2] ^= R(x[1] + x[0], 9);\n x[3] ^= R(x[2] + x[1], 13);\n x[0] ^= R(x[3] + x[2], 18);\n x[6] ^= R(x[5] + x[4], 7);\n x[7] ^= R(x[6] + x[5], 9);\n x[4] ^= R(x[7] + x[6], 13);\n x[5] ^= R(x[4] + x[7], 18);\n x[11] ^= R(x[10] + x[9], 7);\n x[8] ^= R(x[11] + x[10], 9);\n x[9] ^= R(x[8] + x[11], 13);\n x[10] ^= R(x[9] + x[8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (var _i3 = 0; _i3 < 16; ++_i3) {\n B[_i3] += x[_i3];\n }\n } // naive approach... going back to loop unrolling may yield additional performance\n\n\n function blockxor(S, Si, D, len) {\n for (var i = 0; i < len; i++) {\n D[i] ^= S[Si + i];\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof o.length !== 'number') {\n return false;\n }\n\n for (var i = 0; i < o.length; i++) {\n var v = o[i];\n\n if (typeof v !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof value !== \"number\" || value % 1) {\n throw new Error('invalid ' + name);\n }\n\n return value;\n } // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n\n\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & N - 1) !== 0) {\n throw new Error('N must be power of 2');\n }\n\n if (N > MAX_VALUE / 128 / r) {\n throw new Error('N too large');\n }\n\n if (r > MAX_VALUE / 128 / p) {\n throw new Error('r too large');\n }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n\n salt = Array.prototype.slice.call(salt);\n var b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n var B = new Uint32Array(p * 32 * r);\n\n for (var i = 0; i < B.length; i++) {\n var j = i * 4;\n B[i] = (b[j + 3] & 0xff) << 24 | (b[j + 2] & 0xff) << 16 | (b[j + 1] & 0xff) << 8 | (b[j + 0] & 0xff) << 0;\n }\n\n var XY = new Uint32Array(64 * r);\n var V = new Uint32Array(32 * r * N);\n var Yi = 32 * r; // scratch space\n\n var x = new Uint32Array(16); // salsa20_8\n\n var _X = new Uint32Array(16); // blockmix_salsa8\n\n\n var totalOps = p * N * 2;\n var currentOp = 0;\n var lastPercent10 = null; // Set this to true to abandon the scrypt on the next step\n\n var stop = false; // State information\n\n var state = 0;\n var i0 = 0,\n i1;\n var Bi; // How many blockmix_salsa8 can we do per step?\n\n var limit = callback ? parseInt(1000 / r) : 0xffffffff; // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n\n var nextTick = typeof setImmediate !== 'undefined' ? setImmediate : setTimeout; // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n\n var incrementalSMix = function incrementalSMix() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n var steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n\n i1 = 0;\n // Fall through\n\n case 1:\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n\n if (steps > limit) {\n steps = limit;\n }\n\n for (var _i4 = 0; _i4 < steps; _i4++) {\n // ROMix - 2\n arraycopy(XY, 0, V, (i1 + _i4) * Yi, Yi); // ROMix - 3\n\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n } // for (var i = 0; i < N; i++)\n\n\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n var percent10 = parseInt(1000 * currentOp / totalOps);\n\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n\n if (stop) {\n break;\n }\n\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) {\n break;\n }\n\n i1 = 0; // Move to ROMix 6\n\n state = 2;\n // Fall through\n\n case 2:\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n\n if (steps > limit) {\n steps = limit;\n }\n\n for (var _i5 = 0; _i5 < steps; _i5++) {\n // ROMix - 6\n var offset = (2 * r - 1) * 16; // ROMix - 7\n\n var _j = XY[offset] & N - 1;\n\n blockxor(V, _j * Yi, XY, Yi); // ROMix - 8 (inner)\n\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n } // for (var i = 0; i < N; i++)...\n\n\n i1 += steps;\n currentOp += steps; // Call the callback with the progress (optionally stopping us)\n\n if (callback) {\n var _percent = parseInt(1000 * currentOp / totalOps);\n\n if (_percent !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n\n if (stop) {\n break;\n }\n\n lastPercent10 = _percent;\n }\n }\n\n if (i1 < N) {\n break;\n }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n // for (var i = 0; i < p; i++)...\n\n i0++;\n\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n\n for (var _i6 = 0; _i6 < B.length; _i6++) {\n b.push(B[_i6] >> 0 & 0xff);\n b.push(B[_i6] >> 8 & 0xff);\n b.push(B[_i6] >> 16 & 0xff);\n b.push(B[_i6] >> 24 & 0xff);\n }\n\n var derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen); // Send the result to the callback\n\n if (callback) {\n callback(null, 1.0, derivedKey);\n } // Done; don't break (which would reschedule)\n\n\n return derivedKey;\n } // Schedule the next steps\n\n\n if (callback) {\n nextTick(incrementalSMix);\n }\n }; // Run the smix state machine until completion\n\n\n if (!callback) {\n while (true) {\n var derivedKey = incrementalSMix();\n\n if (derivedKey != undefined) {\n return derivedKey;\n }\n }\n } // Bootstrap the async incremental smix\n\n\n incrementalSMix();\n }\n\n var lib = {\n scrypt: function scrypt(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function (resolve, reject) {\n var lastProgress = 0;\n\n if (progressCallback) {\n progressCallback(0);\n }\n\n _scrypt(password, salt, N, r, p, dkLen, function (error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function syncScrypt(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n }; // node.js\n\n if (typeof exports !== 'undefined') {\n module.exports = lib; // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof define === 'function' && define.amd) {\n define(lib); // Web Browsers\n } else if (root) {\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n})(this);","function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2022 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\nfunction isArray(value) {\n return !Array.isArray ? getTag(value) === '[object Array]' : Array.isArray(value);\n} // Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\n\n\nvar INFINITY = 1 / 0;\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\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n\nfunction isNumber(value) {\n return typeof value === 'number';\n} // Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\n\n\nfunction isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && getTag(value) == '[object Boolean]';\n}\n\nfunction isObject(value) {\n return _typeof(value) === 'object';\n} // Checks if `value` is object-like.\n\n\nfunction isObjectLike(value) {\n return isObject(value) && value !== null;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isBlank(value) {\n return !value.trim().length;\n} // Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\n\n\nfunction getTag(value) {\n return value == null ? value === undefined ? '[object Undefined]' : '[object Null]' : Object.prototype.toString.call(value);\n}\n\nvar EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\nvar INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nvar LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = function LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key) {\n return \"Invalid value for key \".concat(key);\n};\n\nvar PATTERN_LENGTH_TOO_LARGE = function PATTERN_LENGTH_TOO_LARGE(max) {\n return \"Pattern length exceeds max of \".concat(max, \".\");\n};\n\nvar MISSING_KEY_PROPERTY = function MISSING_KEY_PROPERTY(name) {\n return \"Missing \".concat(name, \" property in key\");\n};\n\nvar INVALID_KEY_WEIGHT_VALUE = function INVALID_KEY_WEIGHT_VALUE(key) {\n return \"Property 'weight' in key '\".concat(key, \"' must be a positive integer\");\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar KeyStore = /*#__PURE__*/function () {\n function KeyStore(keys) {\n var _this = this;\n\n _classCallCheck(this, KeyStore);\n\n this._keys = [];\n this._keyMap = {};\n var totalWeight = 0;\n keys.forEach(function (key) {\n var obj = createKey(key);\n totalWeight += obj.weight;\n\n _this._keys.push(obj);\n\n _this._keyMap[obj.id] = obj;\n totalWeight += obj.weight;\n }); // Normalize weights so that their sum is equal to 1\n\n this._keys.forEach(function (key) {\n key.weight /= totalWeight;\n });\n }\n\n _createClass(KeyStore, [{\n key: \"get\",\n value: function get(keyId) {\n return this._keyMap[keyId];\n }\n }, {\n key: \"keys\",\n value: function keys() {\n return this._keys;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return JSON.stringify(this._keys);\n }\n }]);\n\n return KeyStore;\n}();\n\nfunction createKey(key) {\n var path = null;\n var id = null;\n var src = null;\n var weight = 1;\n var getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'));\n }\n\n var name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name));\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return {\n path: path,\n id: id,\n weight: weight,\n src: src,\n getFn: getFn\n };\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.');\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key;\n}\n\nfunction get(obj, path) {\n var list = [];\n var arr = false;\n\n var deepGet = function deepGet(obj, path, index) {\n if (!isDefined(obj)) {\n return;\n }\n\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n var key = path[index];\n var value = obj[key];\n\n if (!isDefined(value)) {\n return;\n } // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n\n\n if (index === path.length - 1 && (isString(value) || isNumber(value) || isBoolean(value))) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true; // Search each item in the array.\n\n for (var i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n }; // Backwards compatibility (since path used to be a string)\n\n\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n return arr ? list : list[0];\n}\n\nvar MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\nvar BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: function sortFn(a, b) {\n return a.score === b.score ? a.idx < b.idx ? -1 : 1 : a.score < b.score ? -1 : 1;\n }\n};\nvar FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\nvar AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BasicOptions), MatchOptions), FuzzyOptions), AdvancedOptions);\n\nvar SPACE = /[^ ]+/g; // Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\n\nfunction norm() {\n var weight = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var mantissa = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n var cache = new Map();\n var m = Math.pow(10, mantissa);\n return {\n get: function get(value) {\n var numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens);\n } // Default function is 1/sqrt(x), weight makes that variable\n\n\n var norm = 1 / Math.pow(numTokens, 0.5 * weight); // In place of `toFixed(mantissa)`, for faster computation\n\n var n = parseFloat(Math.round(norm * m) / m);\n cache.set(numTokens, n);\n return n;\n },\n clear: function clear() {\n cache.clear();\n }\n };\n}\n\nvar FuseIndex = /*#__PURE__*/function () {\n function FuseIndex() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$getFn = _ref.getFn,\n getFn = _ref$getFn === void 0 ? Config.getFn : _ref$getFn,\n _ref$fieldNormWeight = _ref.fieldNormWeight,\n fieldNormWeight = _ref$fieldNormWeight === void 0 ? Config.fieldNormWeight : _ref$fieldNormWeight;\n\n _classCallCheck(this, FuseIndex);\n\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n this.setIndexRecords();\n }\n\n _createClass(FuseIndex, [{\n key: \"setSources\",\n value: function setSources() {\n var docs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n this.docs = docs;\n }\n }, {\n key: \"setIndexRecords\",\n value: function setIndexRecords() {\n var records = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n this.records = records;\n }\n }, {\n key: \"setKeys\",\n value: function setKeys() {\n var _this2 = this;\n\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n this.keys = keys;\n this._keysMap = {};\n keys.forEach(function (key, idx) {\n _this2._keysMap[key.id] = idx;\n });\n }\n }, {\n key: \"create\",\n value: function create() {\n var _this3 = this;\n\n if (this.isCreated || !this.docs.length) {\n return;\n }\n\n this.isCreated = true; // List is Array\n\n if (isString(this.docs[0])) {\n this.docs.forEach(function (doc, docIndex) {\n _this3._addString(doc, docIndex);\n });\n } else {\n // List is Array\n this.docs.forEach(function (doc, docIndex) {\n _this3._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n } // Adds a doc to the end of the index\n\n }, {\n key: \"add\",\n value: function add(doc) {\n var idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n } // Removes the doc at the specified index of the index\n\n }, {\n key: \"removeAt\",\n value: function removeAt(idx) {\n this.records.splice(idx, 1); // Change ref index of every subsquent doc\n\n for (var i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n }, {\n key: \"getValueForItemAtKeyId\",\n value: function getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]];\n }\n }, {\n key: \"size\",\n value: function size() {\n return this.records.length;\n }\n }, {\n key: \"_addString\",\n value: function _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return;\n }\n\n var record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n this.records.push(record);\n }\n }, {\n key: \"_addObject\",\n value: function _addObject(doc, docIndex) {\n var _this4 = this;\n\n var record = {\n i: docIndex,\n $: {}\n }; // Iterate over every key (i.e, path), and fetch the value at that key\n\n this.keys.forEach(function (key, keyIndex) {\n var value = key.getFn ? key.getFn(doc) : _this4.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return;\n }\n\n if (isArray(value)) {\n (function () {\n var subRecords = [];\n var stack = [{\n nestedArrIndex: -1,\n value: value\n }];\n\n while (stack.length) {\n var _stack$pop = stack.pop(),\n nestedArrIndex = _stack$pop.nestedArrIndex,\n _value = _stack$pop.value;\n\n if (!isDefined(_value)) {\n continue;\n }\n\n if (isString(_value) && !isBlank(_value)) {\n var subRecord = {\n v: _value,\n i: nestedArrIndex,\n n: _this4.norm.get(_value)\n };\n subRecords.push(subRecord);\n } else if (isArray(_value)) {\n _value.forEach(function (item, k) {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n\n record.$[keyIndex] = subRecords;\n })();\n } else if (isString(value) && !isBlank(value)) {\n var subRecord = {\n v: value,\n n: _this4.norm.get(value)\n };\n record.$[keyIndex] = subRecord;\n }\n });\n this.records.push(record);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n keys: this.keys,\n records: this.records\n };\n }\n }]);\n\n return FuseIndex;\n}();\n\nfunction createIndex(keys, docs) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$getFn = _ref2.getFn,\n getFn = _ref2$getFn === void 0 ? Config.getFn : _ref2$getFn,\n _ref2$fieldNormWeight = _ref2.fieldNormWeight,\n fieldNormWeight = _ref2$fieldNormWeight === void 0 ? Config.fieldNormWeight : _ref2$fieldNormWeight;\n\n var myIndex = new FuseIndex({\n getFn: getFn,\n fieldNormWeight: fieldNormWeight\n });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex;\n}\n\nfunction parseIndex(data) {\n var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref3$getFn = _ref3.getFn,\n getFn = _ref3$getFn === void 0 ? Config.getFn : _ref3$getFn,\n _ref3$fieldNormWeight = _ref3.fieldNormWeight,\n fieldNormWeight = _ref3$fieldNormWeight === void 0 ? Config.fieldNormWeight : _ref3$fieldNormWeight;\n\n var keys = data.keys,\n records = data.records;\n var myIndex = new FuseIndex({\n getFn: getFn,\n fieldNormWeight: fieldNormWeight\n });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex;\n}\n\nfunction computeScore$1(pattern) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref4$errors = _ref4.errors,\n errors = _ref4$errors === void 0 ? 0 : _ref4$errors,\n _ref4$currentLocation = _ref4.currentLocation,\n currentLocation = _ref4$currentLocation === void 0 ? 0 : _ref4$currentLocation,\n _ref4$expectedLocatio = _ref4.expectedLocation,\n expectedLocation = _ref4$expectedLocatio === void 0 ? 0 : _ref4$expectedLocatio,\n _ref4$distance = _ref4.distance,\n distance = _ref4$distance === void 0 ? Config.distance : _ref4$distance,\n _ref4$ignoreLocation = _ref4.ignoreLocation,\n ignoreLocation = _ref4$ignoreLocation === void 0 ? Config.ignoreLocation : _ref4$ignoreLocation;\n\n var accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy;\n }\n\n var proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n\n return accuracy + proximity / distance;\n}\n\nfunction convertMaskToIndices() {\n var matchmask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var minMatchCharLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Config.minMatchCharLength;\n var indices = [];\n var start = -1;\n var end = -1;\n var i = 0;\n\n for (var len = matchmask.length; i < len; i += 1) {\n var match = matchmask[i];\n\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n\n start = -1;\n }\n } // (i-1 - start) + 1 => i - start\n\n\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices;\n} // Machine word size\n\n\nvar MAX_BITS = 32;\n\nfunction search(text, pattern, patternAlphabet) {\n var _ref5 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref5$location = _ref5.location,\n location = _ref5$location === void 0 ? Config.location : _ref5$location,\n _ref5$distance = _ref5.distance,\n distance = _ref5$distance === void 0 ? Config.distance : _ref5$distance,\n _ref5$threshold = _ref5.threshold,\n threshold = _ref5$threshold === void 0 ? Config.threshold : _ref5$threshold,\n _ref5$findAllMatches = _ref5.findAllMatches,\n findAllMatches = _ref5$findAllMatches === void 0 ? Config.findAllMatches : _ref5$findAllMatches,\n _ref5$minMatchCharLen = _ref5.minMatchCharLength,\n minMatchCharLength = _ref5$minMatchCharLen === void 0 ? Config.minMatchCharLength : _ref5$minMatchCharLen,\n _ref5$includeMatches = _ref5.includeMatches,\n includeMatches = _ref5$includeMatches === void 0 ? Config.includeMatches : _ref5$includeMatches,\n _ref5$ignoreLocation = _ref5.ignoreLocation,\n ignoreLocation = _ref5$ignoreLocation === void 0 ? Config.ignoreLocation : _ref5$ignoreLocation;\n\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS));\n }\n\n var patternLen = pattern.length; // Set starting location at beginning text and initialize the alphabet.\n\n var textLen = text.length; // Handle the case when location > text.length\n\n var expectedLocation = Math.max(0, Math.min(location, textLen)); // Highest score beyond which we give up.\n\n var currentThreshold = threshold; // Is there a nearby exact match? (speedup)\n\n var bestLocation = expectedLocation; // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n\n var computeMatches = minMatchCharLength > 1 || includeMatches; // A mask of the matches, used for building the indices\n\n var matchMask = computeMatches ? Array(textLen) : [];\n var index; // Get all exact matches, here for speed up\n\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n var score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation: expectedLocation,\n distance: distance,\n ignoreLocation: ignoreLocation\n });\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n var i = 0;\n\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n } // Reset the best location\n\n\n bestLocation = -1;\n var lastBitArr = [];\n var finalScore = 1;\n var binMax = patternLen + textLen;\n var mask = 1 << patternLen - 1;\n\n for (var _i = 0; _i < patternLen; _i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n var binMin = 0;\n var binMid = binMax;\n\n while (binMin < binMid) {\n var _score2 = computeScore$1(pattern, {\n errors: _i,\n currentLocation: expectedLocation + binMid,\n expectedLocation: expectedLocation,\n distance: distance,\n ignoreLocation: ignoreLocation\n });\n\n if (_score2 <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n } // Use the result from this iteration as the maximum for the next.\n\n\n binMax = binMid;\n var start = Math.max(1, expectedLocation - binMid + 1);\n var finish = findAllMatches ? textLen : Math.min(expectedLocation + binMid, textLen) + patternLen; // Initialize the bit array\n\n var bitArr = Array(finish + 2);\n bitArr[finish + 1] = (1 << _i) - 1;\n\n for (var j = finish; j >= start; j -= 1) {\n var currentLocation = j - 1;\n var charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n } // First pass: exact match\n\n\n bitArr[j] = (bitArr[j + 1] << 1 | 1) & charMatch; // Subsequent passes: fuzzy match\n\n if (_i) {\n bitArr[j] |= (lastBitArr[j + 1] | lastBitArr[j]) << 1 | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: _i,\n currentLocation: currentLocation,\n expectedLocation: expectedLocation,\n distance: distance,\n ignoreLocation: ignoreLocation\n }); // This match will almost certainly be better than any existing match.\n // But check anyway.\n\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation; // Already passed `loc`, downhill from here on in.\n\n if (bestLocation <= expectedLocation) {\n break;\n } // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n\n\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n } // No hope for a (better) match at greater error levels.\n\n\n var _score = computeScore$1(pattern, {\n errors: _i + 1,\n currentLocation: expectedLocation,\n expectedLocation: expectedLocation,\n distance: distance,\n ignoreLocation: ignoreLocation\n });\n\n if (_score > currentThreshold) {\n break;\n }\n\n lastBitArr = bitArr;\n }\n\n var result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n var indices = convertMaskToIndices(matchMask, minMatchCharLength);\n\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result;\n}\n\nfunction createPatternAlphabet(pattern) {\n var mask = {};\n\n for (var i = 0, len = pattern.length; i < len; i += 1) {\n var char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | 1 << len - i - 1;\n }\n\n return mask;\n}\n\nvar BitapSearch = /*#__PURE__*/function () {\n function BitapSearch(pattern) {\n var _this5 = this;\n\n var _ref6 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref6$location = _ref6.location,\n location = _ref6$location === void 0 ? Config.location : _ref6$location,\n _ref6$threshold = _ref6.threshold,\n threshold = _ref6$threshold === void 0 ? Config.threshold : _ref6$threshold,\n _ref6$distance = _ref6.distance,\n distance = _ref6$distance === void 0 ? Config.distance : _ref6$distance,\n _ref6$includeMatches = _ref6.includeMatches,\n includeMatches = _ref6$includeMatches === void 0 ? Config.includeMatches : _ref6$includeMatches,\n _ref6$findAllMatches = _ref6.findAllMatches,\n findAllMatches = _ref6$findAllMatches === void 0 ? Config.findAllMatches : _ref6$findAllMatches,\n _ref6$minMatchCharLen = _ref6.minMatchCharLength,\n minMatchCharLength = _ref6$minMatchCharLen === void 0 ? Config.minMatchCharLength : _ref6$minMatchCharLen,\n _ref6$isCaseSensitive = _ref6.isCaseSensitive,\n isCaseSensitive = _ref6$isCaseSensitive === void 0 ? Config.isCaseSensitive : _ref6$isCaseSensitive,\n _ref6$ignoreLocation = _ref6.ignoreLocation,\n ignoreLocation = _ref6$ignoreLocation === void 0 ? Config.ignoreLocation : _ref6$ignoreLocation;\n\n _classCallCheck(this, BitapSearch);\n\n this.options = {\n location: location,\n threshold: threshold,\n distance: distance,\n includeMatches: includeMatches,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n isCaseSensitive: isCaseSensitive,\n ignoreLocation: ignoreLocation\n };\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.chunks = [];\n\n if (!this.pattern.length) {\n return;\n }\n\n var addChunk = function addChunk(pattern, startIndex) {\n _this5.chunks.push({\n pattern: pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex: startIndex\n });\n };\n\n var len = this.pattern.length;\n\n if (len > MAX_BITS) {\n var i = 0;\n var remainder = len % MAX_BITS;\n var end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n var startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n _createClass(BitapSearch, [{\n key: \"searchIn\",\n value: function searchIn(text) {\n var _this$options = this.options,\n isCaseSensitive = _this$options.isCaseSensitive,\n includeMatches = _this$options.includeMatches;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n } // Exact match\n\n\n if (this.pattern === text) {\n var _result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n _result.indices = [[0, text.length - 1]];\n }\n\n return _result;\n } // Otherwise, use Bitap algorithm\n\n\n var _this$options2 = this.options,\n location = _this$options2.location,\n distance = _this$options2.distance,\n threshold = _this$options2.threshold,\n findAllMatches = _this$options2.findAllMatches,\n minMatchCharLength = _this$options2.minMatchCharLength,\n ignoreLocation = _this$options2.ignoreLocation;\n var allIndices = [];\n var totalScore = 0;\n var hasMatches = false;\n this.chunks.forEach(function (_ref7) {\n var pattern = _ref7.pattern,\n alphabet = _ref7.alphabet,\n startIndex = _ref7.startIndex;\n\n var _search = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance: distance,\n threshold: threshold,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n includeMatches: includeMatches,\n ignoreLocation: ignoreLocation\n }),\n isMatch = _search.isMatch,\n score = _search.score,\n indices = _search.indices;\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [].concat(_toConsumableArray(allIndices), _toConsumableArray(indices));\n }\n });\n var result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result;\n }\n }]);\n\n return BitapSearch;\n}();\n\nvar BaseMatch = /*#__PURE__*/function () {\n function BaseMatch(pattern) {\n _classCallCheck(this, BaseMatch);\n\n this.pattern = pattern;\n }\n\n _createClass(BaseMatch, [{\n key: \"search\",\n value: function\n /*text*/\n search() {}\n }], [{\n key: \"isMultiMatch\",\n value: function isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex);\n }\n }, {\n key: \"isSingleMatch\",\n value: function isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex);\n }\n }]);\n\n return BaseMatch;\n}();\n\nfunction getMatch(pattern, exp) {\n var matches = pattern.match(exp);\n return matches ? matches[1] : null;\n} // Token: 'file\n\n\nvar ExactMatch = /*#__PURE__*/function (_BaseMatch) {\n _inherits(ExactMatch, _BaseMatch);\n\n var _super = _createSuper(ExactMatch);\n\n function ExactMatch(pattern) {\n _classCallCheck(this, ExactMatch);\n\n return _super.call(this, pattern);\n }\n\n _createClass(ExactMatch, [{\n key: \"search\",\n value: function search(text) {\n var isMatch = text === this.pattern;\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'exact';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^=\"(.*)\"$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^=(.*)$/;\n }\n }]);\n\n return ExactMatch;\n}(BaseMatch); // Token: !fire\n\n\nvar InverseExactMatch = /*#__PURE__*/function (_BaseMatch2) {\n _inherits(InverseExactMatch, _BaseMatch2);\n\n var _super2 = _createSuper(InverseExactMatch);\n\n function InverseExactMatch(pattern) {\n _classCallCheck(this, InverseExactMatch);\n\n return _super2.call(this, pattern);\n }\n\n _createClass(InverseExactMatch, [{\n key: \"search\",\n value: function search(text) {\n var index = text.indexOf(this.pattern);\n var isMatch = index === -1;\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'inverse-exact';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^!\"(.*)\"$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^!(.*)$/;\n }\n }]);\n\n return InverseExactMatch;\n}(BaseMatch); // Token: ^file\n\n\nvar PrefixExactMatch = /*#__PURE__*/function (_BaseMatch3) {\n _inherits(PrefixExactMatch, _BaseMatch3);\n\n var _super3 = _createSuper(PrefixExactMatch);\n\n function PrefixExactMatch(pattern) {\n _classCallCheck(this, PrefixExactMatch);\n\n return _super3.call(this, pattern);\n }\n\n _createClass(PrefixExactMatch, [{\n key: \"search\",\n value: function search(text) {\n var isMatch = text.startsWith(this.pattern);\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'prefix-exact';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^\\^\"(.*)\"$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^\\^(.*)$/;\n }\n }]);\n\n return PrefixExactMatch;\n}(BaseMatch); // Token: !^fire\n\n\nvar InversePrefixExactMatch = /*#__PURE__*/function (_BaseMatch4) {\n _inherits(InversePrefixExactMatch, _BaseMatch4);\n\n var _super4 = _createSuper(InversePrefixExactMatch);\n\n function InversePrefixExactMatch(pattern) {\n _classCallCheck(this, InversePrefixExactMatch);\n\n return _super4.call(this, pattern);\n }\n\n _createClass(InversePrefixExactMatch, [{\n key: \"search\",\n value: function search(text) {\n var isMatch = !text.startsWith(this.pattern);\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'inverse-prefix-exact';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^!\\^\"(.*)\"$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^!\\^(.*)$/;\n }\n }]);\n\n return InversePrefixExactMatch;\n}(BaseMatch); // Token: .file$\n\n\nvar SuffixExactMatch = /*#__PURE__*/function (_BaseMatch5) {\n _inherits(SuffixExactMatch, _BaseMatch5);\n\n var _super5 = _createSuper(SuffixExactMatch);\n\n function SuffixExactMatch(pattern) {\n _classCallCheck(this, SuffixExactMatch);\n\n return _super5.call(this, pattern);\n }\n\n _createClass(SuffixExactMatch, [{\n key: \"search\",\n value: function search(text) {\n var isMatch = text.endsWith(this.pattern);\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'suffix-exact';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^\"(.*)\"\\$$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^(.*)\\$$/;\n }\n }]);\n\n return SuffixExactMatch;\n}(BaseMatch); // Token: !.file$\n\n\nvar InverseSuffixExactMatch = /*#__PURE__*/function (_BaseMatch6) {\n _inherits(InverseSuffixExactMatch, _BaseMatch6);\n\n var _super6 = _createSuper(InverseSuffixExactMatch);\n\n function InverseSuffixExactMatch(pattern) {\n _classCallCheck(this, InverseSuffixExactMatch);\n\n return _super6.call(this, pattern);\n }\n\n _createClass(InverseSuffixExactMatch, [{\n key: \"search\",\n value: function search(text) {\n var isMatch = !text.endsWith(this.pattern);\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'inverse-suffix-exact';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^!\"(.*)\"\\$$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^!(.*)\\$$/;\n }\n }]);\n\n return InverseSuffixExactMatch;\n}(BaseMatch);\n\nvar FuzzyMatch = /*#__PURE__*/function (_BaseMatch7) {\n _inherits(FuzzyMatch, _BaseMatch7);\n\n var _super7 = _createSuper(FuzzyMatch);\n\n function FuzzyMatch(pattern) {\n var _this6;\n\n var _ref8 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref8$location = _ref8.location,\n location = _ref8$location === void 0 ? Config.location : _ref8$location,\n _ref8$threshold = _ref8.threshold,\n threshold = _ref8$threshold === void 0 ? Config.threshold : _ref8$threshold,\n _ref8$distance = _ref8.distance,\n distance = _ref8$distance === void 0 ? Config.distance : _ref8$distance,\n _ref8$includeMatches = _ref8.includeMatches,\n includeMatches = _ref8$includeMatches === void 0 ? Config.includeMatches : _ref8$includeMatches,\n _ref8$findAllMatches = _ref8.findAllMatches,\n findAllMatches = _ref8$findAllMatches === void 0 ? Config.findAllMatches : _ref8$findAllMatches,\n _ref8$minMatchCharLen = _ref8.minMatchCharLength,\n minMatchCharLength = _ref8$minMatchCharLen === void 0 ? Config.minMatchCharLength : _ref8$minMatchCharLen,\n _ref8$isCaseSensitive = _ref8.isCaseSensitive,\n isCaseSensitive = _ref8$isCaseSensitive === void 0 ? Config.isCaseSensitive : _ref8$isCaseSensitive,\n _ref8$ignoreLocation = _ref8.ignoreLocation,\n ignoreLocation = _ref8$ignoreLocation === void 0 ? Config.ignoreLocation : _ref8$ignoreLocation;\n\n _classCallCheck(this, FuzzyMatch);\n\n _this6 = _super7.call(this, pattern);\n _this6._bitapSearch = new BitapSearch(pattern, {\n location: location,\n threshold: threshold,\n distance: distance,\n includeMatches: includeMatches,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n isCaseSensitive: isCaseSensitive,\n ignoreLocation: ignoreLocation\n });\n return _this6;\n }\n\n _createClass(FuzzyMatch, [{\n key: \"search\",\n value: function search(text) {\n return this._bitapSearch.searchIn(text);\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'fuzzy';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^\"(.*)\"$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^(.*)$/;\n }\n }]);\n\n return FuzzyMatch;\n}(BaseMatch); // Token: 'file\n\n\nvar IncludeMatch = /*#__PURE__*/function (_BaseMatch8) {\n _inherits(IncludeMatch, _BaseMatch8);\n\n var _super8 = _createSuper(IncludeMatch);\n\n function IncludeMatch(pattern) {\n _classCallCheck(this, IncludeMatch);\n\n return _super8.call(this, pattern);\n }\n\n _createClass(IncludeMatch, [{\n key: \"search\",\n value: function search(text) {\n var location = 0;\n var index;\n var indices = [];\n var patternLen = this.pattern.length; // Get all exact matches\n\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n var isMatch = !!indices.length;\n return {\n isMatch: isMatch,\n score: isMatch ? 0 : 1,\n indices: indices\n };\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'include';\n }\n }, {\n key: \"multiRegex\",\n get: function get() {\n return /^'\"(.*)\"$/;\n }\n }, {\n key: \"singleRegex\",\n get: function get() {\n return /^'(.*)$/;\n }\n }]);\n\n return IncludeMatch;\n}(BaseMatch); // ❗Order is important. DO NOT CHANGE.\n\n\nvar searchers = [ExactMatch, IncludeMatch, PrefixExactMatch, InversePrefixExactMatch, InverseSuffixExactMatch, SuffixExactMatch, InverseExactMatch, FuzzyMatch];\nvar searchersLen = searchers.length; // Regex to split by spaces, but keep anything in quotes together\n\nvar SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nvar OR_TOKEN = '|'; // Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\n\nfunction parseQuery(pattern) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return pattern.split(OR_TOKEN).map(function (item) {\n var query = item.trim().split(SPACE_RE).filter(function (item) {\n return item && !!item.trim();\n });\n var results = [];\n\n for (var i = 0, len = query.length; i < len; i += 1) {\n var queryItem = query[i]; // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n\n var found = false;\n var idx = -1;\n\n while (!found && ++idx < searchersLen) {\n var searcher = searchers[idx];\n var token = searcher.isMultiMatch(queryItem);\n\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue;\n } // 2. Handle single query matches (i.e, once that are *not* quoted)\n\n\n idx = -1;\n\n while (++idx < searchersLen) {\n var _searcher = searchers[idx];\n\n var _token = _searcher.isSingleMatch(queryItem);\n\n if (_token) {\n results.push(new _searcher(_token, options));\n break;\n }\n }\n }\n\n return results;\n });\n} // These extended matchers can return an array of matches, as opposed\n// to a singl match\n\n\nvar MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\n\nvar ExtendedSearch = /*#__PURE__*/function () {\n function ExtendedSearch(pattern) {\n var _ref9 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref9$isCaseSensitive = _ref9.isCaseSensitive,\n isCaseSensitive = _ref9$isCaseSensitive === void 0 ? Config.isCaseSensitive : _ref9$isCaseSensitive,\n _ref9$includeMatches = _ref9.includeMatches,\n includeMatches = _ref9$includeMatches === void 0 ? Config.includeMatches : _ref9$includeMatches,\n _ref9$minMatchCharLen = _ref9.minMatchCharLength,\n minMatchCharLength = _ref9$minMatchCharLen === void 0 ? Config.minMatchCharLength : _ref9$minMatchCharLen,\n _ref9$ignoreLocation = _ref9.ignoreLocation,\n ignoreLocation = _ref9$ignoreLocation === void 0 ? Config.ignoreLocation : _ref9$ignoreLocation,\n _ref9$findAllMatches = _ref9.findAllMatches,\n findAllMatches = _ref9$findAllMatches === void 0 ? Config.findAllMatches : _ref9$findAllMatches,\n _ref9$location = _ref9.location,\n location = _ref9$location === void 0 ? Config.location : _ref9$location,\n _ref9$threshold = _ref9.threshold,\n threshold = _ref9$threshold === void 0 ? Config.threshold : _ref9$threshold,\n _ref9$distance = _ref9.distance,\n distance = _ref9$distance === void 0 ? Config.distance : _ref9$distance;\n\n _classCallCheck(this, ExtendedSearch);\n\n this.query = null;\n this.options = {\n isCaseSensitive: isCaseSensitive,\n includeMatches: includeMatches,\n minMatchCharLength: minMatchCharLength,\n findAllMatches: findAllMatches,\n ignoreLocation: ignoreLocation,\n location: location,\n threshold: threshold,\n distance: distance\n };\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n _createClass(ExtendedSearch, [{\n key: \"searchIn\",\n value: function searchIn(text) {\n var query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n };\n }\n\n var _this$options3 = this.options,\n includeMatches = _this$options3.includeMatches,\n isCaseSensitive = _this$options3.isCaseSensitive;\n text = isCaseSensitive ? text : text.toLowerCase();\n var numMatches = 0;\n var allIndices = [];\n var totalScore = 0; // ORs\n\n for (var i = 0, qLen = query.length; i < qLen; i += 1) {\n var _searchers = query[i]; // Reset indices\n\n allIndices.length = 0;\n numMatches = 0; // ANDs\n\n for (var j = 0, pLen = _searchers.length; j < pLen; j += 1) {\n var searcher = _searchers[j];\n\n var _searcher$search = searcher.search(text),\n isMatch = _searcher$search.isMatch,\n indices = _searcher$search.indices,\n score = _searcher$search.score;\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n\n if (includeMatches) {\n var type = searcher.constructor.type;\n\n if (MultiMatchSet.has(type)) {\n allIndices = [].concat(_toConsumableArray(allIndices), _toConsumableArray(indices));\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break;\n }\n } // OR condition, so if TRUE, return\n\n\n if (numMatches) {\n var result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result;\n }\n } // Nothing was matched\n\n\n return {\n isMatch: false,\n score: 1\n };\n }\n }], [{\n key: \"condition\",\n value: function condition(_, options) {\n return options.useExtendedSearch;\n }\n }]);\n\n return ExtendedSearch;\n}();\n\nvar registeredSearchers = [];\n\nfunction register() {\n registeredSearchers.push.apply(registeredSearchers, arguments);\n}\n\nfunction createSearcher(pattern, options) {\n for (var i = 0, len = registeredSearchers.length; i < len; i += 1) {\n var searcherClass = registeredSearchers[i];\n\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options);\n }\n }\n\n return new BitapSearch(pattern, options);\n}\n\nvar LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\nvar KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nvar isExpression = function isExpression(query) {\n return !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n};\n\nvar isPath = function isPath(query) {\n return !!query[KeyType.PATH];\n};\n\nvar isLeaf = function isLeaf(query) {\n return !isArray(query) && isObject(query) && !isExpression(query);\n};\n\nvar convertToExplicit = function convertToExplicit(query) {\n return _defineProperty({}, LogicalOperator.AND, Object.keys(query).map(function (key) {\n return _defineProperty({}, key, query[key]);\n }));\n}; // When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\n\n\nfunction parse(query, options) {\n var _ref12 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref12$auto = _ref12.auto,\n auto = _ref12$auto === void 0 ? true : _ref12$auto;\n\n var next = function next(query) {\n var keys = Object.keys(query);\n var isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query));\n }\n\n if (isLeaf(query)) {\n var key = isQueryPath ? query[KeyType.PATH] : keys[0];\n var pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key));\n }\n\n var obj = {\n keyId: createKeyId(key),\n pattern: pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj;\n }\n\n var node = {\n children: [],\n operator: keys[0]\n };\n keys.forEach(function (key) {\n var value = query[key];\n\n if (isArray(value)) {\n value.forEach(function (item) {\n node.children.push(next(item));\n });\n }\n });\n return node;\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query);\n} // Practical scoring function\n\n\nfunction computeScore(results, _ref13) {\n var _ref13$ignoreFieldNor = _ref13.ignoreFieldNorm,\n ignoreFieldNorm = _ref13$ignoreFieldNor === void 0 ? Config.ignoreFieldNorm : _ref13$ignoreFieldNor;\n results.forEach(function (result) {\n var totalScore = 1;\n result.matches.forEach(function (_ref14) {\n var key = _ref14.key,\n norm = _ref14.norm,\n score = _ref14.score;\n var weight = key ? key.weight : null;\n totalScore *= Math.pow(score === 0 && weight ? Number.EPSILON : score, (weight || 1) * (ignoreFieldNorm ? 1 : norm));\n });\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n var matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return;\n }\n\n matches.forEach(function (match) {\n if (!isDefined(match.indices) || !match.indices.length) {\n return;\n }\n\n var indices = match.indices,\n value = match.value;\n var obj = {\n indices: indices,\n value: value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(results, docs) {\n var _ref15 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref15$includeMatches = _ref15.includeMatches,\n includeMatches = _ref15$includeMatches === void 0 ? Config.includeMatches : _ref15$includeMatches,\n _ref15$includeScore = _ref15.includeScore,\n includeScore = _ref15$includeScore === void 0 ? Config.includeScore : _ref15$includeScore;\n\n var transformers = [];\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n return results.map(function (result) {\n var idx = result.idx;\n var data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach(function (transformer) {\n transformer(result, data);\n });\n }\n\n return data;\n });\n}\n\nvar Fuse = /*#__PURE__*/function () {\n function Fuse(docs) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var index = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, Fuse);\n\n this.options = _objectSpread(_objectSpread({}, Config), options);\n\n if (this.options.useExtendedSearch && !true) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE);\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n this.setCollection(docs, index);\n }\n\n _createClass(Fuse, [{\n key: \"setCollection\",\n value: function setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE);\n }\n\n this._myIndex = index || createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n }, {\n key: \"add\",\n value: function add(doc) {\n if (!isDefined(doc)) {\n return;\n }\n\n this._docs.push(doc);\n\n this._myIndex.add(doc);\n }\n }, {\n key: \"remove\",\n value: function remove() {\n var predicate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function\n /* doc, idx */\n () {\n return false;\n };\n var results = [];\n\n for (var i = 0, len = this._docs.length; i < len; i += 1) {\n var doc = this._docs[i];\n\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n results.push(doc);\n }\n }\n\n return results;\n }\n }, {\n key: \"removeAt\",\n value: function removeAt(idx) {\n this._docs.splice(idx, 1);\n\n this._myIndex.removeAt(idx);\n }\n }, {\n key: \"getIndex\",\n value: function getIndex() {\n return this._myIndex;\n }\n }, {\n key: \"search\",\n value: function search(query) {\n var _ref16 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref16$limit = _ref16.limit,\n limit = _ref16$limit === void 0 ? -1 : _ref16$limit;\n\n var _this$options4 = this.options,\n includeMatches = _this$options4.includeMatches,\n includeScore = _this$options4.includeScore,\n shouldSort = _this$options4.shouldSort,\n sortFn = _this$options4.sortFn,\n ignoreFieldNorm = _this$options4.ignoreFieldNorm;\n var results = isString(query) ? isString(this._docs[0]) ? this._searchStringList(query) : this._searchObjectList(query) : this._searchLogical(query);\n computeScore(results, {\n ignoreFieldNorm: ignoreFieldNorm\n });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches: includeMatches,\n includeScore: includeScore\n });\n }\n }, {\n key: \"_searchStringList\",\n value: function _searchStringList(query) {\n var searcher = createSearcher(query, this.options);\n var records = this._myIndex.records;\n var results = []; // Iterate over every string in the index\n\n records.forEach(function (_ref17) {\n var text = _ref17.v,\n idx = _ref17.i,\n norm = _ref17.n;\n\n if (!isDefined(text)) {\n return;\n }\n\n var _searcher$searchIn = searcher.searchIn(text),\n isMatch = _searcher$searchIn.isMatch,\n score = _searcher$searchIn.score,\n indices = _searcher$searchIn.indices;\n\n if (isMatch) {\n results.push({\n item: text,\n idx: idx,\n matches: [{\n score: score,\n value: text,\n norm: norm,\n indices: indices\n }]\n });\n }\n });\n return results;\n }\n }, {\n key: \"_searchLogical\",\n value: function _searchLogical(query) {\n var _this7 = this;\n\n var expression = parse(query, this.options);\n\n var evaluate = function evaluate(node, item, idx) {\n if (!node.children) {\n var keyId = node.keyId,\n searcher = node.searcher;\n\n var matches = _this7._findMatches({\n key: _this7._keyStore.get(keyId),\n value: _this7._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher: searcher\n });\n\n if (matches && matches.length) {\n return [{\n idx: idx,\n item: item,\n matches: matches\n }];\n }\n\n return [];\n }\n\n var res = [];\n\n for (var i = 0, len = node.children.length; i < len; i += 1) {\n var child = node.children[i];\n var result = evaluate(child, item, idx);\n\n if (result.length) {\n res.push.apply(res, _toConsumableArray(result));\n } else if (node.operator === LogicalOperator.AND) {\n return [];\n }\n }\n\n return res;\n };\n\n var records = this._myIndex.records;\n var resultMap = {};\n var results = [];\n records.forEach(function (_ref18) {\n var item = _ref18.$,\n idx = _ref18.i;\n\n if (isDefined(item)) {\n var expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = {\n idx: idx,\n item: item,\n matches: []\n };\n results.push(resultMap[idx]);\n }\n\n expResults.forEach(function (_ref19) {\n var _resultMap$idx$matche;\n\n var matches = _ref19.matches;\n\n (_resultMap$idx$matche = resultMap[idx].matches).push.apply(_resultMap$idx$matche, _toConsumableArray(matches));\n });\n }\n }\n });\n return results;\n }\n }, {\n key: \"_searchObjectList\",\n value: function _searchObjectList(query) {\n var _this8 = this;\n\n var searcher = createSearcher(query, this.options);\n var _this$_myIndex = this._myIndex,\n keys = _this$_myIndex.keys,\n records = _this$_myIndex.records;\n var results = []; // List is Array\n\n records.forEach(function (_ref20) {\n var item = _ref20.$,\n idx = _ref20.i;\n\n if (!isDefined(item)) {\n return;\n }\n\n var matches = []; // Iterate over every key (i.e, path), and fetch the value at that key\n\n keys.forEach(function (key, keyIndex) {\n matches.push.apply(matches, _toConsumableArray(_this8._findMatches({\n key: key,\n value: item[keyIndex],\n searcher: searcher\n })));\n });\n\n if (matches.length) {\n results.push({\n idx: idx,\n item: item,\n matches: matches\n });\n }\n });\n return results;\n }\n }, {\n key: \"_findMatches\",\n value: function _findMatches(_ref21) {\n var key = _ref21.key,\n value = _ref21.value,\n searcher = _ref21.searcher;\n\n if (!isDefined(value)) {\n return [];\n }\n\n var matches = [];\n\n if (isArray(value)) {\n value.forEach(function (_ref22) {\n var text = _ref22.v,\n idx = _ref22.i,\n norm = _ref22.n;\n\n if (!isDefined(text)) {\n return;\n }\n\n var _searcher$searchIn2 = searcher.searchIn(text),\n isMatch = _searcher$searchIn2.isMatch,\n score = _searcher$searchIn2.score,\n indices = _searcher$searchIn2.indices;\n\n if (isMatch) {\n matches.push({\n score: score,\n key: key,\n value: text,\n idx: idx,\n norm: norm,\n indices: indices\n });\n }\n });\n } else {\n var text = value.v,\n _norm = value.n;\n\n var _searcher$searchIn3 = searcher.searchIn(text),\n isMatch = _searcher$searchIn3.isMatch,\n score = _searcher$searchIn3.score,\n indices = _searcher$searchIn3.indices;\n\n if (isMatch) {\n matches.push({\n score: score,\n key: key,\n value: text,\n norm: _norm,\n indices: indices\n });\n }\n }\n\n return matches;\n }\n }]);\n\n return Fuse;\n}();\n\nFuse.version = '6.6.2';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n{\n Fuse.parseQuery = parse;\n}\n{\n register(ExtendedSearch);\n}\nexport { Fuse as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nfunction ReactDialogStyle(styles) {\n var background = _typeof(styles) === 'object' && styles.background ? styles.background : 'rgba(0,0,0,0.4)';\n return \"\\n .ReactDialog {\\n bottom: 0;\\n display: flex;\\n height: 100%;\\n height: 100vh;\\n left: 0;\\n min-height: 100%;\\n min-height: 100vh;\\n overflow: hidden;\\n position: fixed;\\n right: 0;\\n top: 0;\\n width: 100%;\\n width: 100vw;\\n }\\n\\n .ReactDialogInner {\\n align-items: center;\\n display: flex;\\n flex: 1;\\n justify-content: center;\\n }\\n\\n .ReactDialogBackground {\\n background: \".concat(background, \";\\n bottom: 0;\\n display: block;\\n height: 100%;\\n left: 0;\\n opacity: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n transition: opacity 0.4s ease;\\n width: 100%;\\n }\\n\\n .ReactDialog.ReactDialogOpen .ReactDialogBackground {\\n opacity: 1;\\n }\\n\\n .ReactDialogAnimation {\\n display: inline-block;\\n position: relative;\\n opacity: 0;\\n top: -17vh;\\n transition: opacity 0.4s ease, top 0.4s ease;\\n }\\n\\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\\n opacity: 1.0;\\n top: -5vh;\\n }\\n \");\n}\n\nvar _jsxFileName$1 = \"/Users/sebastian/Work/DePay/react-dialog/src/components/Dialog.jsx\";\n\nvar Dialog = /*#__PURE__*/function (_React$Component) {\n _inherits(Dialog, _React$Component);\n\n var _super = _createSuper(Dialog);\n\n function Dialog(props) {\n var _this;\n\n _classCallCheck(this, Dialog);\n\n _this = _super.call(this, props);\n _this.handler = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.state = {\n open: true\n };\n return _this;\n }\n\n _createClass(Dialog, [{\n key: \"closeDialog\",\n value: function closeDialog() {\n this.props.close();\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Escape') {\n this.closeDialog();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.open === false && prevProps.open === true) {\n this.setState({\n open: false\n });\n }\n }\n }, {\n key: \"onClickBackground\",\n value: function onClickBackground(event) {\n this.closeDialog();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (this.props.animate === false) {\n this.setState({\n open: true\n });\n } else {\n // make sure state is false first before opening the dialog\n // to ensure opening is animated\n this.setState({\n open: false\n }, function () {\n setTimeout(function () {\n _this2.setState({\n open: true\n });\n }, 10);\n });\n }\n\n this.props.document.addEventListener('keydown', this.handler, true);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.document.removeEventListener('keydown', this.handler, true);\n }\n }, {\n key: \"render\",\n value: function render() {\n var classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];\n var style = ReactDialogStyle({\n background: this.props.background\n });\n return /*#__PURE__*/React.createElement('div', {\n key: this.props.dialogKey,\n className: classNames.join(' '),\n __self: this,\n __source: {\n fileName: _jsxFileName$1,\n lineNumber: 59\n }\n }, /*#__PURE__*/React.createElement('style', {\n __self: this,\n __source: {\n fileName: _jsxFileName$1,\n lineNumber: 60\n }\n }, style), /*#__PURE__*/React.createElement('div', {\n className: \"ReactDialogInner\",\n __self: this,\n __source: {\n fileName: _jsxFileName$1,\n lineNumber: 61\n }\n }, /*#__PURE__*/React.createElement('div', {\n className: \"ReactDialogBackground\",\n onClick: this.onClickBackground.bind(this),\n __self: this,\n __source: {\n fileName: _jsxFileName$1,\n lineNumber: 62\n }\n }), this.props.children));\n }\n }]);\n\n return Dialog;\n}(React.Component);\n\nvar _jsxFileName = \"/Users/sebastian/Work/DePay/react-dialog/src/index.jsx\";\n\nvar ReactDialog = /*#__PURE__*/function (_React$Component2) {\n _inherits(ReactDialog, _React$Component2);\n\n var _super2 = _createSuper(ReactDialog);\n\n function ReactDialog(props) {\n var _this3;\n\n _classCallCheck(this, ReactDialog);\n\n _this3 = _super2.call(this, props);\n _this3.state = {\n open: props.open\n };\n return _this3;\n }\n\n _createClass(ReactDialog, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this4 = this;\n\n if (this.props.open === false && prevProps.open === true) {\n setTimeout(function () {\n _this4.setState({\n open: false\n });\n }, 400);\n } else if (this.props.open === true && prevProps.open === false) {\n this.setState({\n open: true\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _document = this.props.document || document;\n\n var container = this.props.container || _document.body;\n\n if (this.state.open) {\n return /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement(Dialog, {\n background: this.props.background,\n close: this.props.close,\n document: _document,\n open: this.props.open,\n animate: this.props.animate,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 29\n }\n }, this.props.children), container);\n } else {\n // enforces unmount\n return null;\n }\n }\n }]);\n\n return ReactDialog;\n}(React.Component);\n\nexport { ReactDialog };","function _classCallCheck2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction __defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass2(Constructor, protoProps, staticProps) { if (protoProps) __defineProperties(Constructor.prototype, protoProps); if (staticProps) __defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits2(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf2(subClass, superClass); }\n\nfunction _setPrototypeOf2(o, p) { _setPrototypeOf2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf2(o, p); }\n\nfunction _createSuper2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct2(); return function _createSuperInternal() { var Super = _getPrototypeOf2(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf2(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn2(this, result); }; }\n\nfunction _possibleConstructorReturn2(self, call) { if (call && (_typeof2(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized2(self); }\n\nfunction _assertThisInitialized2(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf2(o) { _getPrototypeOf2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf2(o); }\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof2(obj); }\n\nimport { wallets, getWallets } from '@depay/web3-wallets';\nimport Blockchains from '@depay/web3-blockchains';\nimport React, { useState, useContext, useEffect, useCallback, useMemo, useRef } from 'react';\nimport { route, routers } from '@depay/web3-payments';\nimport copy from '@uiw/copy-to-clipboard';\nimport { NavigateStackContext, ReactDialogStack } from '@depay/react-dialog-stack';\nimport QRCodeStyling from 'qr-code-styling';\nimport Fuse from 'fuse.js';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport ReactDOM from 'react-dom';\nimport { ReactShadowDOM } from '@depay/react-shadow-dom';\nimport { setProviderEndpoints, request, getProvider } from '@depay/web3-client';\nimport { Currency } from '@depay/local-currency';\nimport { verify } from '@depay/js-verify-signature-web';\nimport Exchanges from '@depay/web3-exchanges';\nimport Token from '@depay/web3-tokens';\nimport { Decimal } from 'decimal.js';\nimport { ethers } from 'ethers';\nimport { TokenImage } from '@depay/react-token-image';\nimport { struct, u64, Buffer, PublicKey } from '@depay/solana-web3.js';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nvar supported = ['ethereum', 'bsc', 'polygon', 'solana', 'arbitrum', 'optimism', 'base', 'avalanche', 'gnosis', 'fantom', 'worldchain'];\nsupported.evm = ['ethereum', 'bsc', 'polygon', 'arbitrum', 'optimism', 'base', 'avalanche', 'gnosis', 'fantom', 'worldchain'];\nsupported.svm = ['solana'];\nsupported.solana = ['solana'];\n\nvar _wallets$CoinbaseEVM, _wallets$CoinbaseEVM$, _wallets$MetaMask, _wallets$MetaMask$inf, _wallets$PhantomSVM, _wallets$PhantomSVM$i, _wallets$TrustEVM, _wallets$TrustEVM$inf, _wallets$Binance, _wallets$Binance$info, _wallets$CryptoCom, _wallets$CryptoCom$in, _wallets$WorldApp, _wallets$WorldApp$inf, _wallets$Coin98EVM, _wallets$Coin98EVM$in, _wallets$BraveEVM, _wallets$BraveEVM$inf, _wallets$MagicEdenEVM, _wallets$MagicEdenEVM2, _wallets$Rabby, _wallets$Rabby$info, _wallets$Backpack, _wallets$Backpack$inf, _wallets$Glow, _wallets$Glow$info, _wallets$Solflare, _wallets$Solflare$inf, _wallets$OKXEVM, _wallets$OKXEVM$info, _wallets$HyperPay, _wallets$HyperPay$inf, _wallets$WindowEthere, _wallets$WindowEthere2, _Blockchains$solana, _wallets$WindowSolana, _wallets$WindowSolana2;\n\nvar allWallets = [{\n \"name\": \"Coinbase\",\n \"extensions\": [\"CoinbaseEVM\", \"CoinbaseSVM\"],\n \"desktop\": {\n \"qr\": \"WalletLink\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"cbwallet://dapp\",\n \"universal\": \"https://go.cb-w.com/dapp\",\n \"open\": function open() {\n return \"cbwallet://dapp?url=\".concat(encodeURIComponent(window.location.toString()));\n }\n },\n \"android\": {\n \"native\": \"cbwallet://dapp\",\n \"universal\": \"https://go.cb-w.com/dapp\",\n \"open\": function open() {\n return \"https://go.cb-w.com/dapp?cb_url=\".concat(encodeURIComponent(window.location.toString()));\n }\n }\n },\n \"logo\": (_wallets$CoinbaseEVM = wallets.CoinbaseEVM) === null || _wallets$CoinbaseEVM === void 0 ? void 0 : (_wallets$CoinbaseEVM$ = _wallets$CoinbaseEVM.info) === null || _wallets$CoinbaseEVM$ === void 0 ? void 0 : _wallets$CoinbaseEVM$.logo,\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"MetaMask\",\n \"extension\": \"MetaMask\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"metamask:\",\n \"universal\": \"https://metamask.app.link\",\n \"qr\": \"WalletConnectV2\",\n \"connect\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"metamask:\",\n \"universal\": \"https://metamask.app.link\",\n \"qr\": \"WalletConnectV2\",\n \"connect\": \"WalletConnectV2\"\n }\n },\n \"logo\": (_wallets$MetaMask = wallets.MetaMask) === null || _wallets$MetaMask === void 0 ? void 0 : (_wallets$MetaMask$inf = _wallets$MetaMask.info) === null || _wallets$MetaMask$inf === void 0 ? void 0 : _wallets$MetaMask$inf.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Phantom\",\n \"extensions\": [\"PhantomSVM\", \"PhantomEVM\"],\n \"desktop\": {\n \"solanaPay\": true,\n \"qr\": function qr() {\n return \"phantom://browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n }\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"phantom:\",\n \"open\": function open() {\n return \"https://phantom.app/ul/browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n },\n \"qr\": function qr() {\n return \"phantom://browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n },\n \"solanaPay\": true\n },\n \"android\": {\n \"native\": \"phantom:\",\n \"connect\": \"SolanaMobileWalletAdapter\",\n \"qr\": function qr() {\n return \"phantom://browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n },\n \"solanaPay\": true\n }\n },\n \"logo\": (_wallets$PhantomSVM = wallets.PhantomSVM) === null || _wallets$PhantomSVM === void 0 ? void 0 : (_wallets$PhantomSVM$i = _wallets$PhantomSVM.info) === null || _wallets$PhantomSVM$i === void 0 ? void 0 : _wallets$PhantomSVM$i.logo,\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"Trust Wallet\",\n \"extensions\": [\"TrustEVM\", \"TrustSVM\"],\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"trust:\",\n \"universal\": \"https://link.trustwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"trust:\",\n \"universal\": \"https://link.trustwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": (_wallets$TrustEVM = wallets.TrustEVM) === null || _wallets$TrustEVM === void 0 ? void 0 : (_wallets$TrustEVM$inf = _wallets$TrustEVM.info) === null || _wallets$TrustEVM$inf === void 0 ? void 0 : _wallets$TrustEVM$inf.logo,\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"Binance Wallet\",\n \"extension\": \"Binance\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bnc://app.binance.com/cedefi/\",\n \"universal\": \"https://app.binance.com/cedefi\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bnc://app.binance.com/cedefi/\",\n \"universal\": \"https://app.binance.com/cedefi\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": (_wallets$Binance = wallets.Binance) === null || _wallets$Binance === void 0 ? void 0 : (_wallets$Binance$info = _wallets$Binance.info) === null || _wallets$Binance$info === void 0 ? void 0 : _wallets$Binance$info.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Crypto.com | DeFi Wallet\",\n \"extension\": \"CryptoCom\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"dfw://\",\n \"universal\": \"https://wallet.crypto.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"dfw://\",\n \"universal\": \"https://wallet.crypto.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": (_wallets$CryptoCom = wallets.CryptoCom) === null || _wallets$CryptoCom === void 0 ? void 0 : (_wallets$CryptoCom$in = _wallets$CryptoCom.info) === null || _wallets$CryptoCom$in === void 0 ? void 0 : _wallets$CryptoCom$in.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"World App\",\n \"extension\": \"WorldApp\",\n \"logo\": (_wallets$WorldApp = wallets.WorldApp) === null || _wallets$WorldApp === void 0 ? void 0 : (_wallets$WorldApp$inf = _wallets$WorldApp.info) === null || _wallets$WorldApp$inf === void 0 ? void 0 : _wallets$WorldApp$inf.logo,\n \"autoSelect\": true,\n // if available\n \"blockchains\": [\"worldchain\"]\n}, {\n \"name\": \"Coin98\",\n \"extensions\": [\"Coin98EVM\", \"Coin98SVM\"],\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"coin98:\",\n \"universal\": \"https://coin98.services\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"coin98:\",\n \"universal\": \"https://coin98.services\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": (_wallets$Coin98EVM = wallets.Coin98EVM) === null || _wallets$Coin98EVM === void 0 ? void 0 : (_wallets$Coin98EVM$in = _wallets$Coin98EVM.info) === null || _wallets$Coin98EVM$in === void 0 ? void 0 : _wallets$Coin98EVM$in.logo,\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"Brave\",\n \"extensions\": [\"BraveEVM\", \"BraveSVM\"],\n \"logo\": (_wallets$BraveEVM = wallets.BraveEVM) === null || _wallets$BraveEVM === void 0 ? void 0 : (_wallets$BraveEVM$inf = _wallets$BraveEVM.info) === null || _wallets$BraveEVM$inf === void 0 ? void 0 : _wallets$BraveEVM$inf.logo,\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"Magic Eden\",\n \"extensions\": [\"MagicEdenEVM\", \"MagicEdenSVM\"],\n \"logo\": (_wallets$MagicEdenEVM = wallets.MagicEdenEVM) === null || _wallets$MagicEdenEVM === void 0 ? void 0 : (_wallets$MagicEdenEVM2 = _wallets$MagicEdenEVM.info) === null || _wallets$MagicEdenEVM2 === void 0 ? void 0 : _wallets$MagicEdenEVM2.logo,\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"Rainbow\",\n \"extension\": \"Rainbow\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"rainbow:\",\n \"universal\": \"https://rnbwapp.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"rainbow:\",\n \"universal\": \"https://rnbwapp.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/rainbow.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Uniswap\",\n \"extension\": \"Uniswap\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"uniswap:\",\n \"universal\": \"https://uniswap.org/app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"uniswap:\",\n \"universal\": \"https://uniswap.org/app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/uniswap_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Safe\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\",\n \"copyLink\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"safe\",\n \"universal\": \"https://app.safe.global\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"safe\",\n \"universal\": \"https://app.safe.global\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/safe.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Rabby\",\n \"extension\": \"Rabby\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": (_wallets$Rabby = wallets.Rabby) === null || _wallets$Rabby === void 0 ? void 0 : (_wallets$Rabby$info = _wallets$Rabby.info) === null || _wallets$Rabby$info === void 0 ? void 0 : _wallets$Rabby$info.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Kraken\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"krakenwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"krakenwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/kraken.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Backpack\",\n \"extension\": \"Backpack\",\n \"desktop\": {},\n \"mobile\": {\n \"ios\": {\n \"open\": function open() {\n return \"backpack://ul/v1/browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n }\n },\n \"android\": {\n \"open\": function open() {\n return \"backpack://ul/v1/browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n }\n }\n },\n \"logo\": (_wallets$Backpack = wallets.Backpack) === null || _wallets$Backpack === void 0 ? void 0 : (_wallets$Backpack$inf = _wallets$Backpack.info) === null || _wallets$Backpack$inf === void 0 ? void 0 : _wallets$Backpack$inf.logo,\n \"blockchains\": _toConsumableArray(supported.solana)\n}, {\n \"name\": \"Glow\",\n \"extension\": \"Glow\",\n \"desktop\": {\n \"qr\": function qr() {\n return window.location.toString();\n },\n \"solanaPay\": true\n },\n \"mobile\": {\n \"ios\": {\n \"qr\": function qr() {\n return window.location.toString();\n },\n \"solanaPay\": true\n },\n \"android\": {\n \"connect\": \"SolanaMobileWalletAdapter\",\n \"qr\": function qr() {\n return window.location.toString();\n },\n \"solanaPay\": true\n }\n },\n \"logo\": (_wallets$Glow = wallets.Glow) === null || _wallets$Glow === void 0 ? void 0 : (_wallets$Glow$info = _wallets$Glow.info) === null || _wallets$Glow$info === void 0 ? void 0 : _wallets$Glow$info.logo,\n \"blockchains\": _toConsumableArray(supported.solana)\n}, {\n \"name\": \"Solflare\",\n \"extension\": \"Solflare\",\n \"desktop\": {\n \"solanaPay\": true\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"solflare:\",\n \"open\": function open() {\n return \"https://solflare.com/ul/v1/browse/\".concat(encodeURIComponent(window.location.toString()), \"?ref=\").concat(encodeURIComponent(window.location.origin.toString()));\n },\n \"universal\": \"https://solflare.com/ul\",\n \"solanaPay\": true\n },\n \"android\": {\n \"native\": \"solflare:\",\n \"universal\": \"https://solflare.com/ul\",\n \"connect\": \"SolanaMobileWalletAdapter\",\n \"solanaPay\": true\n }\n },\n \"logo\": (_wallets$Solflare = wallets.Solflare) === null || _wallets$Solflare === void 0 ? void 0 : (_wallets$Solflare$inf = _wallets$Solflare.info) === null || _wallets$Solflare$inf === void 0 ? void 0 : _wallets$Solflare$inf.logo,\n \"blockchains\": _toConsumableArray(supported.solana)\n}, {\n \"name\": \"Family\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"familywallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"familywallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/family.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"imToken\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"imtokenv2:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"imtokenv2:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/imtoken.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"MEW wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"mewwallet:\",\n \"universal\": \"https://mewwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"mewwallet:\",\n \"universal\": \"https://mewwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/mew_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ONTO\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ontoprovider:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ontoprovider:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/onto.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Zerion\",\n \"desktop\": {\n \"native\": \"zerion://\",\n \"qr\": \"WalletConnectV2\",\n \"connect\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"zerion://\",\n \"universal\": \"https://wallet.zerion.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"zerion://\",\n \"universal\": \"https://wallet.zerion.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/zerion.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Spot\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"spot://\",\n \"universal\": \"https://spot.so\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"spot://\",\n \"universal\": \"https://spot.so\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/spot.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"BitGet (BitKeep)\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bitget://\",\n \"universal\": \"https://bkapp.vip\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bitget://\",\n \"universal\": \"https://bkapp.vip\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bitget.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Unstoppable Domains\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://unstoppabledomains.com/mobile\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://unstoppabledomains.com/mobile\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/unstoppable_domains.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Omni\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"omni:\",\n \"universal\": \"https://links.omni.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"omni:\",\n \"universal\": \"https://links.omni.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/omni.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"KEYRING PRO\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"keyring:\",\n \"universal\": \"https://keyring.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"keyring:\",\n \"universal\": \"https://keyring.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/keyring_pro.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"TP Wallet (TokenPocket)\",\n \"extension\": \"TokenPocket\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"tpoutside:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"tpoutside:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/token_pocket.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"BitPay\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bitpay:\",\n \"universal\": \"https://link.bitpay.com/wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bitpay:\",\n \"universal\": \"https://link.bitpay.com/wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bitpay.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"MathWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"mathwallet:\",\n \"universal\": \"https://www.mathwallet.org\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"mathwallet:\",\n \"universal\": \"https://www.mathwallet.org\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/math_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Ledger Live\",\n \"desktop\": {\n \"native\": \"ledgerlive:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\",\n \"copyLink\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ledgerlive:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ledgerlive:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/ledger_live.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"1inch Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"oneinch://\",\n \"universal\": \"https://wallet.1inch.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"oneinch://\",\n \"universal\": \"https://wallet.1inch.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/1inch_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"iToken Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"huobiwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"huobiwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/i_token_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Huddln\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"huddln:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"huddln:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/huddln.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Eidoo\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"eidoo:\",\n \"universal\": \"https://eidoo.io/crypto-wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"eidoo:\",\n \"universal\": \"https://eidoo.io/crypto-wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/eidoo.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Timeless Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"timeless-wallet:\",\n \"universal\": \"https://timelesswallet.xyz\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"timeless-wallet:\",\n \"universal\": \"https://timelesswallet.xyz\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/timeless.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"CoolWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"coolwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"coolwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/cool_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Unstoppable Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"unstoppable.money://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"unstoppable.money://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/unstoppable.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"AlphaWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"awallet:\",\n \"universal\": \"https://aw.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"awallet:\",\n \"universal\": \"https://aw.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/alpha_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Pillar\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"pillarwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"pillarwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/pillar.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"D'CENT Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"dcent:\",\n \"universal\": \"https://link.dcentwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"dcent:\",\n \"universal\": \"https://link.dcentwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/dcent.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ZelCore\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"zel:\",\n \"universal\": \"https://link.zel.network\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"zel:\",\n \"universal\": \"https://link.zel.network\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/zel_core.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Nash\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"nash:\",\n \"universal\": \"https://nash.io/walletconnect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"nash:\",\n \"universal\": \"https://nash.io/walletconnect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/nash.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Coinomi\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://coinomi.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://coinomi.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/coinomi.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"CYBAVO Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"cybavowallet:\",\n \"universal\": \"https://cdn.cybavo.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"cybavowallet:\",\n \"universal\": \"https://cdn.cybavo.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/cybavo.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Tokenary\",\n \"desktop\": {\n \"native\": \"tokenary:\",\n \"universal\": \"https://tokenary.io\",\n \"connect\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/tokenary.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Torus\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/torus.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"SafePal\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"safepalwallet\",\n \"universal\": \"https://link.safepal.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"safepalwallet\",\n \"universal\": \"https://link.safepal.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/safepal.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Infinity Wallet\",\n \"desktop\": {\n \"native\": \"infinity:\",\n \"universal\": \"https://infinitywallet.io/\",\n \"connect\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/infinity_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bridge Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bridgewallet:\",\n \"universal\": \"https://bridge.mtpelerin.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bridgewallet:\",\n \"universal\": \"https://bridge.mtpelerin.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/mtperlin.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"SparkPoint\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"sparkpoint:\",\n \"universal\": \"https://sparkpoint.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"sparkpoint:\",\n \"universal\": \"https://sparkpoint.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/sparkpoint.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"PEAKDEFI Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"peakdefiwallet:\",\n \"universal\": \"https://peakdefi.com/download\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"peakdefiwallet:\",\n \"universal\": \"https://peakdefi.com/download\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/peakdefi.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"AT.Wallet\",\n \"desktop\": {\n \"native\": \"atwallet:\",\n \"qr\": \"WalletConnectV2\",\n \"connect\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"atwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"atwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/atwallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Ellipal\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ellipal:\",\n \"universal\": \"https://www.ellipal.com/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ellipal:\",\n \"universal\": \"https://www.ellipal.com/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/ellipal.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Aktionariat\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"aktionariat:\",\n \"universal\": \"https://app.aktionariat.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"aktionariat:\",\n \"universal\": \"https://app.aktionariat.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/aktionariat.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Talken Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"talken-wallet:\",\n \"universal\": \"https://talken.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"talken-wallet:\",\n \"universal\": \"https://talken.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/talken.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"KyberSwap\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"kyberswap:\",\n \"universal\": \"https://kyberswapnew.app.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"kyberswap:\",\n \"universal\": \"https://kyberswapnew.app.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/kyberswap.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Tongue Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"tongue:\",\n \"universal\": \"https://www.tongue.fi\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"tongue:\",\n \"universal\": \"https://www.tongue.fi\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/tongue.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"RWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"rwallet:\",\n \"universal\": \"https://www.rwallet.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"rwallet:\",\n \"universal\": \"https://www.rwallet.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/rwallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"O3Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"o3wallet:\",\n \"universal\": \"https://o3.network\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"o3wallet:\",\n \"universal\": \"https://o3.network\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/o3wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"HashKey Me\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"hashme:\",\n \"universal\": \"https://me.hashkey.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"hashme:\",\n \"universal\": \"https://me.hashkey.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/hashkeyme.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Guarda Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/guarda.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Defiant\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"defiantapp:\",\n \"universal\": \"https://defiantapp.tech\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"defiantapp:\",\n \"universal\": \"https://defiantapp.tech\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/defiant.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Valora\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"celo://wallet\",\n \"universal\": \"https://valoraapp.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"celo://wallet\",\n \"universal\": \"https://valoraapp.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/valora.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Celo Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"celowallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"celowallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/celo.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Elastos Essentials\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"essentials:\",\n \"universal\": \"https://essentials.elastos.net\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"essentials:\",\n \"universal\": \"https://essentials.elastos.net\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/elastos_essentials.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Stasis\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"stasis:\",\n \"universal\": \"https://app.stasis.net\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"stasis:\",\n \"universal\": \"https://app.stasis.net\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/stasis.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"JulWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"julwallet:\",\n \"universal\": \"https://justliquidity.org\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"julwallet:\",\n \"universal\": \"https://justliquidity.org\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/julwallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bitpie\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bitpie:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bitpie:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bitpie.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Minerva Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"minerva:\",\n \"universal\": \"https://minerva.digital\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"minerva:\",\n \"universal\": \"https://minerva.digital\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/minerva.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Tangem\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"tangem:\",\n \"universal\": \"https://app.tangem.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"tangem:\",\n \"universal\": \"https://app.tangem.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/tangem.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ioPay\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"iopay:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"iopay:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/io_pay.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Coinhub\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/coinhub.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Go Pocket\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/gopocket.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Wallet 3\",\n \"desktop\": {\n \"native\": \"wallet3:\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"wallet3:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"wallet3:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/wallet3.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"yiToken\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"yitoken:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"yitoken:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/yitoken.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"DID Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"abt:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"abt:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/didwallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Shinobi Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"shinobi-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"shinobi-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/shinobi_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"AirGap Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"airgap-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"airgap-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/air_gap_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"SecuX\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"secux://\",\n \"universal\": \"https://wsweb.secuxtech.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"secux://\",\n \"universal\": \"https://wsweb.secuxtech.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/secux.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Orange\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"orangewallet:\",\n \"universal\": \"https://link.orangewallet.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"orangewallet:\",\n \"universal\": \"https://link.orangewallet.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/orange.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Krystal\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"krystalWallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"krystalWallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/krystal.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Kriptomat\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"kriptomatapp://wallet-connect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"kriptomatapp://wallet-connect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/kriptomat.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Ambire Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ambire:\",\n \"universal\": \"https://mobile.ambire.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ambire:\",\n \"universal\": \"https://mobile.ambire.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/ambire_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"PayBolt\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"paybolt://Wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"paybolt://Wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/pay_bolt.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"OKX\",\n \"extensions\": [\"OKXEVM\", \"OKXSVM\"],\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"okex://main\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\",\n \"open\": function open() {\n return \"okx://wallet/dapp/url?dappUrl=\".concat(encodeURIComponent(window.location.toString()));\n }\n },\n \"android\": {\n \"native\": \"okex://main\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\",\n \"open\": function open() {\n return \"okx://wallet/dapp/url?dappUrl=\".concat(encodeURIComponent(window.location.toString()));\n }\n }\n },\n \"logo\": (_wallets$OKXEVM = wallets.OKXEVM) === null || _wallets$OKXEVM === void 0 ? void 0 : (_wallets$OKXEVM$info = _wallets$OKXEVM.info) === null || _wallets$OKXEVM$info === void 0 ? void 0 : _wallets$OKXEVM$info.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Mask Network\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/mask_network.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Uniblow\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/uniblow.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Autonomy: Digital Art Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"autonomy-wc\",\n \"universal\": \"https://autonomy.io/apps/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"autonomy-wc\",\n \"universal\": \"https://autonomy.io/apps/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/autonomy.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Lilico\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"lilico://\",\n \"universal\": \"https://link.lilico.app/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"lilico://\",\n \"universal\": \"https://link.lilico.app/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/lilico.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Fireblocks\",\n \"desktop\": {\n \"universal\": \"https://console.fireblocks.io/v2\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"fireblocks-wc://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"fireblocks-wc://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/fireblocks.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"WATT ME\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"wattwallet://wallet-connect/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"wattwallet://wallet-connect/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/wattme.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Coingrig\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"coingrig://\",\n \"universal\": \"https://link.coingrig.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"coingrig://\",\n \"universal\": \"https://link.coingrig.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/coingrig.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Cryptnox Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/cryptnox_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"bobablocks\",\n \"desktop\": {\n \"native\": \"bobablocks://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bobablocks://\",\n \"universal\": \"https://app.bobablocks.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bobablocks://\",\n \"universal\": \"https://app.bobablocks.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bobablocks.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Plasma Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"plasmawallet:\",\n \"universal\": \"https://plasma-wallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"plasmawallet:\",\n \"universal\": \"https://plasma-wallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/plasma_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"HUMBL WALLET\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"humblwallet:\",\n \"universal\": \"https://wallet.search3.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"humblwallet:\",\n \"universal\": \"https://wallet.search3.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/humbl_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Zelus\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"zeluswallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"zeluswallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/zelus.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Earth Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"earthwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"earthwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/earth_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Boba Multisig\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/boba_multisig.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"EASY\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"co.theeasy.app://\",\n \"universal\": \"https://link.easy.me\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"co.theeasy.app://\",\n \"universal\": \"https://link.easy.me\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/easy.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ISLAMIwallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"islamiwallet://islami.com/path/\",\n \"universal\": \"https://islamiwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"islamiwallet://islami.com/path/\",\n \"universal\": \"https://islamiwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/islam_iwallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Card Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"cardwallet://\",\n \"universal\": \"https://wallet.cardstack.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"cardwallet://\",\n \"universal\": \"https://wallet.cardstack.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/card_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"GameStop Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/game_stop_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"RealT Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/real_t_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"PLTwallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"pltwallet:\",\n \"universal\": \"https://pltwallet.io/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"pltwallet:\",\n \"universal\": \"https://pltwallet.io/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/pl_twallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Avacus\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"avacus://\",\n \"universal\": \"https://avacus.app.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"avacus://\",\n \"universal\": \"https://avacus.app.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/avacus.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"StrikeX Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"strikex://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"strikex://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/strike_x_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"BCERTin wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/bcer_tin_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Edge Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"edge://\",\n \"universal\": \"https://deep.edge.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"edge://\",\n \"universal\": \"https://deep.edge.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/edge_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Freedom Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"freedom-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"freedom-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/freedom_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Assure\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"assure://\",\n \"universal\": \"https://www.assure.pro/Official\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"assure://\",\n \"universal\": \"https://www.assure.pro/Official\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/assure.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Cosmostation\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"cosmostation://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"cosmostation://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/cosmostation.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"THORWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"thorwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"thorwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/thor_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Gryfyn\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/gryfyn.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"CoinStats\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"coinstats:\",\n \"universal\": \"https://coinstats.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"coinstats:\",\n \"universal\": \"https://coinstats.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/coin_stats.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Abra Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"abra:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"abra:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/abra_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Opera Crypto Browser\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"cryptobrowser://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"cryptobrowser://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/opera_crypto_browser.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Keywallet Touch\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"keywalletTouch://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"keywalletTouch://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/keywallet_touch.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Enno Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ennowallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ennowallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/enno_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"A4 Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/a4_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bitcoin.com Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bitcoincom://\",\n \"universal\": \"https://wallet.bitcoin.com/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bitcoincom://\",\n \"universal\": \"https://wallet.bitcoin.com/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bitcoincom.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Defiant\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"defiantapp://\",\n \"universal\": \"https://defiantapp.tech/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"defiantapp://\",\n \"universal\": \"https://defiantapp.tech/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/defiant.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Chain\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/chain.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Verso\",\n \"desktop\": {\n \"native\": \"verso\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"verso\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"verso\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/verso.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"LOBSTR Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"lobstr://\",\n \"universal\": \"https://lobstr.co/uni/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"lobstr://\",\n \"universal\": \"https://lobstr.co/uni/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/lobstr_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bifrost Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bifrostwallet:\",\n \"universal\": \"https://app.bifrostwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bifrostwallet:\",\n \"universal\": \"https://app.bifrostwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bifrost_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Okse Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"oksewallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"oksewallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/okse_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"BRISE Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/brise_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"HyperPay\",\n \"extension\": \"HyperPay\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": (_wallets$HyperPay = wallets.HyperPay) === null || _wallets$HyperPay === void 0 ? void 0 : (_wallets$HyperPay$inf = _wallets$HyperPay.info) === null || _wallets$HyperPay$inf === void 0 ? void 0 : _wallets$HyperPay$inf.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ATON\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/aton.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Frontier\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"frontier://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"frontier://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/frontier.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"MDAO Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ttmwalletapp://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ttmwalletapp://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/mdao_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"TTM Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ttmwalletapp:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ttmwalletapp:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/ttm_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Opto Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"opto://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"opto://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/opto_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"XFUN Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"xfunwallet://\",\n \"universal\": \"https://xfun.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"xfunwallet://\",\n \"universal\": \"https://xfun.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/xfun_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Exodus\",\n \"extensions\": [\"ExodusEVM\", \"ExodusSVM\"],\n \"desktop\": {\n \"native\": \"exodus://\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"exodus://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"exodus://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/exodus.jpg\",\n \"blockchains\": _toConsumableArray(supported)\n}, {\n \"name\": \"Uvtoken\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"UvToken://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"UvToken://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/uv_token.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"PREMA Wallet\",\n \"desktop\": {\n \"native\": \"premawallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"premawallet:\",\n \"universal\": \"https://premanft.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"premawallet:\",\n \"universal\": \"https://premanft.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/prema_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Shinobi-Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"shinobi-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"shinobi-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/shinobi.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ByteBank\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"hideoutWallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"hideoutWallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/byte_bank.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Ancrypto Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ancrypto://app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ancrypto://app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/ancrypto_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bee Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"beewallet.app://\",\n \"universal\": \"https://beewallet.app/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"beewallet.app://\",\n \"universal\": \"https://beewallet.app/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bee_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"LATOKEN Multichain DeFi Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"dfwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"dfwallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/latoken_multichain_de_fi_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"TK Finance\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"tk://\",\n \"universal\": \"https://trustkeys.network\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"tk://\",\n \"universal\": \"https://trustkeys.network\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/tk_finance.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Oxalus Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"oxalus://\",\n \"universal\": \"https://deeplink.oxalus.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"oxalus://\",\n \"universal\": \"https://deeplink.oxalus.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/oxalus_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"3S Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bhcwallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bhcwallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/3_s_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Klever Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"kleverwallet:\",\n \"universal\": \"https://klever.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"kleverwallet:\",\n \"universal\": \"https://klever.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/klever_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"OneKey\",\n \"desktop\": {\n \"native\": \"onekey-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"onekey-wallet://\",\n \"universal\": \"https://app.onekey.so/wc/connect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"onekey-wallet://\",\n \"universal\": \"https://app.onekey.so/wc/connect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/one_key.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"helix id\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"helix-id://helix-id.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"helix-id://helix-id.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/helix_id.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ABC Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"abc-wallet://abcwc\",\n \"universal\": \"https://abcwalletconnect.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"abc-wallet://abcwc\",\n \"universal\": \"https://abcwalletconnect.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/abcwallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"HaHa\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"haha://\",\n \"universal\": \"https://haha.me\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"haha://\",\n \"universal\": \"https://haha.me\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/haha.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Volt: DeFi\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"volt:\",\n \"universal\": \"https://get.voltage.finance\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"volt:\",\n \"universal\": \"https://get.voltage.finance\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/volt.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Robinhood Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"robinhood-wallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"robinhood-wallet:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/robinhood_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"RiceWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"ricewallet\",\n \"universal\": \"https://ricewallet.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"ricewallet\",\n \"universal\": \"https://ricewallet.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/rice_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"SafeMoon\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"safemoon:\",\n \"universal\": \"https://safemoon.net/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"safemoon:\",\n \"universal\": \"https://safemoon.net/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/safemoon.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"SimpleHold\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"simplehold://\",\n \"universal\": \"https://simplehold.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"simplehold://\",\n \"universal\": \"https://simplehold.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/simple_hold.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"GoldBit\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"goldbit://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"goldbit://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/gold_bit.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ioPay\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"iopay:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"iopay:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/iopay.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bitizen\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bitizen://wallet\",\n \"universal\": \"https://bitizen.org/wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bitizen://wallet\",\n \"universal\": \"https://bitizen.org/wallet\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bitizen.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Slavi Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"slaviwallet:\",\n \"universal\": \"https://www.slaviwallet.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"slaviwallet:\",\n \"universal\": \"https://www.slaviwallet.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/slavi_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Nufinetes\",\n \"desktop\": {\n \"native\": \"vimwallet:/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"vimwallet:/\",\n \"universal\": \"https://apple.vimworld.org\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"vimwallet:/\",\n \"universal\": \"https://apple.vimworld.org\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/nufinetes.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Arianee Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"com.arianee.wallet\",\n \"universal\": \"https://arianee.net\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"com.arianee.wallet\",\n \"universal\": \"https://arianee.net\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/arianee_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"NOW Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"walletnow://\",\n \"universal\": \"https://walletnow.app.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"walletnow://\",\n \"universal\": \"https://walletnow.app.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/now_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Arculus Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"arculuswc:\",\n \"universal\": \"https://gw.arculus.co/app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"arculuswc:\",\n \"universal\": \"https://gw.arculus.co/app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/arculus_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Linen\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"linen:\",\n \"universal\": \"https://linen.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"linen:\",\n \"universal\": \"https://linen.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/linen.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Nitrogen Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://nitrogen.org/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://nitrogen.org/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/nitrogen_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ApolloX\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://app.apollox.finance\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://app.apollox.finance\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/apollo_x.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ID Pocket\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/id_pocket.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"CoinCircle\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://coincircle.com/app/walletconnect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://coincircle.com/app/walletconnect\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/coin_circle.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"SahalWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/sahal_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"UPBOND Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/upbond_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Sequence Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://sequence.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://sequence.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/sequence_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"LocalTrade Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://ws.lab.localtrade.cc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://ws.lab.localtrade.cc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/local_trade_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Loopring Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/loopring_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Vision: Crypto Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://app.vision-crypto.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://app.vision-crypto.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/vision.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Ballet Crypto\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/ballet_crypto.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Pitaka\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"pitaka://\",\n \"universal\": \"https://app.pitaka.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"pitaka://\",\n \"universal\": \"https://app.pitaka.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/pitaka.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"AbsoluteWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/absolute_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"The Parallel\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/the_parallel.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"CypherD Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/cypher_d_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Keplr\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/keplr.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"MyWalliD\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/my_walli_d.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Status\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/status.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Monarch Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://monarchwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://monarchwallet.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/monarch_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Marble\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://app.marblewallet.com/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://app.marblewallet.com/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/marble.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Flooz\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://wallet.flooz.trade/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://wallet.flooz.trade/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/flooz.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Blockchain.com\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"blockchain-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"blockchain-wallet://\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/blockchaincom.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Dohrnii Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/dohrnii_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"UniPass\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://wallet.unipass.id\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://wallet.unipass.id\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/uni_pass.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ZenGo\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"zengo://get.zengo.com/\",\n \"universal\": \"https://get.zengo.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"zengo://get.zengo.com/\",\n \"universal\": \"https://get.zengo.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/zengo2.png\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Locker Token\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/locker_token.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Keeper\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://link.keeper-wallet.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://link.keeper-wallet.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/keeper.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"XDEFI Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/xdefi_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Numio\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/numio.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Neon Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/neon_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Nabox\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://nabox.io/app/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://nabox.io/app/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/nabox.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Snowball\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://app.snowball.exchange/app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://app.snowball.exchange/app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/snowball.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"KryptoGO Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://kryptogo.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://kryptogo.page.link\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/krypto_go_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Payperless\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/payperless.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Brave Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/brave_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Crossmint\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/crossmint.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Safematrix\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://safematrix.io/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://safematrix.io/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/safematrix.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"pier\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://pierwallet.com/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://pierwallet.com/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/pier.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"FILWallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://h5.filwallet.co\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://h5.filwallet.co\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/fil_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"ParaSwap Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://wallet.paraswap.io/#/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://wallet.paraswap.io/#/\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/para_swap_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Bitski\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"bitski:\",\n \"universal\": \"https://wallet.bitski.com/walletconnect/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"bitski:\",\n \"universal\": \"https://wallet.bitski.com/walletconnect/wc\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/bitski.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Hippo Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"hippowallet://\",\n \"universal\": \"https://hippowallet.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"hippowallet://\",\n \"universal\": \"https://hippowallet.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/hippo_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Core\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://core.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://core.app\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/core.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Xcapit\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://app.xcapit.com/links\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://app.xcapit.com/links\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/xcapit.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Paper\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"universal\": \"https://withpaper.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"universal\": \"https://withpaper.com\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/paper_wallet.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"MetaOne\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"metaone:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"metaone:\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/metaone.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Enjin Wallet\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"mobile\": {\n \"ios\": {\n \"native\": \"enjinwallet:\",\n \"universal\": \"https://deeplink.wallet.enjin.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n },\n \"android\": {\n \"native\": \"enjinwallet:\",\n \"universal\": \"https://deeplink.wallet.enjin.io\",\n \"connect\": \"WalletConnectV2\",\n \"qr\": \"WalletConnectV2\"\n }\n },\n \"logo\": \"https://img1.depay.com/wallets/enjin.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"BC Vault\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"https://img1.depay.com/wallets/bc_vault.jpg\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Ethereum Wallet\",\n \"extension\": \"WindowEthereum\",\n \"logo\": (_wallets$WindowEthere = wallets.WindowEthereum) === null || _wallets$WindowEthere === void 0 ? void 0 : (_wallets$WindowEthere2 = _wallets$WindowEthere.info) === null || _wallets$WindowEthere2 === void 0 ? void 0 : _wallets$WindowEthere2.logo,\n \"blockchains\": _toConsumableArray(supported.evm)\n}, {\n \"name\": \"Solana Pay\",\n \"desktop\": {\n \"solanaPay\": true\n },\n \"mobile\": {\n \"ios\": {\n \"solanaPay\": true\n },\n \"android\": {\n \"solanaPay\": true\n }\n },\n \"logo\": (_Blockchains$solana = Blockchains.solana) === null || _Blockchains$solana === void 0 ? void 0 : _Blockchains$solana.logo,\n \"blockchains\": _toConsumableArray(supported.solana)\n}, {\n \"name\": \"Solana Wallet\",\n \"extension\": \"WindowSolana\",\n \"desktop\": {\n \"solanaPay\": true\n },\n \"mobile\": {\n \"ios\": {\n \"solanaPay\": true\n },\n \"android\": {\n \"solanaPay\": true\n }\n },\n \"logo\": (_wallets$WindowSolana = wallets.WindowSolana) === null || _wallets$WindowSolana === void 0 ? void 0 : (_wallets$WindowSolana2 = _wallets$WindowSolana.info) === null || _wallets$WindowSolana2 === void 0 ? void 0 : _wallets$WindowSolana2.logo,\n \"blockchains\": _toConsumableArray(supported.solana)\n}, {\n \"name\": \"WalletConnect\",\n \"desktop\": {\n \"qr\": \"WalletConnectV2\"\n },\n \"logo\": \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjUuNC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAtLT48c3ZnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgNTAwIDUwMCcgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAwIDUwMDsnIHhtbDpzcGFjZT0ncHJlc2VydmUnPjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+IC5zdDB7ZmlsbDojNTk5MUNEO30KPC9zdHlsZT48ZyBpZD0nUGFnZS0xJz48ZyBpZD0nd2FsbGV0Y29ubmVjdC1sb2dvLWFsdCc+PHBhdGggaWQ9J1dhbGxldENvbm5lY3QnIGNsYXNzPSdzdDAnIGQ9J00xMDIuNywxNjJjODEuNS03OS44LDIxMy42LTc5LjgsMjk1LjEsMGw5LjgsOS42YzQuMSw0LDQuMSwxMC41LDAsMTQuNEwzNzQsMjE4LjkgYy0yLDItNS4zLDItNy40LDBsLTEzLjUtMTMuMmMtNTYuOC01NS43LTE0OS01NS43LTIwNS44LDBsLTE0LjUsMTQuMWMtMiwyLTUuMywyLTcuNCwwTDkxLjksMTg3Yy00LjEtNC00LjEtMTAuNSwwLTE0LjQgTDEwMi43LDE2MnogTTQ2Ny4xLDIyOS45bDI5LjksMjkuMmM0LjEsNCw0LjEsMTAuNSwwLDE0LjRMMzYyLjMsNDA1LjRjLTQuMSw0LTEwLjcsNC0xNC44LDBjMCwwLDAsMCwwLDBMMjUyLDMxMS45IGMtMS0xLTIuNy0xLTMuNywwaDBsLTk1LjUsOTMuNWMtNC4xLDQtMTAuNyw0LTE0LjgsMGMwLDAsMCwwLDAsMEwzLjQsMjczLjZjLTQuMS00LTQuMS0xMC41LDAtMTQuNGwyOS45LTI5LjIgYzQuMS00LDEwLjctNCwxNC44LDBsOTUuNSw5My41YzEsMSwyLjcsMSwzLjcsMGMwLDAsMCwwLDAsMGw5NS41LTkzLjVjNC4xLTQsMTAuNy00LDE0LjgsMGMwLDAsMCwwLDAsMGw5NS41LDkzLjUgYzEsMSwyLjcsMSwzLjcsMGw5NS41LTkzLjVDNDU2LjQsMjI1LjksNDYzLDIyNS45LDQ2Ny4xLDIyOS45eicvPjwvZz48L2c+PC9zdmc+Cg==\",\n \"blockchains\": _toConsumableArray(supported.evm)\n}].filter(function (wallet) {\n return wallet.blockchains.filter(Boolean).length > 0;\n});\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn) {\n var module = {\n exports: {}\n };\n return fn(module, module.exports), module.exports;\n}\n\nvar _typeof_1 = createCommonjsModule(function (module) {\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n }\n\n module.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n});\n\nvar regeneratorRuntime$1 = createCommonjsModule(function (module) {\n var _typeof = _typeof_1[\"default\"];\n\n function _regeneratorRuntime() {\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n }\n\n module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n}); // TODO(Babel 8): Remove this file.\n\nvar runtime = regeneratorRuntime$1();\nvar regenerator = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if ((typeof globalThis === \"undefined\" ? \"undefined\" : _typeof2(globalThis)) === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nvar ClosableContext = /*#__PURE__*/React.createContext();\nvar UpdatableContext = /*#__PURE__*/React.createContext();\n\nvar ClosableProvider = function ClosableProvider(props) {\n var _useState = useState(props.closable || true),\n _useState2 = _slicedToArray(_useState, 2),\n closable = _useState2[0],\n setClosable = _useState2[1];\n\n var _useState3 = useState(true),\n _useState4 = _slicedToArray(_useState3, 2),\n open = _useState4[0],\n setOpen = _useState4[1];\n\n var _useContext = useContext(UpdatableContext),\n setUpdatable = _useContext.setUpdatable;\n\n var close = function close() {\n if (props.closable === false) {\n return;\n }\n\n if (!closable) {\n return;\n }\n\n var close = true;\n\n if (typeof closable === 'string') {\n close = confirm(closable);\n }\n\n if (close) {\n setUpdatable(false);\n setOpen(false);\n setTimeout(props.unmount, 300);\n }\n };\n\n useEffect(function () {\n var preventReload = function preventReload(event) {\n if (!closable || props.closable === false) {\n var msg = 'Payment is still pending. Please wait!';\n event.preventDefault();\n event.returnValue = msg;\n return msg;\n } else if (typeof closable === 'string') {\n var _msg = closable;\n event.preventDefault();\n event.returnValue = _msg;\n return _msg;\n }\n };\n\n window.addEventListener('beforeunload', preventReload);\n return function () {\n window.removeEventListener('beforeunload', preventReload);\n };\n }, [closable, props.closable]);\n return /*#__PURE__*/React.createElement(ClosableContext.Provider, {\n value: {\n closable: closable,\n setClosable: setClosable,\n close: close,\n open: open,\n setOpen: setOpen\n }\n }, props.children);\n};\n\nvar ConfigurationContext = /*#__PURE__*/React.createContext({\n accept: []\n});\n\nvar ChevronLeft = function ChevronLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: [\"ChevronLeft\", \"Icon\", props.className].filter(Boolean).join(' '),\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: \"1\",\n fillRule: \"evenodd\",\n d: \"M10.4,1.6c0.2,0.2,0.2,0.5,0,0.7L4.7,8l5.6,5.6c0.2,0.2,0.2,0.5,0,0.7s-0.5,0.2-0.7,0l-6-6l0,0,c-0.2-0.2-0.2-0.5,0-0.7l6-6l0,0C9.8,1.5,10.2,1.5,10.4,1.6L10.4,1.6z\"\n }));\n};\n\nvar CloseIcon = function CloseIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: \"CloseIcon Icon\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n};\n\nvar Dialog$1 = function Dialog$1(props) {\n var _useContext = useContext(NavigateStackContext),\n navigate = _useContext.navigate;\n\n var _useContext2 = useContext(ClosableContext),\n close = _useContext2.close,\n closable = _useContext2.closable;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: [\"Dialog\", props.className].join(' ')\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: [\"DialogHeader\", props.stacked ? 'TextCenter' : ''].join(' ')\n }, props.stacked && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DialogHeaderActionLeft PaddingTopS PaddingLeftS PaddingRightS\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: function onClick() {\n return navigate('back');\n },\n className: \"ButtonCircular\",\n title: \"Go back\"\n }, /*#__PURE__*/React.createElement(ChevronLeft, null))), closable && props.closable !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DialogHeaderActionRight PaddingTopS PaddingLeftS PaddingRightS\"\n }, props.alternativeHeaderAction, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: close,\n className: \"ButtonCircular\",\n title: \"Close dialog\"\n }, /*#__PURE__*/React.createElement(CloseIcon, null))), props.header), /*#__PURE__*/React.createElement(\"div\", {\n ref: props.bodyRef,\n className: [\"DialogBody\", props.bodyClassName].join(' ')\n }, props.body), props.footer !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DialogFooter\"\n }, props.footer));\n};\n\nvar ExtensionImage = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNTAgMjUwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAgMjUwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTE3Mi44LDY4LjNjLTQuOS0yLjItNy40LTguNC00LjUtMTMuNmM1LjMtOS40LDEwLTE4LjYsNC4zLTI5LjFjLTctMTIuNy0yNC4xLTE3LjQtMzYuNi0xMGMtMTUuNCw5LjEtMTMuNCwyNS42LTUuMSwzOC45CgkJYzMuMyw1LjIsMC45LDExLjYtNC4yLDEzLjlsLTYxLjIsMC4xbDAsMC44bDAuMSwyMS44bDAuMSwzNy45Yy0xLjksNS41LTguNyw4LjQtMTQuMSw1Yy0xMy40LTguMy0yOS44LTEwLjEtMzguOSw1LjMKCQljLTcuMywxMi41LTIuNSwyOS43LDEwLjIsMzYuNWMxMC41LDUuNywxOS43LDEsMjkuMS00LjRjNS40LTMuMSwxMS45LTAuMywxMy44LDVsMC4xLDU5LjhsNTcuMi0wLjFjMC4xLDAsMC4yLDAsMC4zLDBsMy42LDAKCQljNS0yLjMsNy40LTguNyw0LjItMTMuOWMtOC4zLTEzLjMtMTAuMy0yOS44LDUuMS0zOC45YzEyLjUtNy40LDI5LjYtMi43LDM2LjYsMTBjNS43LDEwLjUsMS4xLDE5LjctNC4zLDI5LjEKCQljLTIuOSw1LjItMC41LDExLjQsNC41LDEzLjZsMy42LDBjMC4xLDAsMC4yLDAsMC4zLDBsNTYuNS0wLjFsLTAuMS01OC44Yy0xLjQtNi42LTcuOC05LjItMTQuMS01LjhjLTkuNSw1LjItMTcuOSw5LjgtMjguNCw0LjEKCQljLTEyLjgtNi45LTE4LjItMjMuNy0xMC45LTM2LjNjOS0xNS40LDI1LjUtMTMuNiwzOC45LTUuM2M1LjcsMy41LDEyLjksMC4yLDE0LjQtNS45bC0wLjEtMzUuNEwyMzMuMyw2OWwwLTAuOEwxNzIuOCw2OC4zeiIvPgo8L2c+Cjwvc3ZnPgo=';\n\nvar isMobile = function isMobile() {\n if (typeof window !== 'undefined') {\n return Boolean(window.matchMedia('(pointer:coarse)').matches || /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/.test(navigator.userAgent));\n }\n\n return false;\n};\n\nvar LinkImage = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiMwMTAxMDEiIGQ9Ik00NTkuNjU0LDIzMy4zNzNsLTkwLjUzMSw5MC41Yy00OS45NjksNTAtMTMxLjAzMSw1MC0xODEsMGMtNy44NzUtNy44NDQtMTQuMDMxLTE2LjY4OC0xOS40MzgtMjUuODEzDQoJbDQyLjA2My00Mi4wNjNjMi0yLjAxNiw0LjQ2OS0zLjE3Miw2LjgyOC00LjUzMWMyLjkwNiw5LjkzOCw3Ljk4NCwxOS4zNDQsMTUuNzk3LDI3LjE1NmMyNC45NTMsMjQuOTY5LDY1LjU2MywyNC45MzgsOTAuNSwwDQoJbDkwLjUtOTAuNWMyNC45NjktMjQuOTY5LDI0Ljk2OS02NS41NjMsMC05MC41MTZjLTI0LjkzOC0yNC45NTMtNjUuNTMxLTI0Ljk1My05MC41LDBsLTMyLjE4OCwzMi4yMTkNCgljLTI2LjEwOS0xMC4xNzItNTQuMjUtMTIuOTA2LTgxLjY0MS04Ljg5MWw2OC41NzgtNjguNTc4YzUwLTQ5Ljk4NCwxMzEuMDMxLTQ5Ljk4NCwxODEuMDMxLDANCglDNTA5LjYyMywxMDIuMzQyLDUwOS42MjMsMTgzLjM4OSw0NTkuNjU0LDIzMy4zNzN6IE0yMjAuMzI2LDM4Mi4xODZsLTMyLjIwMywzMi4yMTljLTI0Ljk1MywyNC45MzgtNjUuNTYzLDI0LjkzOC05MC41MTYsMA0KCWMtMjQuOTUzLTI0Ljk2OS0yNC45NTMtNjUuNTYzLDAtOTAuNTMxbDkwLjUxNi05MC41YzI0Ljk2OS0yNC45NjksNjUuNTQ3LTI0Ljk2OSw5MC41LDBjNy43OTcsNy43OTcsMTIuODc1LDE3LjIwMywxNS44MTMsMjcuMTI1DQoJYzIuMzc1LTEuMzc1LDQuODEzLTIuNSw2LjgxMy00LjVsNDIuMDYzLTQyLjA0N2MtNS4zNzUtOS4xNTYtMTEuNTYzLTE3Ljk2OS0xOS40MzgtMjUuODI4Yy00OS45NjktNDkuOTg0LTEzMS4wMzEtNDkuOTg0LTE4MS4wMTYsMA0KCWwtOTAuNSw5MC41Yy00OS45ODQsNTAtNDkuOTg0LDEzMS4wMzEsMCwxODEuMDMxYzQ5Ljk4NCw0OS45NjksMTMxLjAzMSw0OS45NjksMTgxLjAxNiwwbDY4LjU5NC02OC41OTQNCglDMjc0LjU2MSwzOTUuMDkyLDI0Ni40MiwzOTIuMzQyLDIyMC4zMjYsMzgyLjE4NnoiLz4NCjwvc3ZnPg0K';\nvar QRCodeImage = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgo8c3ZnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMDAgMTAwMCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMWUzIDFlMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1ldGFkYXRhPiBTdmcgVmVjdG9yIEljb25zIDogaHR0cDovL3d3dy5vbmxpbmV3ZWJmb250cy5jb20vaWNvbiA8L21ldGFkYXRhPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDUxMSkgc2NhbGUoLjEgLS4xKSI+PHBhdGggZD0ibTEwMCAyNzk3LjF2LTIyMTIuOWg0NDI1Ljh2NDQyNS44aC00NDI1Ljh2LTIyMTIuOXptMzQ3Ny40IDB2LTEyNjQuNWgtMjUyOXYyNTI5aDI1Mjl2LTEyNjQuNXoiLz48cGF0aCBkPSJtMTY4MC42IDI3OTcuMXYtNjMyLjNoMTI2NC42djEyNjQuNmgtMTI2NC42di02MzIuM3oiLz48cGF0aCBkPSJtNTQ3NC4yIDI3OTcuMXYtMjIxMi45aDQ0MjUuOHY0NDI1LjhoLTQ0MjUuOHYtMjIxMi45em0zNDc3LjQgMHYtMTI2NC41aC0yNTI5djI1MjloMjUyOXYtMTI2NC41eiIvPjxwYXRoIGQ9Im03MDU0LjggMjc5Ny4xdi02MzIuM2gxMjY0LjZ2MTI2NC42aC0xMjY0LjZ2LTYzMi4zeiIvPjxwYXRoIGQ9Im0xMDAtMjU3Ny4xdi0yMjEyLjloNDQyNS44djQ0MjUuOGgtNDQyNS44di0yMjEyLjl6bTM0NzcuNCAwdi0xMjY0LjVoLTI1Mjl2MjUyOWgyNTI5di0xMjY0LjV6Ii8+PHBhdGggZD0ibTE2ODAuNi0yNTc3LjF2LTYzMi4zaDEyNjQuNnYxMjY0LjZoLTEyNjQuNnYtNjMyLjN6Ii8+PHBhdGggZD0ibTU0NzQuMi05MTcuNHYtNTUzLjJoMTEwNi40di0xMTA2LjRoLTExMDYuNHYtMTEwNi40aDExMDYuNHYtMTEwNi42aDExMDYuNHYxMTA2LjRoMTEwNi40di0xMTA2LjRoMTEwNi42djExMDYuNGgtMTEwNi40djExMDYuNGgxMTA2LjR2MTEwNi40aC0xMTA2LjR2MTEwNi40aC0xMTA2LjR2LTExMDYuNGgtMTEwNi40djExMDYuNGgtMTEwNi40di01NTN6bTMzMTkuMy0xMTA2LjV2LTU1My4yaC0xMTA2LjR2LTExMDYuNGgtMTEwNi40djExMDYuNGgxMTA2LjR2MTEwNi40aDExMDYuNHYtNTUzLjJ6Ii8+PC9nPgo8L3N2Zz4K\";\n/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\nvar lodash = createCommonjsModule(function (module, exports) {\n (function () {\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined$1;\n /** Used as the semantic version number. */\n\n var VERSION = '4.17.21';\n /** Used as the size to enable large array optimizations. */\n\n var LARGE_ARRAY_SIZE = 200;\n /** Error message constants. */\n\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n /** Used to stand-in for `undefined` hash values. */\n\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n /** Used as the maximum memoize cache size. */\n\n var MAX_MEMOIZE_SIZE = 500;\n /** Used as the internal argument placeholder. */\n\n var PLACEHOLDER = '__lodash_placeholder__';\n /** Used to compose bitmasks for cloning. */\n\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n /** Used to compose bitmasks for value comparisons. */\n\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n /** Used to compose bitmasks for function metadata. */\n\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n /** Used as default options for `_.truncate`. */\n\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n /** Used to indicate the type of lazy iteratees. */\n\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n /** Used as references for various `Number` constants. */\n\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n /** Used as references for the maximum length and index of an array. */\n\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n /** Used to associate wrap methods with their bit flags. */\n\n var wrapFlags = [['ary', WRAP_ARY_FLAG], ['bind', WRAP_BIND_FLAG], ['bindKey', WRAP_BIND_KEY_FLAG], ['curry', WRAP_CURRY_FLAG], ['curryRight', WRAP_CURRY_RIGHT_FLAG], ['flip', WRAP_FLIP_FLAG], ['partial', WRAP_PARTIAL_FLAG], ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], ['rearg', WRAP_REARG_FLAG]];\n /** `Object#toString` result references. */\n\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n var 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 /** Used to match empty string literals in compiled template source. */\n\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n /** Used to match HTML entities and HTML characters. */\n\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n /** Used to match template delimiters. */\n\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n /** Used to match property names within property paths. */\n\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n /** Used to match leading whitespace. */\n\n var reTrimStart = /^\\s+/;\n /** Used to match a single whitespace character. */\n\n var reWhitespace = /\\s/;\n /** Used to match wrap detail comments. */\n\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n /** Used to match words composed of alphanumeric characters. */\n\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n /** Used to match backslashes in property paths. */\n\n var reEscapeChar = /\\\\(\\\\)?/g;\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n /** Used to match `RegExp` flags from their coerced string values. */\n\n var reFlags = /\\w*$/;\n /** Used to detect bad signed hexadecimal string values. */\n\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n /** Used to detect binary string values. */\n\n var reIsBinary = /^0b[01]+$/i;\n /** Used to detect host constructors (Safari). */\n\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n /** Used to detect octal string values. */\n\n var reIsOctal = /^0o[0-7]+$/i;\n /** Used to detect unsigned integer values. */\n\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n /** Used to ensure capturing order of template delimiters. */\n\n var reNoMatch = /($^)/;\n /** Used to match unescaped characters in compiled string literals. */\n\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n /** Used to compose unicode character classes. */\n\n var 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 /** Used to compose unicode capture groups. */\n\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\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 /** Used to compose unicode regexes. */\n\n var 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 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n /** Used to match apostrophes. */\n\n var reApos = RegExp(rsApos, 'g');\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 */\n\n var reComboMark = RegExp(rsCombo, 'g');\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n /** Used to match complex or compound words. */\n\n var reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji].join('|'), 'g');\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n /** Used to detect strings that need a more robust regexp to match words. */\n\n var 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 /** Used to assign default `context` object properties. */\n\n var contextProps = ['Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'];\n /** Used to make template sourceURLs easier to identify. */\n\n var templateCounter = -1;\n /** Used to identify `toStringTag` values of typed arrays. */\n\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n /** Used to map Latin Unicode letters to basic Latin letters. */\n\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u0104\": 'A',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u0105\": 'a',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\u010E\": 'D',\n \"\\u0110\": 'D',\n \"\\u010F\": 'd',\n \"\\u0111\": 'd',\n \"\\u0112\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\u0118\": 'E',\n \"\\u011A\": 'E',\n \"\\u0113\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\u0119\": 'e',\n \"\\u011B\": 'e',\n \"\\u011C\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u0122\": 'G',\n \"\\u011D\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u0123\": 'g',\n \"\\u0124\": 'H',\n \"\\u0126\": 'H',\n \"\\u0125\": 'h',\n \"\\u0127\": 'h',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u012E\": 'I',\n \"\\u0130\": 'I',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\u012F\": 'i',\n \"\\u0131\": 'i',\n \"\\u0134\": 'J',\n \"\\u0135\": 'j',\n \"\\u0136\": 'K',\n \"\\u0137\": 'k',\n \"\\u0138\": 'k',\n \"\\u0139\": 'L',\n \"\\u013B\": 'L',\n \"\\u013D\": 'L',\n \"\\u013F\": 'L',\n \"\\u0141\": 'L',\n \"\\u013A\": 'l',\n \"\\u013C\": 'l',\n \"\\u013E\": 'l',\n \"\\u0140\": 'l',\n \"\\u0142\": 'l',\n \"\\u0143\": 'N',\n \"\\u0145\": 'N',\n \"\\u0147\": 'N',\n \"\\u014A\": 'N',\n \"\\u0144\": 'n',\n \"\\u0146\": 'n',\n \"\\u0148\": 'n',\n \"\\u014B\": 'n',\n \"\\u014C\": 'O',\n \"\\u014E\": 'O',\n \"\\u0150\": 'O',\n \"\\u014D\": 'o',\n \"\\u014F\": 'o',\n \"\\u0151\": 'o',\n \"\\u0154\": 'R',\n \"\\u0156\": 'R',\n \"\\u0158\": 'R',\n \"\\u0155\": 'r',\n \"\\u0157\": 'r',\n \"\\u0159\": 'r',\n \"\\u015A\": 'S',\n \"\\u015C\": 'S',\n \"\\u015E\": 'S',\n \"\\u0160\": 'S',\n \"\\u015B\": 's',\n \"\\u015D\": 's',\n \"\\u015F\": 's',\n \"\\u0161\": 's',\n \"\\u0162\": 'T',\n \"\\u0164\": 'T',\n \"\\u0166\": 'T',\n \"\\u0163\": 't',\n \"\\u0165\": 't',\n \"\\u0167\": 't',\n \"\\u0168\": 'U',\n \"\\u016A\": 'U',\n \"\\u016C\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u0172\": 'U',\n \"\\u0169\": 'u',\n \"\\u016B\": 'u',\n \"\\u016D\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u0173\": 'u',\n \"\\u0174\": 'W',\n \"\\u0175\": 'w',\n \"\\u0176\": 'Y',\n \"\\u0177\": 'y',\n \"\\u0178\": 'Y',\n \"\\u0179\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u017A\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u0132\": 'IJ',\n \"\\u0133\": 'ij',\n \"\\u0152\": 'Oe',\n \"\\u0153\": 'oe',\n \"\\u0149\": \"'n\",\n \"\\u017F\": 's'\n };\n /** Used to map characters to HTML entities. */\n\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n /** Used to map HTML entities to characters. */\n\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n /** Used to escape characters for inclusion in compiled string literals. */\n\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n \"\\u2028\": 'u2028',\n \"\\u2029\": 'u2029'\n };\n /** Built-in method references without a dependency on `root`. */\n\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n /** Detect free variable `global` from Node.js. */\n\n var freeGlobal = _typeof2(commonjsGlobal) == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n /** Detect free variable `self`. */\n\n var freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof2(self)) == 'object' && self && self.Object === Object && self;\n /** Used as a reference to the global object. */\n\n var root = freeGlobal || freeSelf || Function('return this')();\n /** Detect free variable `exports`. */\n\n var freeExports = exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */\n\n var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */\n\n var moduleExports = freeModule && freeModule.exports === freeExports;\n /** Detect free variable `process` from Node.js. */\n\n var freeProcess = moduleExports && freeGlobal.process;\n /** Used to access faster Node.js helpers. */\n\n var 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 } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n /* Node.js helper references. */\n\n\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n\n case 1:\n return func.call(thisArg, args[0]);\n\n case 2:\n return func.call(thisArg, args[0], args[1]);\n\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n\n return func.apply(thisArg, args);\n }\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 */\n\n\n function 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\n return accumulator;\n }\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n\n\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n\n return array;\n }\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n\n\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n\n return array;\n }\n /**\n * A specialized version of `_.every` 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 {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n\n\n function arrayEvery(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 false;\n }\n }\n\n return true;\n }\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 */\n\n\n function 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\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n\n return result;\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 */\n\n\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\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 */\n\n\n function 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\n return false;\n }\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 */\n\n\n function 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\n return result;\n }\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 */\n\n\n function 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\n return array;\n }\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 */\n\n\n function 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\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n\n return accumulator;\n }\n /**\n * A specialized version of `_.reduceRight` 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 last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n\n\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[--length];\n }\n\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n\n return accumulator;\n }\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 */\n\n\n function 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\n return false;\n }\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n\n\n var asciiSize = baseProperty('length');\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n function asciiToArray(string) {\n return string.split('');\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 */\n\n\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n\n\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function (value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\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 */\n\n\n function 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\n return -1;\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 */\n\n\n function baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\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 * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n\n return -1;\n }\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 */\n\n\n function baseIsNaN(value) {\n return value !== value;\n }\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n\n\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? baseSum(array, iteratee) / length : NAN;\n }\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 */\n\n\n function baseProperty(key) {\n return function (object) {\n return object == null ? undefined$1 : object[key];\n };\n }\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 */\n\n\n function basePropertyOf(object) {\n return function (key) {\n return object == null ? undefined$1 : object[key];\n };\n }\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection 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 or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n\n\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function (value, index, collection) {\n accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\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 */\n\n\n function baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n\n while (length--) {\n array[length] = array[length].value;\n }\n\n return array;\n }\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n\n\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n\n if (current !== undefined$1) {\n result = result === undefined$1 ? current : result + current;\n }\n }\n\n return result;\n }\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 */\n\n\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n }\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n\n\n function baseToPairs(object, props) {\n return arrayMap(props, function (key) {\n return [key, object[key]];\n });\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 */\n\n\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n }\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 */\n\n\n function baseUnary(func) {\n return function (value) {\n return func(value);\n };\n }\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n\n\n function baseValues(object, props) {\n return arrayMap(props, function (key) {\n return object[key];\n });\n }\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 */\n\n\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n\n\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n }\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n\n\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n }\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n\n\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n\n return result;\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 */\n\n\n var deburrLetter = basePropertyOf(deburredLetters);\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\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 */\n\n\n function getValue(object, key) {\n return object == null ? undefined$1 : object[key];\n }\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n\n\n function hasUnicode(string) {\n return reHasUnicode.test(string);\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 */\n\n\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n\n return result;\n }\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 */\n\n\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\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 */\n\n\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n }\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n\n\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n\n return result;\n }\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 */\n\n\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n }\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n\n\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = [value, value];\n });\n return result;\n }\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 */\n\n\n function 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\n return -1;\n }\n /**\n * A specialized version of `_.lastIndexOf` 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 */\n\n\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n\n return index;\n }\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n\n\n function stringSize(string) {\n return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);\n }\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\n function stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\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 */\n\n\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n }\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n\n\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n\n while (reUnicode.test(string)) {\n ++result;\n }\n\n return result;\n }\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\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 */\n\n\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n\n\n var runInContext = function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n /** Built-in constructor references. */\n\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n /** Used for built-in method references. */\n\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n /** Used to detect overreaching core-js shims. */\n\n var coreJsData = context['__core-js_shared__'];\n /** Used to resolve the decompiled source of functions. */\n\n var funcToString = funcProto.toString;\n /** Used to check objects for own properties. */\n\n var hasOwnProperty = objectProto.hasOwnProperty;\n /** Used to generate unique IDs. */\n\n var idCounter = 0;\n /** Used to detect methods masquerading as native. */\n\n var maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\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 */\n\n\n var nativeObjectToString = objectProto.toString;\n /** Used to infer the `Object` constructor. */\n\n var objectCtorString = funcToString.call(Object);\n /** Used to restore the original `_` reference in `_.noConflict`. */\n\n var oldDash = root._;\n /** Used to detect if a method is native. */\n\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n /** Built-in value references. */\n\n var Buffer = moduleExports ? context.Buffer : undefined$1,\n _Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined$1,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = _Symbol ? _Symbol.isConcatSpreadable : undefined$1,\n symIterator = _Symbol ? _Symbol.iterator : undefined$1,\n symToStringTag = _Symbol ? _Symbol.toStringTag : undefined$1;\n\n var defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }();\n /** Mocked built-ins. */\n\n\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n /* Built-in method references for those with the same name as other `lodash` methods. */\n\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined$1,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n /* Built-in method references that are verified to be native. */\n\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n /** Used to store function metadata. */\n\n var metaMap = WeakMap && new WeakMap();\n /** Used to lookup unminified function names. */\n\n var realNames = {};\n /** Used to detect maps, sets, and weakmaps. */\n\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n /** Used to convert symbols to primitives and strings. */\n\n var symbolProto = _Symbol ? _Symbol.prototype : undefined$1,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined$1,\n symbolToString = symbolProto ? symbolProto.toString : undefined$1;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n\n return new LodashWrapper(value);\n }\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n\n\n var baseCreate = function () {\n function object() {}\n\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n\n if (objectCreate) {\n return objectCreate(proto);\n }\n\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined$1;\n return result;\n };\n }();\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n\n\n function baseLodash() {// No operation performed.\n }\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n\n\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined$1;\n }\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n\n\n lodash.templateSettings = {\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n }; // Ensure wrappers are instances of `baseLodash`.\n\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n\n\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n\n\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n\n return result;\n }\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n\n\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : start - 1,\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || !isRight && arrLength == length && takeCount == length) {\n return baseWrapperValue(array, this.__actions__);\n }\n\n var result = [];\n\n outer: while (length-- && resIndex < takeCount) {\n index += dir;\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n\n result[resIndex++] = value;\n }\n\n return result;\n } // Ensure `LazyWrapper` is an instance of `baseLodash`.\n\n\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\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 */\n\n\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\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 */\n\n\n function hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined$1 : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined$1;\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 */\n\n\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined$1 : hasOwnProperty.call(data, key);\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 */\n\n\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined$1 ? HASH_UNDEFINED : value;\n return this;\n } // Add methods to `Hash`.\n\n\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\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 */\n\n\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\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 */\n\n\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined$1 : data[index][1];\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 */\n\n\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\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 */\n\n\n function 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\n return this;\n } // Add methods to `ListCache`.\n\n\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n /*------------------------------------------------------------------------*/\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 */\n\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\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 */\n\n\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\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 */\n\n\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\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 */\n\n\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\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 */\n\n\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n } // Add methods to `MapCache`.\n\n\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n /*------------------------------------------------------------------------*/\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 */\n\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\n }\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 */\n\n\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n\n return this;\n }\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 */\n\n\n function setCacheHas(value) {\n return this.__data__.has(value);\n } // Add methods to `SetCache`.\n\n\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n /*------------------------------------------------------------------------*/\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 */\n\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\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 */\n\n\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n }\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 */\n\n\n function stackGet(key) {\n return this.__data__.get(key);\n }\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 */\n\n\n function stackHas(key) {\n return this.__data__.has(key);\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 */\n\n\n function stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n } // Add methods to `Stack`.\n\n\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n /*------------------------------------------------------------------------*/\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 */\n\n function 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)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n\n\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined$1;\n }\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n\n\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n\n\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\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 */\n\n\n function assignMergeValue(object, key, value) {\n if (value !== undefined$1 && !eq(object[key], value) || value === undefined$1 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\n function assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined$1 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\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 */\n\n\n function assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\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 */\n\n\n function 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 /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\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 */\n\n\n function 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 /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n\n\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined$1 : get(object, paths[index]);\n }\n\n return result;\n }\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n\n\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined$1) {\n number = number <= upper ? number : upper;\n }\n\n if (lower !== undefined$1) {\n number = number >= lower ? number : lower;\n }\n }\n\n return number;\n }\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n\n\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n\n if (result !== undefined$1) {\n return result;\n }\n\n if (!isObject(value)) {\n return value;\n }\n\n var isArr = isArray(value);\n\n if (isArr) {\n result = initCloneArray(value);\n\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result = isFlat || isFunc ? {} : initCloneObject(value);\n\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n\n result = initCloneByTag(value, tag, isDeep);\n }\n } // Check for circular references and return its corresponding clone.\n\n\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n\n if (stacked) {\n return stacked;\n }\n\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function (subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function (subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined$1 : keysFunc(value);\n arrayEach(props || value, function (subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n } // Recursively populate clone (susceptible to call stack limits).\n\n\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n\n\n function baseConforms(source) {\n var props = keys(source);\n return function (object) {\n return baseConformsTo(object, source, props);\n };\n }\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n\n\n function baseConformsTo(object, source, props) {\n var length = props.length;\n\n if (object == null) {\n return !length;\n }\n\n object = Object(object);\n\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if (value === undefined$1 && !(key in object) || !predicate(value)) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n\n\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n return setTimeout(function () {\n func.apply(undefined$1, args);\n }, wait);\n }\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n\n\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n } else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n value = comparator || value !== 0 ? value : 0;\n\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n\n result.push(value);\n } else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n\n return result;\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 */\n\n\n var baseEach = createBaseEach(baseForOwn);\n /**\n * The base implementation of `_.forEachRight` 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 */\n\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function (value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n\n\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined$1 ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current,\n result = value;\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n\n\n function baseFill(array, value, start, end) {\n var length = array.length;\n start = toInteger(start);\n\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n\n end = end === undefined$1 || end > length ? length : toInteger(end);\n\n if (end < 0) {\n end += length;\n }\n\n end = start > end ? 0 : toLength(end);\n\n while (start < end) {\n array[start++] = value;\n }\n\n return array;\n }\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n\n\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function (value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\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 */\n\n\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n\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\n return result;\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 */\n\n\n var baseFor = createBaseFor();\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\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 */\n\n var baseForRight = createBaseFor(true);\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 */\n\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n /**\n * The base implementation of `_.forOwnRight` 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 */\n\n\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n\n\n function baseFunctions(object, props) {\n return arrayFilter(props, function (key) {\n return isFunction(object[key]);\n });\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 */\n\n\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n\n return index && index == length ? object : undefined$1;\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 */\n\n\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\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 */\n\n\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined$1 ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n }\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n\n\n function baseGt(value, other) {\n return value > other;\n }\n /**\n * The base implementation of `_.has` 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 */\n\n\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\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 */\n\n\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n\n\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays 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 array of shared values.\n */\n\n\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined$1;\n }\n\n array = arrays[0];\n var index = -1,\n seen = caches[0];\n\n outer: while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n\n if (!(seen ? cacheHas(seen, computed) : includes(result, computed, comparator))) {\n othIndex = othLength;\n\n while (--othIndex) {\n var cache = caches[othIndex];\n\n if (!(cache ? cacheHas(cache, computed) : includes(arrays[othIndex], computed, comparator))) {\n continue outer;\n }\n }\n\n if (seen) {\n seen.push(computed);\n }\n\n result.push(value);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n\n\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function (value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n\n\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined$1 : apply(func, object, args);\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 */\n\n\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n\n\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n\n\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\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 */\n\n\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\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 */\n\n\n function 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 objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\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\n objIsArr = true;\n objIsObj = false;\n }\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\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 stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n\n if (!isSameTag) {\n return false;\n }\n\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n\n\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\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 */\n\n\n function 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\n object = Object(object);\n\n while (index--) {\n var data = matchData[index];\n\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\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$1 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n\n if (!(result === undefined$1 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) {\n return false;\n }\n }\n }\n\n return true;\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 */\n\n\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n\n\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n\n\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\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 */\n\n\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\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 */\n\n\n function 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\n if (value == null) {\n return identity;\n }\n\n if (_typeof2(value) == 'object') {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n\n return property(value);\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 */\n\n\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n\n\n function baseLt(value, other) {\n return value < other;\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 */\n\n\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\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 */\n\n\n function baseMatches(source) {\n var matchData = getMatchData(source);\n\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n\n return function (object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\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 */\n\n\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n\n return function (object) {\n var objValue = get(object, path);\n return objValue === undefined$1 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n\n\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined$1;\n\n if (newValue === undefined$1) {\n newValue = srcValue;\n }\n\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n\n\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined$1;\n var isCommon = newValue === undefined$1;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n\n assignMergeValue(object, key, newValue);\n }\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n\n\n function baseNth(array, n) {\n var length = array.length;\n\n if (!length) {\n return;\n }\n\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined$1;\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 */\n\n\n function 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\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n var result = baseMap(collection, function (value, key, collection) {\n var criteria = arrayMap(iteratees, function (iteratee) {\n return iteratee(value);\n });\n return {\n 'criteria': criteria,\n 'index': ++index,\n 'value': value\n };\n });\n return baseSortBy(result, function (object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n\n\n function basePick(object, paths) {\n return basePickBy(object, paths, function (value, path) {\n return hasIn(object, path);\n });\n }\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n\n\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n\n return result;\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 */\n\n\n function basePropertyDeep(path) {\n return function (object) {\n return baseGet(object, path);\n };\n }\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n\n\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n\n splice.call(array, fromIndex, 1);\n }\n }\n\n return array;\n }\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n\n\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n\n if (length == lastIndex || index !== previous) {\n var previous = index;\n\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n\n return array;\n }\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n\n\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\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 */\n\n\n function 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\n return result;\n }\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n\n\n function baseRepeat(string, n) {\n var result = '';\n\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n } // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n\n\n do {\n if (n % 2) {\n result += string;\n }\n\n n = nativeFloor(n / 2);\n\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n\n\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n\n\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n\n\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined$1;\n\n if (newValue === undefined$1) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n\n return object;\n }\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n\n\n var baseSetData = !metaMap ? identity : function (func, data) {\n metaMap.set(func, data);\n return func;\n };\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n\n var baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\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 */\n\n\n function 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\n end = end > length ? length : end;\n\n if (end < 0) {\n end += length;\n }\n\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n\n while (++index < length) {\n result[index] = array[index + start];\n }\n\n return result;\n }\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection 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 */\n\n\n function baseSome(collection, predicate) {\n var result;\n baseEach(collection, function (value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n\n\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = low + high >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n\n return high;\n }\n\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n\n\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined$1;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined$1,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? computed <= value : computed < value;\n }\n\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * 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 * @returns {Array} Returns the new duplicate free array.\n */\n\n\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n\n\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n return +value;\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 */\n\n\n function 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\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\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 */\n\n\n function 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 } else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n\n if (set) {\n return setToArray(set);\n }\n\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee ? [] : result;\n }\n\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n value = comparator || value !== 0 ? value : 0;\n\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n\n if (iteratee) {\n seen.push(computed);\n }\n\n result.push(value);\n } else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n\n result.push(value);\n }\n }\n\n return result;\n }\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n\n\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n\n\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n\n\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {}\n\n return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);\n }\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n\n\n function baseWrapperValue(value, actions) {\n var result = value;\n\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n\n return arrayReduce(actions, function (result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays 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 array of values.\n */\n\n\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n\n\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined$1;\n assignFunc(result, props[index], value);\n }\n\n return result;\n }\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n\n\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n\n\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\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 */\n\n\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n\n\n var castRest = baseRest;\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined$1 ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n }\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n\n\n var clearTimeout = ctxClearTimeout || function (id) {\n return root.clearTimeout(id);\n };\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n\n\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n\n\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n\n\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n\n\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n\n\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n\n\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\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 */\n\n\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined$1,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined$1,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n\n return 0;\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 */\n\n\n function 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\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\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\n\n return object.index - other.index;\n }\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n\n\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n\n return result;\n }\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n\n\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n\n var offset = argsIndex;\n\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n\n return result;\n }\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n\n\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n\n while (++index < length) {\n array[index] = source[index];\n }\n\n return array;\n }\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n\n\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined$1;\n\n if (newValue === undefined$1) {\n newValue = source[key];\n }\n\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n\n return object;\n }\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\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 */\n\n\n function createAggregator(setter, initializer) {\n return function (collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n\n\n function createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined$1,\n guard = length > 2 ? sources[2] : undefined$1;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined$1;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined$1 : customizer;\n length = 1;\n }\n\n object = Object(object);\n\n while (++index < length) {\n var source = sources[index];\n\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n\n return object;\n });\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 */\n\n\n function createBaseEach(eachFunc, fromRight) {\n return function (collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\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\n return collection;\n };\n }\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 */\n\n\n function 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\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n\n return object;\n };\n }\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n\n return wrapper;\n }\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n\n\n function createCaseFirst(methodName) {\n return function (string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined$1;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1);\n return chr[methodName]() + trailing;\n };\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 */\n\n\n function createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createCtor(Ctor) {\n return function () {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n\n switch (args.length) {\n case 0:\n return new Ctor();\n\n case 1:\n return new Ctor(args[0]);\n\n case 2:\n return new Ctor(args[0], args[1]);\n\n case 3:\n return new Ctor(args[0], args[1], args[2]);\n\n case 4:\n return new Ctor(args[0], args[1], args[2], args[3]);\n\n case 5:\n return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n\n case 6:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n case 7:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args); // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n\n return isObject(result) ? result : thisBinding;\n };\n }\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n\n var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);\n length -= holders.length;\n\n if (length < arity) {\n return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined$1, args, holders, undefined$1, undefined$1, arity - length);\n }\n\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return apply(fn, this, args);\n }\n\n return wrapper;\n }\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n\n\n function createFind(findIndexFunc) {\n return function (collection, predicate, fromIndex) {\n var iterable = Object(collection);\n\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n\n predicate = function predicate(key) {\n return iteratee(iterable[key], key, iterable);\n };\n }\n\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined$1;\n };\n }\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n\n\n function createFlow(fromRight) {\n return flatRest(function (funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n\n while (index--) {\n var func = funcs[index];\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n\n index = wrapper ? index : length;\n\n while (++index < length) {\n func = funcs[index];\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined$1;\n\n if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);\n }\n }\n\n return function () {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n\n return result;\n };\n });\n }\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined$1 : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n\n length -= holdersCount;\n\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary, arity - length);\n }\n\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n length = args.length;\n\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n\n if (isAry && ary < length) {\n args.length = ary;\n }\n\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n\n return fn.apply(thisBinding, args);\n }\n\n return wrapper;\n }\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n\n\n function createInverter(setter, toIteratee) {\n return function (object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n\n\n function createMathOperation(operator, defaultValue) {\n return function (value, other) {\n var result;\n\n if (value === undefined$1 && other === undefined$1) {\n return defaultValue;\n }\n\n if (value !== undefined$1) {\n result = value;\n }\n\n if (other !== undefined$1) {\n if (result === undefined$1) {\n return other;\n }\n\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n\n result = operator(value, other);\n }\n\n return result;\n };\n }\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n\n\n function createOver(arrayFunc) {\n return flatRest(function (iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function (args) {\n var thisArg = this;\n return arrayFunc(iteratees, function (iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n\n\n function createPadding(length, chars) {\n chars = chars === undefined$1 ? ' ' : baseToString(chars);\n var charsLength = chars.length;\n\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars) ? castSlice(stringToArray(result), 0, length).join('') : result.slice(0, length);\n }\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n\n return apply(fn, isBind ? thisArg : this, args);\n }\n\n return wrapper;\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 */\n\n\n function createRange(fromRight) {\n return function (start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined$1;\n } // Ensure the sign of `-0` is preserved.\n\n\n start = toFinite(start);\n\n if (end === undefined$1) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n\n step = step === undefined$1 ? start < end ? 1 : -1 : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n\n\n function createRelationalOperation(operator) {\n return function (value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n\n return operator(value, other);\n };\n }\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined$1,\n newHoldersRight = isCurry ? undefined$1 : holders,\n newPartials = isCurry ? partials : undefined$1,\n newPartialsRight = isCurry ? undefined$1 : partials;\n bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n\n var newData = [func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, newHoldersRight, argPos, ary, arity];\n var result = wrapFunc.apply(undefined$1, newData);\n\n if (isLaziable(func)) {\n setData(result, newData);\n }\n\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n\n\n function createRound(methodName) {\n var func = Math[methodName];\n return function (number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n\n return func(number);\n };\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 */\n\n\n var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function (values) {\n return new Set(values);\n };\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n\n function createToPairs(keysFunc) {\n return function (object) {\n var tag = getTag(object);\n\n if (tag == mapTag) {\n return mapToArray(object);\n }\n\n if (tag == setTag) {\n return setToPairs(object);\n }\n\n return baseToPairs(object, keysFunc(object));\n };\n }\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n\n\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var length = partials ? partials.length : 0;\n\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined$1;\n }\n\n ary = ary === undefined$1 ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined$1 ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n partials = holders = undefined$1;\n }\n\n var data = isBindKey ? undefined$1 : getData(func);\n var newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity];\n\n if (data) {\n mergeData(newData, data);\n }\n\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined$1 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined$1, newData);\n }\n\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n\n\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined$1 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n return srcValue;\n }\n\n return objValue;\n }\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n\n\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined$1, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n\n return objValue;\n }\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n\n\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined$1 : value;\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 */\n\n\n function 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 } // Check that cyclic values are equal.\n\n\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined$1;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined$1) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\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 */\n\n\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\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 } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked) {\n return stacked == other;\n }\n\n bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).\n\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 }\n\n return false;\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 */\n\n\n function 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\n var index = objLength;\n\n while (index--) {\n var key = objProps[index];\n\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n } // Check that cyclic values are equal.\n\n\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n\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 ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n } // Recursively compare objects (susceptible to call stack limits).\n\n\n if (!(compared === undefined$1 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n\n skipCtor || (skipCtor = key == 'constructor');\n }\n\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.\n\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n\n\n function flatRest(func) {\n return setToString(overRest(func, undefined$1, flatten), func + '');\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 */\n\n\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n\n\n var getData = !metaMap ? noop : function (func) {\n return metaMap.get(func);\n };\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n\n function getFuncName(func) {\n var result = func.name + '',\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n\n return result;\n }\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n\n\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n\n\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\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 */\n\n\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\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 */\n\n\n function 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 result[length] = [key, value, isStrictComparable(value)];\n }\n\n return result;\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 */\n\n\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined$1;\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 */\n\n\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined$1;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\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 */\n\n\n var getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) {\n var result = [];\n\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n\n return result;\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 */\n\n var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined$1,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\n };\n }\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n\n\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop':\n start += size;\n break;\n\n case 'dropRight':\n end -= size;\n break;\n\n case 'take':\n end = nativeMin(end, start + size);\n break;\n\n case 'takeRight':\n start = nativeMax(start, end - size);\n break;\n }\n }\n\n return {\n 'start': start,\n 'end': end\n };\n }\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n\n\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\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 */\n\n\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n\n object = object[key];\n }\n\n if (result || ++index != length) {\n return result;\n }\n\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n\n\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length); // Add properties assigned by `RegExp#exec`.\n\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n\n return result;\n }\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n\n\n function initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n\n\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor();\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor();\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n\n\n function insertWrapDetails(source, details) {\n var length = details.length;\n\n if (!length) {\n return source;\n }\n\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\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 */\n\n\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\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 */\n\n\n function isIndex(value, length) {\n var type = _typeof2(value);\n\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\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 */\n\n\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n\n var type = _typeof2(index);\n\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n\n return false;\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 */\n\n\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n\n var type = _typeof2(value);\n\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n }\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 */\n\n\n function isKeyable(value) {\n var type = _typeof2(value);\n\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n }\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n\n\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n\n if (func === other) {\n return true;\n }\n\n var data = getData(other);\n return !!data && func === data[0];\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 */\n\n\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n\n\n var isMaskable = coreJsData ? isFunction : stubFalse;\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 */\n\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\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 */\n\n\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\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 */\n\n\n function matchesStrictComparable(key, srcValue) {\n return function (object) {\n if (object == null) {\n return false;\n }\n\n return object[key] === srcValue && (srcValue !== undefined$1 || key in Object(object));\n };\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 */\n\n\n function memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n\n return key;\n });\n var cache = result.cache;\n return result;\n }\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n\n\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; // Exit early if metadata can't be merged.\n\n if (!(isCommon || isCombo)) {\n return data;\n } // Use source `thisArg` if available.\n\n\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2]; // Set when currying a bound function.\n\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n } // Compose partial arguments.\n\n\n var value = source[3];\n\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n } // Compose partial right arguments.\n\n\n value = source[5];\n\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n } // Use source `argPos` if available.\n\n\n value = source[7];\n\n if (value) {\n data[7] = value;\n } // Use source `ary` if it's smaller.\n\n\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n } // Use source `arity` if one is not provided.\n\n\n if (data[9] == null) {\n data[9] = source[9];\n } // Use source `func` and merge bitmasks.\n\n\n data[0] = source[0];\n data[1] = newBitmask;\n return data;\n }\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\n\n function nativeKeysIn(object) {\n var result = [];\n\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n\n\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined$1 ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n\n index = -1;\n var otherArgs = Array(start + 1);\n\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n\n\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n\n\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined$1;\n }\n\n return array;\n }\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 */\n\n\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n\n\n var setData = shortOut(baseSetData);\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n\n var setTimeout = ctxSetTimeout || function (func, wait) {\n return root.setTimeout(func, wait);\n };\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n\n\n var setToString = shortOut(baseSetToString);\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n\n function setWrapToString(wrapper, reference, bitmask) {\n var source = reference + '';\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n\n\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n\n return func.apply(undefined$1, arguments);\n };\n }\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n\n\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n size = size === undefined$1 ? length : size;\n\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n array[rand] = array[index];\n array[index] = value;\n }\n\n array.length = size;\n return array;\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 */\n\n\n var stringToPath = memoizeCapped(function (string) {\n var result = [];\n\n if (string.charCodeAt(0) === 46\n /* . */\n ) {\n result.push('');\n }\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 /**\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 */\n\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\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 */\n\n\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n }\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n\n\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function (pair) {\n var value = '_.' + pair[0];\n\n if (bitmask & pair[1] && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n\n\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n /*------------------------------------------------------------------------*/\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 */\n\n\n function chunk(array, size, guard) {\n if (guard ? isIterateeCall(array, size, guard) : size === undefined$1) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n\n var length = array == null ? 0 : array.length;\n\n if (!length || size < 1) {\n return [];\n }\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\n return result;\n }\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n\n\n function compact(array) {\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\n if (value) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n }\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n\n\n function concat() {\n var length = arguments.length;\n\n if (!length) {\n return [];\n }\n\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n\n\n var difference = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];\n });\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n\n var differenceBy = baseRest(function (array, values) {\n var iteratee = last(values);\n\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined$1;\n }\n\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) : [];\n });\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n\n var differenceWith = baseRest(function (array, values) {\n var comparator = last(values);\n\n if (isArrayLikeObject(comparator)) {\n comparator = undefined$1;\n }\n\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined$1, comparator) : [];\n });\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n n = guard || n === undefined$1 ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n\n\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n n = guard || n === undefined$1 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n\n\n function dropRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];\n }\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n\n\n function dropWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];\n }\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n\n\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n\n return baseFill(array, value, start, end);\n }\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n\n\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n\n\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = length - 1;\n\n if (fromIndex !== undefined$1) {\n index = toInteger(fromIndex);\n index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n\n\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n\n\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n\n\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n depth = depth === undefined$1 ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\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 */\n\n\n function 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\n return result;\n }\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n\n\n function head(array) {\n return array && array.length ? array[0] : undefined$1;\n }\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n\n\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n\n return baseIndexOf(array, value, index);\n }\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n\n\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n\n\n var intersection = baseRest(function (arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];\n });\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first 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} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n\n var intersectionBy = baseRest(function (arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined$1;\n } else {\n mapped.pop();\n }\n\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee, 2)) : [];\n });\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n\n var intersectionWith = baseRest(function (arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n comparator = typeof comparator == 'function' ? comparator : undefined$1;\n\n if (comparator) {\n mapped.pop();\n }\n\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined$1, comparator) : [];\n });\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n\n\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined$1;\n }\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n\n\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return -1;\n }\n\n var index = length;\n\n if (fromIndex !== undefined$1) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n\n return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);\n }\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n\n\n function nth(array, n) {\n return array && array.length ? baseNth(array, toInteger(n)) : undefined$1;\n }\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n\n\n var pull = baseRest(pullAll);\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n\n function pullAll(array, values) {\n return array && array.length && values && values.length ? basePullAll(array, values) : array;\n }\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n\n\n function pullAllBy(array, values, iteratee) {\n return array && array.length && values && values.length ? basePullAll(array, values, getIteratee(iteratee, 2)) : array;\n }\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n\n\n function pullAllWith(array, values, comparator) {\n return array && array.length && values && values.length ? basePullAll(array, values, undefined$1, comparator) : array;\n }\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n\n\n var pullAt = flatRest(function (array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n basePullAt(array, arrayMap(indexes, function (index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n return result;\n });\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n\n function remove(array, predicate) {\n var result = [];\n\n if (!(array && array.length)) {\n return result;\n }\n\n var index = -1,\n indexes = [],\n length = array.length;\n predicate = getIteratee(predicate, 3);\n\n while (++index < length) {\n var value = array[index];\n\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n\n basePullAt(array, indexes);\n return result;\n }\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n\n\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\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 */\n\n\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n } else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined$1 ? length : toInteger(end);\n }\n\n return baseSlice(array, start, end);\n }\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n\n\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n\n\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n\n\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n\n if (length) {\n var index = baseSortedIndex(array, value);\n\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n\n\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n\n\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n\n\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n\n if (eq(array[index], value)) {\n return index;\n }\n }\n\n return -1;\n }\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.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 * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n\n\n function sortedUniq(array) {\n return array && array.length ? baseSortedUniq(array) : [];\n }\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\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] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n\n\n function sortedUniqBy(array, iteratee) {\n return array && array.length ? baseSortedUniq(array, getIteratee(iteratee, 2)) : [];\n }\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n\n\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n\n\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n\n n = guard || n === undefined$1 ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n\n\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n\n if (!length) {\n return [];\n }\n\n n = guard || n === undefined$1 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n\n\n function takeRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];\n }\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n\n\n function takeWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];\n }\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n\n\n var union = baseRest(function (arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. 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} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n\n var unionBy = baseRest(function (arrays) {\n var iteratee = last(arrays);\n\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined$1;\n }\n\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n\n var unionWith = baseRest(function (arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined$1;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined$1, comparator);\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 */\n\n function uniq(array) {\n return array && array.length ? baseUniq(array) : [];\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 */\n\n\n function uniqBy(array, iteratee) {\n return array && array.length ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n\n\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined$1;\n return array && array.length ? baseUniq(array, undefined$1, comparator) : [];\n }\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n\n\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n\n var length = 0;\n array = arrayFilter(array, function (group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function (index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n\n\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n\n var result = unzip(array);\n\n if (iteratee == null) {\n return result;\n }\n\n return arrayMap(result, function (group) {\n return apply(iteratee, undefined$1, group);\n });\n }\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n\n\n var without = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, values) : [];\n });\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n\n var xor = baseRest(function (arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n\n var xorBy = baseRest(function (arrays) {\n var iteratee = last(arrays);\n\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined$1;\n }\n\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n\n var xorWith = baseRest(function (arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined$1;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined$1, comparator);\n });\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n\n var zip = baseRest(unzip);\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n\n\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n\n\n var zipWith = baseRest(function (arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined$1;\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined$1;\n return unzipWith(arrays, iteratee);\n });\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n\n\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n\n\n function thru(value, interceptor) {\n return interceptor(value);\n }\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n\n\n var wrapperAt = flatRest(function (paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function interceptor(object) {\n return baseAt(object, paths);\n };\n\n if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n\n value = value.slice(start, +start + (length ? 1 : 0));\n\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined$1\n });\n\n return new LodashWrapper(value, this.__chain__).thru(function (array) {\n if (length && !array.length) {\n array.push(undefined$1);\n }\n\n return array;\n });\n });\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n\n function wrapperChain() {\n return chain(this);\n }\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n\n\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n\n\n function wrapperNext() {\n if (this.__values__ === undefined$1) {\n this.__values__ = toArray(this.value());\n }\n\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined$1 : this.__values__[this.__index__++];\n return {\n 'done': done,\n 'value': value\n };\n }\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n\n\n function wrapperToIterator() {\n return this;\n }\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n\n\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined$1;\n\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n\n var previous = clone;\n parent = parent.__wrapped__;\n }\n\n previous.__wrapped__ = value;\n return result;\n }\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n\n\n function wrapperReverse() {\n var value = this.__wrapped__;\n\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n\n wrapped = wrapped.reverse();\n\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined$1\n });\n\n return new LodashWrapper(wrapped, this.__chain__);\n }\n\n return this.thru(reverse);\n }\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n\n\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.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 * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n\n\n var countBy = createAggregator(function (result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\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} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined$1;\n }\n\n return func(collection, getIteratee(predicate, 3));\n }\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\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} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n\n\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n\n\n var find = createFind(findIndex);\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n\n var findLast = createFind(findLastIndex);\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 */\n\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.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 * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n\n\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.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 * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n\n\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined$1 ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\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|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n\n\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\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|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n\n\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\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 */\n\n\n var 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 /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n }\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `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 {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n\n\n var invokeMap = baseRest(function (collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n baseEach(collection, function (value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\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 iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n\n var keyBy = createAggregator(function (result, value, key) {\n baseAssignValue(result, key, value);\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 */\n\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\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 */\n\n\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n\n orders = guard ? undefined$1 : orders;\n\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n\n return baseOrderBy(collection, iteratees, orders);\n }\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n\n\n var partition = createAggregator(function (result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function () {\n return [[], []];\n });\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\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 * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\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 * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n\n\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\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} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n\n\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n\n\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n\n\n function sampleSize(collection, n, guard) {\n if (guard ? isIterateeCall(collection, n, guard) : n === undefined$1) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n\n\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n\n\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n\n var tag = getTag(collection);\n\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n\n return baseKeys(collection).length;\n }\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\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} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n\n\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined$1;\n }\n\n return func(collection, getIteratee(predicate, 3));\n }\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are 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|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n\n\n var sortBy = baseRest(function (collection, iteratees) {\n if (collection == null) {\n return [];\n }\n\n var length = iteratees.length;\n\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n /*------------------------------------------------------------------------*/\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 */\n\n var now = ctxNow || function () {\n return root.Date.now();\n };\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n\n\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n n = toInteger(n);\n return function () {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n\n\n function ary(func, n, guard) {\n n = guard ? undefined$1 : n;\n n = func && n == null ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined$1, undefined$1, undefined$1, undefined$1, n);\n }\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n\n\n function before(n, func) {\n var result;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n n = toInteger(n);\n return function () {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n\n if (n <= 1) {\n func = undefined$1;\n }\n\n return result;\n };\n }\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n\n\n var bind = baseRest(function (func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n\n var bindKey = baseRest(function (object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n\n return createWrap(key, bitmask, object, partials, holders);\n });\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n\n function curry(func, arity, guard) {\n arity = guard ? undefined$1 : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined$1, undefined$1, undefined$1, undefined$1, undefined$1, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n\n\n function curryRight(func, arity, guard) {\n arity = guard ? undefined$1 : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined$1, undefined$1, undefined$1, undefined$1, undefined$1, arity);\n result.placeholder = curryRight.placeholder;\n return result;\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 */\n\n\n function 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\n wait = toNumber(wait) || 0;\n\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 lastArgs = lastThis = undefined$1;\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; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\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 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // 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\n return lastCallTime === undefined$1 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined$1; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined$1;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined$1) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined$1;\n }\n\n function flush() {\n return timerId === undefined$1 ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined$1) {\n return leadingEdge(lastCallTime);\n }\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\n if (timerId === undefined$1) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n\n\n var defer = baseRest(function (func, args) {\n return baseDelay(func, 1, args);\n });\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n\n var delay = baseRest(function (func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\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 */\n\n\n function memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n var memoized = function memoized() {\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\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n } // Expose `MapCache`.\n\n\n memoize.Cache = MapCache;\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n return function () {\n var args = arguments;\n\n switch (args.length) {\n case 0:\n return !predicate.call(this);\n\n case 1:\n return !predicate.call(this, args[0]);\n\n case 2:\n return !predicate.call(this, args[0], args[1]);\n\n case 3:\n return !predicate.call(this, args[0], args[1], args[2]);\n }\n\n return !predicate.apply(this, args);\n };\n }\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n\n\n function once(func) {\n return before(2, func);\n }\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n\n\n var overArgs = castRest(function (func, transforms) {\n transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n var funcsLength = transforms.length;\n return baseRest(function (args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n\n return apply(func, this, args);\n });\n });\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n\n var partial = baseRest(function (func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined$1, partials, holders);\n });\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n\n var partialRight = baseRest(function (func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined$1, partials, holders);\n });\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n\n var rearg = flatRest(function (func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined$1, undefined$1, undefined$1, indexes);\n });\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n start = start === undefined$1 ? start : toInteger(start);\n return baseRest(func, start);\n }\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n\n\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function (args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n\n return apply(func, this, otherArgs);\n });\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 */\n\n\n function 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\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n\n\n function unary(func) {\n return ary(func, 1);\n }\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n\n\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n\n\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n\n\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n\n\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined$1;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n\n\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n\n\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined$1;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n\n\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\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 */\n\n\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n\n\n var gt = createRelationalOperation(baseGt);\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n\n var gte = createRelationalOperation(function (value, other) {\n return value >= other;\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 */\n\n var isArguments = baseIsArguments(function () {\n return arguments;\n }()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\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 */\n\n var isArray = Array.isArray;\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\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 */\n\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n\n\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n /**\n * Checks if `value` is classified as a boolean primitive or 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 boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n\n\n function isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\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 */\n\n\n var isBuffer = nativeIsBuffer || stubFalse;\n /**\n * Checks if `value` is classified as a `Date` 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 date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n /**\n * Checks if `value` is likely a DOM element.\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 DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\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 */\n\n\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n\n if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n\n var tag = getTag(value);\n\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n\n\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n\n\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined$1;\n var result = customizer ? customizer(value, other) : undefined$1;\n return result === undefined$1 ? baseIsEqual(value, other, undefined$1, customizer) : !!result;\n }\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\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 an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n\n\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag || typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value);\n }\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\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 finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n\n\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\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 */\n\n\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\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\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\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 an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n\n\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\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 */\n\n\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\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 */\n\n\n function isObject(value) {\n var type = _typeof2(value);\n\n return value != null && (type == 'object' || type == 'function');\n }\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 */\n\n\n function isObjectLike(value) {\n return value != null && _typeof2(value) == 'object';\n }\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n\n\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n\n\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined$1;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n\n\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\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 native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n\n\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n\n return baseIsNative(value);\n }\n /**\n * Checks if `value` is `null`.\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 `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n\n\n function isNull(value) {\n return value === null;\n }\n /**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n\n\n function isNil(value) {\n return value == null;\n }\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n\n\n function isNumber(value) {\n return typeof value == 'number' || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n\n\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n\n var proto = getPrototype(value);\n\n if (proto === null) {\n return true;\n }\n\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n }\n /**\n * Checks if `value` is classified as a `RegExp` 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 regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n\n\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\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 safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n\n\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\n function isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\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 */\n\n\n function isSymbol(value) {\n return _typeof2(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\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 */\n\n\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n\n function isUndefined(value) {\n return value === undefined$1;\n }\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n\n\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n\n\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n\n\n var lt = createRelationalOperation(baseLt);\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n\n var lte = createRelationalOperation(function (value, other) {\n return value <= other;\n });\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n\n function toArray(value) {\n if (!value) {\n return [];\n }\n\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\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 */\n\n\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n\n value = toNumber(value);\n\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n\n return value === value ? value : 0;\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 */\n\n\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n return result === result ? remainder ? result - remainder : result : 0;\n }\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is 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 convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n\n\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\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 */\n\n\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n\n\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\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 * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n\n\n function toSafeInteger(value) {\n return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;\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 */\n\n\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n\n\n var assign = createAssigner(function (object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n\n var assignIn = createAssigner(function (object, source) {\n copyObject(source, keysIn(source), object);\n });\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\n var assignInWith = createAssigner(function (object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\n var assignWith = createAssigner(function (object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n\n var at = flatRest(baseAt);\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n\n\n var defaults = baseRest(function (object, sources) {\n object = Object(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined$1;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined$1 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n\n var defaultsDeep = baseRest(function (args) {\n args.push(undefined$1, customDefaultsMerge);\n return apply(mergeWith, undefined$1, args);\n });\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n\n\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n\n\n function forIn(object, iteratee) {\n return object == null ? object : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n\n\n function forInRight(object, iteratee) {\n return object == null ? object : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n\n\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n\n\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n\n\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n\n\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\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 */\n\n\n function get(object, path, defaultValue) {\n var result = object == null ? undefined$1 : baseGet(object, path);\n return result === undefined$1 ? defaultValue : result;\n }\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\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 = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n\n\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\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 */\n\n\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n\n\n var invert = createInverter(function (result, value, key) {\n if (value != null && typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n\n var invertBy = createInverter(function (result, value, key) {\n if (value != null && typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n /**\n * Invokes the method at `path` 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 of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n\n var invoke = baseRest(baseInvoke);\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 */\n\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n\n\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n\n\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n\n\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n baseForOwn(object, function (value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n\n\n var merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n\n var mergeWith = createAssigner(function (object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n\n var omit = flatRest(function (object, paths) {\n var result = {};\n\n if (object == null) {\n return result;\n }\n\n var isDeep = false;\n paths = arrayMap(paths, function (path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n\n var length = paths.length;\n\n while (length--) {\n baseUnset(result, paths[length]);\n }\n\n return result;\n });\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n\n\n var pick = flatRest(function (object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n\n var props = arrayMap(getAllKeysIn(object), function (prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function (value, path) {\n return predicate(value, path[0]);\n });\n }\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n\n\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n var index = -1,\n length = path.length; // Ensure the loop is entered when path is empty.\n\n if (!length) {\n length = 1;\n object = undefined$1;\n }\n\n while (++index < length) {\n var value = object == null ? undefined$1 : object[toKey(path[index])];\n\n if (value === undefined$1) {\n index = length;\n value = defaultValue;\n }\n\n object = isFunction(value) ? value.call(object) : value;\n }\n\n return object;\n }\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n\n\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n\n\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined$1;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n\n\n var toPairs = createToPairs(keys);\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n\n var toPairsIn = createToPairs(keysIn);\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n iteratee = getIteratee(iteratee, 4);\n\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n\n if (isArrLike) {\n accumulator = isArr ? new Ctor() : [];\n } else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n } else {\n accumulator = {};\n }\n }\n\n (isArrLike ? arrayEach : baseForOwn)(object, function (value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n\n\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n\n\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n\n\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined$1;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n\n\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n\n\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n\n\n function clamp(number, lower, upper) {\n if (upper === undefined$1) {\n upper = lower;\n lower = undefined$1;\n }\n\n if (upper !== undefined$1) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n\n if (lower !== undefined$1) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n\n return baseClamp(toNumber(number), lower, upper);\n }\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n\n\n function inRange(number, start, end) {\n start = toFinite(start);\n\n if (end === undefined$1) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n\n\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined$1;\n }\n\n if (floating === undefined$1) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined$1;\n } else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined$1;\n }\n }\n\n if (lower === undefined$1 && upper === undefined$1) {\n lower = 0;\n upper = 1;\n } else {\n lower = toFinite(lower);\n\n if (upper === undefined$1) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1))), upper);\n }\n\n return baseRandom(lower, upper);\n }\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\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 camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n\n\n var camelCase = createCompounder(function (result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\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 */\n\n\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n\n\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n var length = string.length;\n position = position === undefined$1 ? length : baseClamp(toInteger(position), 0, length);\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n\n\n function escape(string) {\n string = toString(string);\n return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;\n }\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n\n\n function escapeRegExp(string) {\n string = toString(string);\n return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, '\\\\$&') : string;\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 */\n\n\n var kebabCase = createCompounder(function (result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n\n var lowerCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n\n var lowerFirst = createCaseFirst('toLowerCase');\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n\n if (!length || strLength >= length) {\n return string;\n }\n\n var mid = (length - strLength) / 2;\n return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);\n }\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n\n\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? string + createPadding(length - strLength, chars) : string;\n }\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n\n\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? createPadding(length - strLength, chars) + string : string;\n }\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n\n\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n\n\n function repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined$1) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n\n return baseRepeat(toString(string), n);\n }\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n\n\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\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 snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n\n\n var snakeCase = createCompounder(function (result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined$1;\n }\n\n limit = limit === undefined$1 ? MAX_ARRAY_LENGTH : limit >>> 0;\n\n if (!limit) {\n return [];\n }\n\n string = toString(string);\n\n if (string && (typeof separator == 'string' || separator != null && !isRegExp(separator))) {\n separator = baseToString(separator);\n\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n\n return string.split(separator, limit);\n }\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n\n\n var startCase = createCompounder(function (result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '