@cowprotocol/cow-sdk 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/bridging/BridgingSdk/BridgingSdk.d.ts +3 -3
  2. package/dist/bridging/BridgingSdk/mock/bridgeRequestMocks.d.ts +2 -1
  3. package/dist/bridging/const.d.ts +1 -0
  4. package/dist/bridging/providers/across/AcrossBridgeProvider.d.ts +2 -2
  5. package/dist/bridging/providers/bungee/BungeeBridgeProvider.d.ts +3 -2
  6. package/dist/bridging/providers/bungee/types.d.ts +3 -2
  7. package/dist/bridging/providers/mock/MockBridgeProvider.d.ts +2 -2
  8. package/dist/bridging/providers/utils/getGasLimitEstimationForHook.d.ts +1 -1
  9. package/dist/bridging/types.d.ts +10 -2
  10. package/dist/chains/types.d.ts +4 -0
  11. package/dist/chains/utils.d.ts +1 -0
  12. package/dist/index-df7f4c3d.js +29 -0
  13. package/dist/index-df7f4c3d.js.map +1 -0
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.js +4 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/index.modern.mjs +1 -1
  18. package/dist/index.module.js +4 -4
  19. package/dist/index.module.js.map +1 -1
  20. package/dist/package.json +2 -1
  21. package/dist/src/bridging/PROVIDER_README.md +56 -80
  22. package/dist/test/getWallet.d.ts +5 -0
  23. package/dist/{utils-0027f121.js → utils-d4263c91.js} +1 -1
  24. package/dist/{utils-0027f121.js.map → utils-d4263c91.js.map} +1 -1
  25. package/dist/{utils-23bf76fc.js → utils-f739380a.js} +1 -1
  26. package/dist/{utils-23bf76fc.js.map → utils-f739380a.js.map} +1 -1
  27. package/dist/{utils-fc43cd05.js → utils-f80c8347.js} +2 -2
  28. package/dist/{utils-fc43cd05.js.map → utils-f80c8347.js.map} +1 -1
  29. package/package.json +2 -1
  30. package/dist/index-7b4950ee.js +0 -29
  31. package/dist/index-7b4950ee.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as r,Contract as n,ethers as i,constants as o,BigNumber as s}from"ethers";import{Signer as a,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as c}from"@cowprotocol/app-data";import{keccak256 as d,toUtf8Bytes as h,solidityKeccak256 as p,Interface as f,defaultAbiCoder as m,getCreate2Address as y,joinSignature as g,splitSignature as b,arrayify as v,formatBytes32String as A}from"ethers/lib/utils";import w from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as S,isTypedDataSigner as I,hashTypedData as k,OrderBalance as P}from"@cowprotocol/contracts";import{Planner as C,Contract as N}from"@weiroll/weiroll.js";export{Contract as WeirollContract,Planner as WeirollPlanner}from"@weiroll/weiroll.js";import{gql as x,request as _}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var M,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(M||(M={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class L extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderQuoteError"}}class F extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function j(e){return!G(e)}function H(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function q(e){if(!j(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function V(e){if(!e)return[];const t=JSON.parse(e);return z(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function z(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}!function(e){e[e.MAINNET=1]="MAINNET",e[e.BNB=56]="BNB",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.POLYGON=137]="POLYGON",e[e.LENS=232]="LENS",e[e.BASE=8453]="BASE",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class K extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}let W=!1;function J(e){W&&console.log(`[COW TRADING SDK] ${e}`)}function Q(e){W=e}const Y="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",X="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",$={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${X}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},Z={[B.MAINNET]:ee(B.MAINNET,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",$),[B.GNOSIS_CHAIN]:ee(B.GNOSIS_CHAIN,"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",{decimals:18,name:"Wrapped XDAI",symbol:"WXDAI"}),[B.ARBITRUM_ONE]:ee(B.ARBITRUM_ONE,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",$),[B.BASE]:ee(B.BASE,"0x4200000000000000000000000000000000000006",$),[B.SEPOLIA]:ee(B.SEPOLIA,"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",$),[B.POLYGON]:ee(B.POLYGON,"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",{decimals:18,name:"Wrapped POL",symbol:"WPOL"}),[B.AVALANCHE]:ee(B.AVALANCHE,"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",{decimals:18,name:"Wrapped AVAX",symbol:"WAVAX"}),[B.LENS]:ee(B.LENS,"0x6bdc36e20d267ff0dd6097799f82e78907105e2f",{decimals:18,name:"Wrapped GHO",symbol:"WGHO"}),[B.BNB]:ee(B.BNB,"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",{decimals:18,name:"Wrapped BNB",symbol:"WBNB"})};function ee(e,t,r){const{logoUrl:n,...i}=r;return{chainId:e,address:t,...i,logoUrl:n||`${X}/${e}/${t.toLowerCase()}/logo.png`}}const te={address:Y,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${X}/1/${Y}/logo.png`},re="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",ne=`${re}/src/chains`,ie=`${ne}/images/arbitrum-logo-light.svg`,oe=`${ne}/images/arbitrum-logo-dark.svg`,se={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:{...te,chainId:B.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:ie,dark:oe},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},ae=`${ne}/images/base-logo.svg`,ue={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:{...te,chainId:B.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:ae,dark:ae},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"BaseScan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},le=`${ne}/images/gnosis-logo.svg`,ce={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:{...te,chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${X}/100/${Y}/logo.png`},addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:le,dark:le},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},de=`${ne}/images/mainnet-logo.svg`,he={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:{...te,chainId:B.MAINNET},addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:de,dark:de},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},pe=`${ne}/images/sepolia-logo.svg`,fe={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:{...te,chainId:B.SEPOLIA},addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:pe,dark:pe},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},me=`${ne}/images/avax-logo.svg`,ye={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:me,dark:me},nativeCurrency:{...te,chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:me},addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"SnowScan",url:"https://snowscan.xyz"}},ge=`${ne}/images/bnb-logo.svg`,be={id:B.BNB,label:"BNB",eip155Label:"BNB Chain Mainnet",logo:{light:ge,dark:ge},nativeCurrency:{...te,chainId:B.BNB,name:"BNB Chain Native Token",symbol:"BNB",logoUrl:ge},addressPrefix:"bnb",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}},rpcUrls:{default:{http:["https://bsc-dataseed1.bnbchain.org"]}},color:"#F0B90B",website:{name:"BNB Chain",url:"https://www.bnbchain.org"},docs:{name:"BNB Chain Docs",url:"https://docs.bnbchain.org"},blockExplorer:{name:"BscScan",url:"https://bscscan.com"},bridges:[{name:"BNB Chain Cross-Chain Bridge",url:"https://www.bnbchain.org/en/bnb-chain-bridge"}]},ve=`${X}/1/0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f/logo.png`,Ae={id:B.LENS,label:"Lens",eip155Label:"Lens Chain Mainnet",logo:{light:`${ne}/images/lens-logo-light.svg`,dark:`${ne}/images/lens-logo-dark.svg`},nativeCurrency:{...te,chainId:B.LENS,name:"GHO",symbol:"GHO",logoUrl:ve},addressPrefix:"lens",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1724216}},rpcUrls:{default:{http:["https://rpc.lens.xyz"]}},color:"#FFFFFF",website:{name:"Lens",url:"https://www.lens.xyz"},docs:{name:"Lens Docs",url:"https://docs.lens.xyz"},blockExplorer:{name:"Lens Explorer",url:"https://explorer.lens.xyz"},bridges:[{name:"Lens Bridge",url:"https://lens.xyz/bridge"}]},we=`${ne}/images/optimism-logo.svg`,Te={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:we,dark:we},nativeCurrency:{...te,chainId:10},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},Ee=`${ne}/images/polygon-logo.svg`,Se={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:Ee,dark:Ee},nativeCurrency:{...te,chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:Ee},addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},Ie={[B.MAINNET]:he,[B.GNOSIS_CHAIN]:ce,[B.ARBITRUM_ONE]:se,[B.BASE]:ue,[B.AVALANCHE]:ye,[B.POLYGON]:Se,[B.BNB]:be,[B.LENS]:Ae,[B.SEPOLIA]:fe},ke=Object.values(Ie),Pe=ke.map(e=>e.id),Ce={[D.OPTIMISM]:Te},Ne=ke.concat(Object.values(Ce)),xe=Ne.map(e=>e.id),_e=["prod","staging"],Re={env:"prod",chainId:B.MAINNET};function Me(e){return Pe.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function Oe(e){return Me(e)}const Be="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",De="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Le="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Fe="1.0.0",Ue="1.0.1",Ge=Ue,je={[Fe]:"0x00E989b87700514118Fa55326CD1cCE82faebEF6",[Ue]:"0x312f92fe5f1710408B20D52A374fa29e099cFA86"},He={[Fe]:"0x2CFFA8cf11B90C9F437567b86352169dF4009F73",[Ue]:"0xa2704cf562ad418bf0453f4b662ebf6a2489ed88"},qe={[Fe]:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",[Ue]:"0x60a03461009557601f61033d38819003918201601f19168301916001600160401b0383118484101761009957808492604094855283398101031261009557610052602061004b836100ad565b92016100ad565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405161027b90816100c28239608051818181608b01526101750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100955756fe60806040526004361015610018575b3661019757610197565b5f3560e01c8063025b22bc146100375763f851a4400361000e57610116565b346101125760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101125760043573ffffffffffffffffffffffffffffffffffffffff81169081810361011257337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160361010d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2005b61023d565b5f80fd5b34610112575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011257602061014e61016c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b33300361010d577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101f0575b1561023d577ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000005f351614156101c3565b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e15610277573d5ff35b3d5ffd"},Ve=Oe("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),ze=Oe("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Ke=Oe(De),We=Oe(Le),Je={...Oe("0xba3cb449bd2b4adddbc894d8697f5170800eadec"),[B.LENS]:"0x5A5b8aE7a0b4C0EAf453d10DCcfbA413f07ebdC2"},Qe={...Oe("0x04501b9b1d52e67f6862d157e00d13419d2d6e95"),[B.LENS]:"0xFb337f8a725A142f65fb9ff4902d41cc901de222"},Ye=4294967295,Xe="https://gnosis.mypinata.cloud/ipfs",$e="https://api.pinata.cloud",Ze=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,et=function(e,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${e}${r}${n?"?"+n:""}`,c={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(t(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(ot(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new tt(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class tt extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const rt=[408,425,429,500,502,503,504],nt={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof tt)||rt.includes(e.response.status)},it={tokensPerInterval:5,interval:"second"},ot=function(e){try{let t;const r=function(){if(204!==e.status)return function(r,n){try{var i=function(){const r=e.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(e){console.error(e)})}();return Promise.resolve(r&&r.then?r.then(function(e){return t?e:void 0}):t?r:void 0)}catch(e){return Promise.reject(e)}};function st(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=Be;return{...e,validTo:r,owner:n,sellToken:i}}(function(e){const{executedFeeAmount:t,executedFee:r}=e,n=BigInt(t||"0"),i=BigInt(r||"0"),o=String(n+i);return{...e,totalFee:o}}(e))}const at={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche",[B.LENS]:"https://api.cow.fi/lens",[B.BNB]:"https://api.cow.fi/bnb"},ut={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche",[B.LENS]:"https://barn.api.cow.fi/lens",[B.BNB]:"https://barn.api.cow.fi/bnb"};function lt(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class ct{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...Re,...t},this.rateLimiter=new e(t.limiterOpts||it)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new K("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new K("Must specify either owner or orderId"));const r=new URLSearchParams(lt(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},t)}getOrders({owner:e,offset:t=0,limit:r=1e3},n={}){const i=new URLSearchParams(lt({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(st))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(st))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>st(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:r}=this.getContextWithOverride(t),n=_e.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof tt&&404===r.response.status&&s?(i++,this.getOrder(e,{...t,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(e,{...t,env:r}).catch(o)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,r={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},r)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:r,env:n}=this.getContextWithOverride(t);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?at:ut}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||nt,u=r.limiterOpts?new e(r.limiterOpts):this.rateLimiter;return J(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,Ze)}`),et(s,t,u,a)}}var dt,ht,pt,ft,mt,yt,gt,bt,vt,At,wt,Tt,Et,St,It;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(dt||(dt={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(ht||(ht={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(pt||(pt={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(ft||(ft={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(mt||(mt={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(yt||(yt={})),function(e){e.BUY="buy",e.SELL="sell"}(gt||(gt={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(bt||(bt={})),function(e){e.BUY="buy"}(vt||(vt={})),function(e){e.SELL="sell"}(At||(At={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(wt||(wt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(Tt||(Tt={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(Et||(Et={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(St||(St={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(It||(It={}));const kt=BigInt(1e4);function Pt(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:o,buyAmountBeforeNetworkCosts:s,isSell:a,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:c}=Ct({sellDecimals:t,buyDecimals:r,orderParams:n});return{isSell:a,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:o.big,buyAmountBeforeNetworkCosts:s.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:c.big}}function Ct(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,i=n.kind===gt.SELL,o=xt(n.feeAmount,t),s=xt(n.sellAmount,t),a=xt(n.buyAmount,r),u=a.num/s.num,l=xt(s.big+o.big,t);return{isSell:i,quotePrice:u,networkCostAmount:o,sellAmountBeforeNetworkCosts:s,buyAmountAfterNetworkCosts:a,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:xt(u*l.num,r)}}function Nt(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:a,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:c,sellAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:h,quotePrice:p}=Ct({sellDecimals:n,buyDecimals:i,orderParams:r}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:r,isSell:n,partnerFeeBps:i}=e,o=i>0?(n?r.big:t.big)*BigInt(i)/kt:BigInt(0);return{partnerFeeAmount:o,afterPartnerFees:n?{sellAmount:t.big,buyAmount:r.big-o}:{sellAmount:t.big+o,buyAmount:r.big}}}({sellAmountAfterNetworkCosts:d,buyAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:h,sellAmountBeforeNetworkCosts:l,isSell:a,partnerFeeBps:s}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:r,slippagePercentBps:n}=e,i=e=>e*BigInt(n)/kt;return{afterSlippage:r?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:a,slippagePercentBps:o});return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:xt(p*u.num,i).big},partnerFee:{amount:m,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:h.big},afterNetworkCosts:{sellAmount:d.big,buyAmount:c.big},afterPartnerFees:f,afterSlippage:y}}function xt(e,t){if("number"==typeof e){const r=e*10**t,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:e}}const r=BigInt(e);return{big:r,num:Number(r)/10**t}}const _t={[pt.EIP712]:It.EIP712,[pt.ETHSIGN]:It.ETHSIGN},Rt=BigInt(15e4),Mt=()=>import("./utils-23bf76fc.js");class Ot{static signOrder(e,t,r){try{return Promise.resolve(Mt()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(Mt()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(Mt()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Mt()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(Mt()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Mt()).then(function({getDomain:t}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function Bt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Dt(e){return Lt(e)?Ie[e]:Ft(e)?Ce[e]:void 0}function Lt(e){return e in Ie}function Ft(e){return e in Ce}function Ut(e){return Lt(e)||Ft(e)}const Gt=10n**6n,jt=50,Ht={...Me(jt),[B.MAINNET]:200};function qt(e,t){return t?Ht[e]:jt}function Vt(e){return{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance}}const zt=1800;function Kt({chainId:e,from:t,networkCostsAmount:r="0",isEthFlow:n},i,o){const{sellAmount:s,buyAmount:a,sellToken:u,sellTokenDecimals:l,buyToken:c,buyTokenDecimals:d,kind:h,partiallyFillable:p=!1,slippageBps:f=qt(e,n),partnerFee:m,validFor:y=zt}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:c,sellAmount:s,buyAmount:a,receiver:g,validTo:b,kind:h,feeAmount:r,appData:o,partiallyFillable:p},{afterSlippage:A}=Nt({orderParams:v,slippagePercentBps:f,partnerFeeBps:Bt(m),sellDecimals:l,buyDecimals:d});return{sellToken:u,buyToken:c,sellAmount:A.sellAmount.toString(),buyAmount:A.buyAmount.toString(),validTo:b,kind:h,partiallyFillable:p,appData:o,receiver:g,feeAmount:"0",sellTokenBalance:St.ERC20,buyTokenBalance:dt.ERC20}}const Wt=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Jt{static createInterface(){return new r.Interface(Wt)}static connect(e,t){return new n(e,Wt,t)}}Jt.abi=Wt;const Qt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Yt{static createInterface(){return new r.Interface(Qt)}static connect(e,t){return new n(e,Qt,t)}}Yt.abi=Qt;const Xt=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class $t{static createInterface(){return new r.Interface(Xt)}static connect(e,t){return new n(e,Xt,t)}}$t.abi=Xt;const Zt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class er{static createInterface(){return new r.Interface(Zt)}static connect(e,t){return new n(e,Zt,t)}}er.abi=Zt;const tr=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class rr{static createInterface(){return new r.Interface(tr)}static connect(e,t){return new n(e,tr,t)}}rr.abi=tr;const nr=function(e,t,r,n){try{return Promise.resolve(Ot.generateOrderId(e,{...Vt(t),validTo:Ye,sellToken:Z[e].address},{owner:"staging"===n?Qe[e]:Je[e]})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:t.sellAmount,fee:t.feeAmount});const n=nr(e,function(e){const t=BigInt(e.buyAmount);return{...e,buyAmount:(t-BigInt(1)).toString()}}(t),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(e){return Promise.reject(e)}};function ir(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function or(e){return e.sellToken.toLowerCase()===Be.toLowerCase()}function sr(e){return e+e*BigInt(20)/BigInt(100)}function ar(e,t){const{costs:{networkFee:r,partnerFee:n}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return{...e,costs:{...e.costs,networkFee:{...r,amountInSellCurrency:t(r.amountInSellCurrency),amountInBuyCurrency:t(r.amountInBuyCurrency)},partnerFee:{...n,amount:t(n.amount)}},beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)}}function ur({quoteParameters:e,sellToken:t}){return{...e,sellToken:t}}function lr(e,t){return{...t,sellToken:Z[e].address}}const cr=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){var a;const u=null!==(a=r.slippageBps)&&void 0!==a?a:qt(n,!0),l={...lr(n,r),slippageBps:u},{quoteId:c}=l,d=function(e,t,r){return $t.connect("staging"===r?Qe[t]:Je[t],e)}(e,n,l.env),h=Kt({chainId:n,isEthFlow:!0,from:i,networkCostsAmount:o},l,t);return Promise.resolve(nr(n,h,s,l.env)).then(function(e){const r={buyToken:h.buyToken,receiver:h.receiver,sellAmount:h.sellAmount,buyAmount:h.buyAmount,feeAmount:h.feeAmount,partiallyFillable:h.partiallyFillable,quoteId:c,appData:t,validTo:h.validTo.toString()};return Promise.resolve(d.estimateGas.createOrder(r,{value:h.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Rt))).then(function(t){const n=d.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,orderToSign:h,transaction:{data:n,gasLimit:"0x"+sr(t).toString(16),to:d.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},dr=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(cr(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n,orderToSign:i}){return J("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return J("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return J(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,orderToSign:i,signature:"",signingScheme:It.EIP1271}})})})}catch(e){return Promise.reject(e)}},hr=function(e,t,r,n,i={}){try{function o(i){const o=Kt({chainId:p,from:i,networkCostsAmount:s,isEthFlow:u},n,r.appDataKeccak256);return J("Signing order..."),Promise.resolve(function(){try{return a===It.PRESIGN?Promise.resolve({signature:i,signingScheme:It.PRESIGN}):Promise.resolve(Ot.signOrder(o,p,t)).then(function(e){return{signature:e.signature,signingScheme:_t[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:l,appData:h,appDataHash:d};return J("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return J(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r,orderToSign:o}})})}const{networkCostsAmount:s="0",signingScheme:a=It.EIP712}=i,u=or(n);if(u){const f=n.quoteId;if("number"==typeof f)return Promise.resolve(dr(e,t,r,{...n,quoteId:f},i));throw new Error("quoteId is required for EthFlow orders")}const{quoteId:l=null,owner:c}=n,{appDataKeccak256:d,fullAppData:h}=r,p=e.context.chainId;return Promise.resolve(c?o(c):Promise.resolve(t.getAddress()).then(o))}catch(m){return Promise.reject(m)}};var pr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function fr(e){var t={exports:{}};return e(t,t.exports),t.exports}var mr={__proto__:null,default:{}},yr=fr(function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:mr.Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);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 "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},i.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},i.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=e[i]|e[i-1]<<8|e[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)this.words[o]|=(s=e[i]|e[i+1]<<8|e[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var d=1;for(l=u(e,c,e.length,t),c=0;c<s;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}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"],h=[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],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];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,c=67108863&a,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(s=(i=0|e.words[u-h|0])*(o=0|t.words[h])+c)/67108864|0,c=67108863&s;r.words[u]=0|c,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);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}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r++]=255&s,r<e.length&&(e[r++]=s>>8&255),r<e.length&&(e[r++]=s>>16&255),6===o?(r<e.length&&(e[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r--]=255&s,r>=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+(0|n.words[o])+i),i=t>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+i),i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)o=(t=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<r.length;s++)o=(t=(0|r.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,i,o,s=e.words,a=t.words,u=r.words,l=0,c=0|s[0],d=8191&c,h=c>>>13,p=0|s[1],f=8191&p,m=p>>>13,y=0|s[2],g=8191&y,b=y>>>13,v=0|s[3],A=8191&v,w=v>>>13,T=0|s[4],E=8191&T,S=T>>>13,I=0|s[5],k=8191&I,P=I>>>13,C=0|s[6],N=8191&C,x=C>>>13,_=0|s[7],R=8191&_,M=_>>>13,O=0|s[8],B=8191&O,D=O>>>13,L=0|s[9],F=8191&L,U=L>>>13,G=0|a[0],j=8191&G,H=G>>>13,q=0|a[1],V=8191&q,z=q>>>13,K=0|a[2],W=8191&K,J=K>>>13,Q=0|a[3],Y=8191&Q,X=Q>>>13,$=0|a[4],Z=8191&$,ee=$>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],de=8191&ce,he=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(l+(n=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,H))+Math.imul(h,j)|0))<<13)|0;l=((o=Math.imul(h,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,j),i=(i=Math.imul(f,H))+Math.imul(m,j)|0,o=Math.imul(m,H);var ge=(l+(n=n+Math.imul(d,V)|0)|0)+((8191&(i=(i=i+Math.imul(d,z)|0)+Math.imul(h,V)|0))<<13)|0;l=((o=o+Math.imul(h,z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),i=(i=Math.imul(g,H))+Math.imul(b,j)|0,o=Math.imul(b,H),n=n+Math.imul(f,V)|0,i=(i=i+Math.imul(f,z)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,z)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,J)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,j),i=(i=Math.imul(A,H))+Math.imul(w,j)|0,o=Math.imul(w,H),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,z)|0)+Math.imul(b,V)|0,o=o+Math.imul(b,z)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,J)|0;var ve=(l+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((o=o+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,j),i=(i=Math.imul(E,H))+Math.imul(S,j)|0,o=Math.imul(S,H),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,z)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,J)|0,n=n+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0;var Ae=(l+(n=n+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,Z)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(k,j),i=(i=Math.imul(k,H))+Math.imul(P,j)|0,o=Math.imul(P,H),n=n+Math.imul(E,V)|0,i=(i=i+Math.imul(E,z)|0)+Math.imul(S,V)|0,o=o+Math.imul(S,z)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,X)|0,n=n+Math.imul(f,Z)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Z)|0,o=o+Math.imul(m,ee)|0;var we=(l+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;l=((o=o+Math.imul(h,ne)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(N,j),i=(i=Math.imul(N,H))+Math.imul(x,j)|0,o=Math.imul(x,H),n=n+Math.imul(k,V)|0,i=(i=i+Math.imul(k,z)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,o=o+Math.imul(b,ee)|0,n=n+Math.imul(f,re)|0,i=(i=i+Math.imul(f,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0;var Te=(l+(n=n+Math.imul(d,oe)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,oe)|0))<<13)|0;l=((o=o+Math.imul(h,se)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(R,j),i=(i=Math.imul(R,H))+Math.imul(M,j)|0,o=Math.imul(M,H),n=n+Math.imul(N,V)|0,i=(i=i+Math.imul(N,z)|0)+Math.imul(x,V)|0,o=o+Math.imul(x,z)|0,n=n+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,J)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,Z)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0,n=n+Math.imul(f,oe)|0,i=(i=i+Math.imul(f,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(l+(n=n+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((o=o+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,j),i=(i=Math.imul(B,H))+Math.imul(D,j)|0,o=Math.imul(D,H),n=n+Math.imul(R,V)|0,i=(i=i+Math.imul(R,z)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,z)|0,n=n+Math.imul(N,W)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,n=n+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,le)|0;var Se=(l+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((o=o+Math.imul(h,he)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(F,j),i=(i=Math.imul(F,H))+Math.imul(U,j)|0,o=Math.imul(U,H),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,z)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,z)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(M,W)|0,o=o+Math.imul(M,J)|0,n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,X)|0)+Math.imul(x,Y)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,se)|0,n=n+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,le)|0,n=n+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,o=o+Math.imul(m,he)|0;var Ie=(l+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((o=o+Math.imul(h,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(M,Y)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(N,Z)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(P,re)|0,o=o+Math.imul(P,ne)|0,n=n+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,le)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,o=o+Math.imul(b,he)|0;var ke=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(F,W),i=(i=Math.imul(F,J))+Math.imul(U,W)|0,o=Math.imul(U,J),n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,ee)|0,n=n+Math.imul(N,re)|0,i=(i=i+Math.imul(N,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,n=n+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,le)|0,n=n+Math.imul(A,de)|0,i=(i=i+Math.imul(A,he)|0)+Math.imul(w,de)|0,o=o+Math.imul(w,he)|0;var Pe=(l+(n=n+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(M,re)|0,o=o+Math.imul(M,ne)|0,n=n+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,se)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,se)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,le)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(S,de)|0,o=o+Math.imul(S,he)|0;var Ce=(l+(n=n+Math.imul(A,fe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((o=o+Math.imul(w,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(F,Z),i=(i=Math.imul(F,ee))+Math.imul(U,Z)|0,o=Math.imul(U,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,n=n+Math.imul(N,ue)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(x,ue)|0,o=o+Math.imul(x,le)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(P,de)|0,o=o+Math.imul(P,he)|0;var Ne=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(S,fe)|0))<<13)|0;l=((o=o+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(F,re),i=(i=Math.imul(F,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,se)|0,n=n+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(M,ue)|0,o=o+Math.imul(M,le)|0,n=n+Math.imul(N,de)|0,i=(i=i+Math.imul(N,he)|0)+Math.imul(x,de)|0,o=o+Math.imul(x,he)|0;var xe=(l+(n=n+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((o=o+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(F,oe),i=(i=Math.imul(F,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,le)|0,n=n+Math.imul(R,de)|0,i=(i=i+Math.imul(R,he)|0)+Math.imul(M,de)|0,o=o+Math.imul(M,he)|0;var _e=(l+(n=n+Math.imul(N,fe)|0)|0)+((8191&(i=(i=i+Math.imul(N,me)|0)+Math.imul(x,fe)|0))<<13)|0;l=((o=o+Math.imul(x,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(F,ue),i=(i=Math.imul(F,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(D,de)|0,o=o+Math.imul(D,he)|0;var Re=(l+(n=n+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(M,fe)|0))<<13)|0;l=((o=o+Math.imul(M,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(F,de),i=(i=Math.imul(F,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Me=(l+(n=n+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((o=o+Math.imul(D,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Oe=(l+(n=Math.imul(F,fe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(U,fe)|0))<<13)|0;return l=((o=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Ae,u[5]=we,u[6]=Te,u[7]=Ee,u[8]=Se,u[9]=Ie,u[10]=ke,u[11]=Pe,u[12]=Ce,u[13]=Ne,u[14]=xe,u[15]=_e,u[16]=Re,u[17]=Me,u[18]=Oe,0!==l&&(u[19]=l,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,t.length-1),l=Math.max(0,o-e.length+1);l<=u;l++){var c=(0|e.words[o-l])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),i+=(s=(s=s+(c/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++)t[r]=e.words[r/26|0]>>>r%26&1;return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var o=r.sqr();n<t.length;n++,o=o.sqr())0!==t[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o;this.words[t]=(0|this.words[t])-a<<n|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-o|d>>>o,c=d&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return!(this.length<=n||!(this.words[n]&1<<t))},i.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==t&&n++,this.length=Math.min(n,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,n){var i,o;this._expand(e.length+n);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+s;var a=(0|e.words[i])*t;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r,n=this.clone(),o=e,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==t){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(o,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[o.length+d])+(0|n.words[o.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(o,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(o=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:o,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,s,a},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(c),s.isub(d)),o.iushrn(1),s.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a),s.isub(u)):(n.isub(t),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(o=0===t.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new S(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(A,v),A.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&r)<<4|o>>>22,o=s}e.words[i-10]=o>>>=22,e.length-=0===o&&e.length>10?10:9},A.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];e.words[r]=67108863&(t+=977*n),t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(w,v),n(T,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new A;else if("p224"===e)t=new w;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,o),h=this.pow(e,o.addn(1).iushrn(1)),p=this.pow(e,o),f=s;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var o=r[0],s=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var d=l>>c&1;o!==r[0]&&(o=this.sqr(o)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===c)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},n(I,S),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,pr)});let gr=!1,br=!1;const vr={debug:1,default:2,info:2,warning:3,error:4,off:5};let Ar=vr.default,wr=null;const Tr=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Er,Sr;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Er||(Er={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Sr||(Sr={}));const Ir="0123456789abcdef";class kr{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==vr[r]&&this.throwArgumentError("invalid log level name","logLevel",e),Ar>vr[r]||console.log.apply(console,t)}debug(...e){this._log(kr.levels.DEBUG,e)}info(...e){this._log(kr.levels.INFO,e)}warn(...e){this._log(kr.levels.WARNING,e)}makeError(e,t,r){if(br)return this.makeError("censored error",t,{});t||(t=kr.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=Ir[t[e]>>4],r+=Ir[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}}),n.push(`code=${t}`),n.push(`version=${this.version}`);const i=e;let o="";switch(t){case Sr.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Sr.CALL_EXCEPTION:case Sr.INSUFFICIENT_FUNDS:case Sr.MISSING_NEW:case Sr.NONCE_EXPIRED:case Sr.REPLACEMENT_UNDERPRICED:case Sr.TRANSACTION_REPLACED:case Sr.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach(function(e){s[e]=r[e]}),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,kr.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){Tr&&this.throwError("platform missing String.prototype.normalize",kr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Tr})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,kr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,kr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,kr.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,kr.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",kr.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",kr.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",kr.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return wr||(wr=new kr("logger/5.8.0")),wr}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",kr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),gr){if(!e)return;this.globalLogger().throwError("error censorship permanent",kr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}br=!!e,gr=!!t}static setLogLevel(e){const t=vr[e.toLowerCase()];null!=t?Ar=t:kr.globalLogger().warn("invalid log level - "+e)}static from(e){return new kr(e)}}kr.errors=Sr,kr.levels=Er;const Pr=new kr("bytes/5.8.0");function Cr(e){return!!e.toHexString}function Nr(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Nr(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function xr(e){return Dr(e)&&!(e.length%2)||Rr(e)}function _r(e){return"number"==typeof e&&e==e&&e%1==0}function Rr(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!_r(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!_r(r)||r<0||r>=256)return!1}return!0}function Mr(e,t){if(t||(t={}),"number"==typeof e){Pr.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),Nr(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Cr(e)&&(e=e.toHexString()),Dr(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Pr.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return Nr(new Uint8Array(n))}return Rr(e)?Nr(new Uint8Array(e)):Pr.throwArgumentError("invalid arrayify value","value",e)}function Or(e){const t=e.map(e=>Mr(e)),r=t.reduce((e,t)=>e+t.length,0),n=new Uint8Array(r);return t.reduce((e,t)=>(n.set(t,e),e+t.length),0),Nr(n)}function Br(e){let t=Mr(e);if(0===t.length)return t;let r=0;for(;r<t.length&&0===t[r];)r++;return r&&(t=t.slice(r)),t}function Dr(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Lr="0123456789abcdef";function Fr(e,t){if(t||(t={}),"number"==typeof e){Pr.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Lr[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Cr(e))return e.toHexString();if(Dr(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Pr.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Rr(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Lr[(240&n)>>4]+Lr[15&n]}return t}return Pr.throwArgumentError("invalid hexlify value","value",e)}function Ur(e){if("string"!=typeof e)e=Fr(e);else if(!Dr(e)||e.length%2)return null;return(e.length-2)/2}function Gr(e,t,r){return"string"!=typeof e?e=Fr(e):(!Dr(e)||e.length%2)&&Pr.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function jr(e){let t="0x";return e.forEach(e=>{t+=Fr(e).substring(2)}),t}function Hr(e){const t=function(e){"string"!=typeof e&&(e=Fr(e)),Dr(e)||Pr.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Fr(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function qr(e,t){for("string"!=typeof e?e=Fr(e):Dr(e)||Pr.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Pr.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function Vr(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(xr(e)){let r=Mr(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Fr(r.slice(0,32)),t.s=Fr(r.slice(32,64))):65===r.length?(t.r=Fr(r.slice(0,32)),t.s=Fr(r.slice(32,64)),t.v=r[64]):Pr.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Pr.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Fr(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=function(e,t){(e=Mr(e)).length>t&&Pr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),Nr(r)}(Mr(t._vs),32);t._vs=Fr(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Pr.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Fr(r);null==t.s?t.s=i:t.s!==i&&Pr.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Pr.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Pr.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Dr(t.r)?t.r=qr(t.r,32):Pr.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Dr(t.s)?t.s=qr(t.s,32):Pr.throwArgumentError("signature missing or invalid s","signature",e);const r=Mr(t.s);r[0]>=128&&Pr.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Fr(r);t._vs&&(Dr(t._vs)||Pr.throwArgumentError("signature invalid _vs","signature",e),t._vs=qr(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Pr.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function zr(e){return Fr(Or([(e=Vr(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const Kr="bignumber/5.8.0";var Wr=yr.BN;const Jr=new kr(Kr),Qr={},Yr=9007199254740991;let Xr=!1;class $r{constructor(e,t){e!==Qr&&Jr.throwError("cannot call constructor directly; use BigNumber.from",kr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return en(tn(this).fromTwos(e))}toTwos(e){return en(tn(this).toTwos(e))}abs(){return"-"===this._hex[0]?$r.from(this._hex.substring(1)):this}add(e){return en(tn(this).add(tn(e)))}sub(e){return en(tn(this).sub(tn(e)))}div(e){return $r.from(e).isZero()&&rn("division-by-zero","div"),en(tn(this).div(tn(e)))}mul(e){return en(tn(this).mul(tn(e)))}mod(e){const t=tn(e);return t.isNeg()&&rn("division-by-zero","mod"),en(tn(this).umod(t))}pow(e){const t=tn(e);return t.isNeg()&&rn("negative-power","pow"),en(tn(this).pow(t))}and(e){const t=tn(e);return(this.isNegative()||t.isNeg())&&rn("unbound-bitwise-result","and"),en(tn(this).and(t))}or(e){const t=tn(e);return(this.isNegative()||t.isNeg())&&rn("unbound-bitwise-result","or"),en(tn(this).or(t))}xor(e){const t=tn(e);return(this.isNegative()||t.isNeg())&&rn("unbound-bitwise-result","xor"),en(tn(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&rn("negative-width","mask"),en(tn(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&rn("negative-width","shl"),en(tn(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&rn("negative-width","shr"),en(tn(this).shrn(e))}eq(e){return tn(this).eq(tn(e))}lt(e){return tn(this).lt(tn(e))}lte(e){return tn(this).lte(tn(e))}gt(e){return tn(this).gt(tn(e))}gte(e){return tn(this).gte(tn(e))}isNegative(){return"-"===this._hex[0]}isZero(){return tn(this).isZero()}toNumber(){try{return tn(this).toNumber()}catch(e){rn("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Jr.throwError("this platform does not support BigInt",kr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Xr||(Xr=!0,Jr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Jr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",kr.errors.UNEXPECTED_ARGUMENT,{})),tn(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof $r)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new $r(Qr,Zr(e)):e.match(/^-?[0-9]+$/)?new $r(Qr,Zr(new Wr(e))):Jr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&rn("underflow","BigNumber.from",e),(e>=Yr||e<=-Yr)&&rn("overflow","BigNumber.from",e),$r.from(String(e));const t=e;if("bigint"==typeof t)return $r.from(t.toString());if(Rr(t))return $r.from(Fr(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return $r.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Dr(e)||"-"===e[0]&&Dr(e.substring(1))))return $r.from(e)}return Jr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function Zr(e){if("string"!=typeof e)return Zr(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Jr.throwArgumentError("invalid hex","value",e),"0x00"===(e=Zr(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function en(e){return $r.from(Zr(e))}function tn(e){const t=$r.from(e).toHexString();return new Wr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function rn(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),Jr.throwError(e,kr.errors.NUMERIC_FAULT,n)}const nn=new kr(Kr),on={},sn=$r.from(0),an=$r.from(-1);function un(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),nn.throwError(e,kr.errors.NUMERIC_FAULT,i)}let ln="0";for(;ln.length<256;)ln+=ln;function cn(e){if("number"!=typeof e)try{e=$r.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+ln.substring(0,e):nn.throwArgumentError("invalid decimal size","decimals",e)}function dn(e,t){null==t&&(t=0);const r=cn(t),n=(e=$r.from(e)).lt(sn);n&&(e=e.mul(an));let i=e.mod(r).toString();for(;i.length<r.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const o=e.div(r).toString();return e=1===r.length?o:o+"."+i,n&&(e="-"+e),e}function hn(e,t){null==t&&(t=0);const r=cn(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||nn.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&nn.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&nn.throwArgumentError("too many decimal points","value",e);let o=i[0],s=i[1];for(o||(o="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&un("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=$r.from(o),u=$r.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(an)),l}class pn{constructor(e,t,r,n){e!==on&&nn.throwError("cannot use FixedFormat constructor; use FixedFormat.from",kr.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=cn(n),Object.freeze(this)}static from(e){if(e instanceof pn)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||nn.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(e){const i=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&nn.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}return r%8&&nn.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&nn.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new pn(on,t,r,n)}}class fn{constructor(e,t,r,n){e!==on&&nn.throwError("cannot use FixedNumber constructor; use FixedNumber.from",kr.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&nn.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=hn(this._value,this.format.decimals),r=hn(e._value,e.format.decimals);return fn.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=hn(this._value,this.format.decimals),r=hn(e._value,e.format.decimals);return fn.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=hn(this._value,this.format.decimals),r=hn(e._value,e.format.decimals);return fn.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=hn(this._value,this.format.decimals),r=hn(e._value,e.format.decimals);return fn.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=fn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(mn.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=fn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(mn.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&nn.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=fn.from("1"+ln.substring(0,e),this.format),n=yn.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&nn.throwArgumentError("invalid byte width","width",e),qr($r.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return fn.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&($r.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Dr(e)||"bigint"==typeof e||Rr(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),fn.fromString(dn(e,t),pn.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=pn.from(t),n=hn(e,r.decimals);!r.signed&&n.lt(sn)&&un("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=qr(i,r.width/8));const o=dn(n,r.decimals);return new fn(on,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=pn.from(t);if(Mr(e).length>r.width/8)throw new Error("overflow");let n=$r.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=dn(n,r.decimals);return new fn(on,i,o,r)}static from(e,t){if("string"==typeof e)return fn.fromString(e,t);if(Rr(e))return fn.fromBytes(e,t);try{return fn.fromValue(e,0,t)}catch(e){if(e.code!==kr.errors.INVALID_ARGUMENT)throw e}return nn.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const mn=fn.from(1),yn=fn.from("0.5");var gn=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const bn=new kr("properties/5.8.0");function vn(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function An(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function wn(e){return gn(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function Tn(e,t){e&&"object"==typeof e||bn.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||bn.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function En(e){const t={};for(const r in e)t[r]=e[r];return t}const Sn={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function In(e){if(null==e||Sn[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;r<t.length;r++){let n=null;try{n=e[t[r]]}catch(e){continue}if(!In(n))return!1}return!0}return bn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function kn(e){if(In(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Pn(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&vn(t,r,Pn(n))}return t}return bn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Pn(e){return kn(e)}class Cn{constructor(e){for(const t in e)this[t]=Pn(e[t])}}const Nn=new kr("abstract-provider/5.8.0");class xn extends Cn{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class _n{constructor(){Nn.checkAbstract(new.target,_n),vn(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield wn({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let r=null,n=null,i=null;return e&&e.baseFeePerGas&&(r=e.baseFeePerGas,i=$r.from("1500000000"),n=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(o,s)}a((r=r.apply(e,[])).next())});var e,t,r}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const Rn=new kr("networks/5.8.0");function Mn(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new t.PocketProvider(e,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new t.AnkrProvider(e,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}if(t.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new t.QuickNodeProvider(e,r.quicknode))}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(n,i)}return n[0]};return t.renetwork=function(e){return Mn(e)},t}function On(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return On(e,t)},r}const Bn={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Mn("homestead")},Dn={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Mn("ropsten")},Ln={chainId:63,name:"classicMordor",_defaultProvider:On("https://www.ethercluster.com/mordor","classicMordor")},Fn={unspecified:{chainId:0,name:"unspecified"},homestead:Bn,mainnet:Bn,morden:{chainId:2,name:"morden"},ropsten:Dn,testnet:Dn,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Mn("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Mn("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Mn("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Mn("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Mn("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:On("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Ln,classicTestnet:Ln,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:On("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Mn("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Mn("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Mn("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Un(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Mr(t)}function Gn(e){e=Mr(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class jn{constructor(e){vn(this,"alphabet",e),vn(this,"base",e.length),vn(this,"_alphabetMap",{}),vn(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Mr(e);if(0===t.length)return"";let r=[0];for(let e=0;e<t.length;++e){let n=t[e];for(let e=0;e<r.length;++e)n+=r[e]<<8,r[e]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e<t.length-1;++e)n+=this._leader;for(let e=r.length-1;e>=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r<e.length;r++){let n=this._alphabetMap[e[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let r=0;e[r]===this._leader&&r<e.length-1;++r)t.push(0);return Mr(new Uint8Array(t.reverse()))}}new jn("abcdefghijklmnopqrstuvwxyz234567");const Hn=new jn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),qn=/*#__PURE__*/$r.from(-1),Vn=/*#__PURE__*/$r.from(0),zn=/*#__PURE__*/$r.from(1),Kn=/*#__PURE__*/$r.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Wn=fr(function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=pr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[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],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new x(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new x(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,o){return T["cshake"+e].update(t,n,i,o)[r]()}},b=function(e,t,r){return function(t,n,i,o){return T["kmac"+e].update(t,n,i,o)[r]()}},v=function(e,t,r,n){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new x(e,t,e)},r.update=function(e){return r.create().update(e)},v(r,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new x(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},v(r,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=g(e,0,"hex");return n.create=function(n,i,o){return i||o?new x(e,t,n).bytepad([i,o],r):T["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},v(n,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=b(e,0,"hex");return n.create=function(n,i,o){return new _(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},v(n,b,e,t)}}],T={},E=[],S=0;S<w.length;++S)for(var I=w[S],k=I.bits,P=0;P<k.length;++P){var C=I.name+"_"+k[P];if(E.push(C),T[C]=I.createMethod(k[P],I.padding),"sha3"!==I.name){var N=I.name+k[P];E.push(N),T[N]=T[C]}}function x(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function _(e,t,r){x.call(this,e,t,r)}x.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<d+1;++i)a[i]=0;if(r)for(i=this.start;h<c&&i<u;++h)a[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(o=e.charCodeAt(h))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[d],i=0;i<d;++i)p[i]^=a[i];R(p),this.reset=!0}else this.start=i}return this},x.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},x.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var i=0;if(r)i=e.length;else for(var o=0;o<e.length;++o){var a=e.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},x.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=[];return i.length=t-r%t,this.update(i),this},x.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];R(n)}},x.prototype.toString=x.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<t&&s<n;++o,++s)u+=a[(e=r[o])>>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(R(r),o=0)}return i&&(u+=a[(e=r[o])>>4&15]+a[15&e],i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},x.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)u[s]=r[o];s%t==0&&R(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},x.prototype.buffer=x.prototype.arrayBuffer,x.prototype.digest=x.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[e=a<<2]=255&(t=n[s]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;a%r==0&&R(n)}return o&&(u[e=a<<2]=255&(t=n[s]),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},(_.prototype=new x).finalize=function(){return this.encode(this.outputBits,!0),x.prototype.finalize.call(this)};var R=function(e){var t,r,n,i,o,s,a,u,l,d,h,p,f,m,y,g,b,v,A,w,T,E,S,I,k,P,C,N,x,_,R,M,O,B,D,L,F,U,G,j,H,q,V,z,K,W,J,Q,Y,X,$,Z,ee,te,re,ne,ie,oe,se,ae,ue,le,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((a=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(s=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,r=o^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,r=a^(h<<1|d>>>31),e[4]^=t=s^(d<<1|h>>>31),e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,r=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,r=h^(o<<1|i>>>31),e[8]^=t=d^(i<<1|o>>>31),e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,N=e[20]<<3|e[21]>>>29,x=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,_=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,L=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,M=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,C=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&A,e[10]=I^~P&N,e[11]=k^~C&x,e[20]=B^~L&U,e[21]=D^~F&G,e[30]=z^~W&Q,e[31]=K^~J&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=P^~N&_,e[13]=C^~x&R,e[22]=L^~U&j,e[23]=F^~G&H,e[32]=W^~Q&X,e[33]=J^~Y&$,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=N^~_&M,e[15]=x^~R&O,e[24]=U^~j&q,e[25]=G^~H&V,e[34]=Q^~X&Z,e[35]=Y^~$&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~S&y,e[16]=_^~M&I,e[17]=R^~O&k,e[26]=j^~q&B,e[27]=H^~V&D,e[36]=X^~Z&z,e[37]=$^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=M^~I&P,e[19]=O^~k&C,e[28]=q^~B&L,e[29]=V^~D&F,e[38]=Z^~z&W,e[39]=ee^~K&J,e[48]=le^~te&ne,e[49]=ce^~re&ie,e[0]^=c[n],e[1]^=c[n+1]};if(o)e.exports=T;else for(S=0;S<E.length;++S)n[E[S]]=T[E[S]]}()}),Jn=Wn;function Qn(e){return"0x"+Jn.keccak_256(Mr(e))}const Yn=new kr("strings/5.8.0");var Xn,$n;function Zn(e,t,r,n,i){if(e===$n.BAD_PREFIX||e===$n.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===$n.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(Xn||(Xn={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}($n||($n={}));const ei=Object.freeze({error:function(e,t,r,n,i){return Yn.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:Zn,replace:function(e,t,r,n,i){return e===$n.OVERLONG?(n.push(i),0):(n.push(65533),Zn(e,t,r))}});function ti(e,t){null==t&&(t=ei.error),e=Mr(e);const r=[];let n=0;for(;n<e.length;){const i=e[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=t(128==(192&i)?$n.UNEXPECTED_CONTINUE:$n.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t($n.OVERRUN,n-1,e,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[n];if(128!=(192&i)){n+=t($n.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t($n.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t($n.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t($n.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function ri(e,t=Xn.current){t!=Xn.current&&(Yn.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Mr(r)}function ni(e,t){return ti(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function ii(e){return Qn(ri(e))}const oi="hash/5.8.0";function si(e,t){null==t&&(t=1);const r=[],n=r.forEach,i=function(e,t){n.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):r.push(e)})};return i(e,t),r}function ai(e){return 1&e?~e>>1:e>>1}function ui(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function li(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=ai(t());return r}function ci(e,t){let r=ui(e(),e),n=e(),i=ui(n,e),o=function(e,t){let r=Array(e);for(let n=0;n<e;n++)r[n]=1+t();return r}(n,e);for(let e=0;e<n;e++)for(let t=0;t<o[e];t++)r.push(i[e]+t);return t?r.map(e=>t[e]):r}function di(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)li(e,r).forEach((e,t)=>n[t].push(e));return n}function hi(e,t){let r=1+t(),n=t(),i=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(r)}return t}(t);return si(di(i.length,1+e,t).map((e,t)=>{const o=e[0],s=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*n;return[o+t*r,s.map(e=>e+i)]})}))}function pi(e,t){return di(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const fi=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),i=1,o=[0,1];for(let e=1;e<n;e++)o.push(i+=r());let s=r(),a=t;t+=s;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<o[n]?r=n:t=n}if(0==t)break;y.push(t);let s=g+Math.floor(b*o[t]/i),a=g+Math.floor(b*o[t+1]/i)-1;for(;0==((s^a)&h);)m=m<<1&f|c(),s=s<<1&f,a=a<<1&f|1;for(;s&~a&p;)m=m&h|m<<1&f>>>1|c(),s=s<<1^h,a=(a^h)<<1|h|1;g=s,b=1+a-s}let v=n-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[a++]<<16|e[a++]<<8|e[a++]);case 2:return v+256+(e[a++]<<8|e[a++]);case 1:return v+e[a++];default:return t-1}})}(Un("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=="))),mi=new Set(ci(fi)),yi=new Set(ci(fi)),gi=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(hi(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(pi(r,e))}return function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[n[0]]=n[1]}return t}(si(t))}(fi),bi=function(e){let t=ci(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=ci(e,t);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((e,t)=>t.set.size-e.set.size);let i=e(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(fi),vi=45,Ai=95;function wi(e){return function(e,t=Xn.current){return ti(ri(e,t))}(e)}function Ti(e){return e.filter(e=>65039!=e)}function Ei(e){for(let t of e.split(".")){let e=wi(t);try{for(let t=e.lastIndexOf(Ai)-1;t>=0;t--)if(e[t]!==Ai)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===vi&&e[3]===vi)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function Si(e,t){var r;let n,i,o=bi,s=[],a=e.length;for(t&&(t.length=0);a;){let u=e[--a];if(o=null===(r=o.branches.find(e=>e.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==e[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),t&&t.push(...e.slice(a).reverse()),e.length=a)}return n}const Ii=new kr(oi),ki=new Uint8Array(32);function Pi(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Ci(e){const t=ri(function(e){return Ei(function(e,t){let r=wi(e).reverse(),n=[];for(;r.length;){let e=Si(r);if(e){n.push(...t(e));continue}let i=r.pop();if(mi.has(i)){n.push(i);continue}if(yi.has(i))continue;let o=gi[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Ei(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,Ti))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Pi(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Pi(t.slice(n))),r}function Ni(e){"string"!=typeof e&&Ii.throwArgumentError("invalid ENS name; not a string","name",e);let t=ki;const r=Ci(e);for(;r.length;)t=Qn(Or([t,Qn(r.pop())]));return Fr(t)}ki.fill(0);const xi=new kr("rlp/5.8.0");function _i(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Ri(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Mi(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Mi(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=_i(t.length);return r.unshift(247+r.length),r.concat(t)}xr(e)||xi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Mr(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=_i(t.length);return r.unshift(183+r.length),r.concat(t)}function Oi(e){return Fr(Mi(e))}function Bi(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Di(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&xi.throwError("child data too short",kr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Di(e,t){if(0===e.length&&xi.throwError("data too short",kr.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&xi.throwError("data short segment too short",kr.errors.BUFFER_OVERRUN,{});const n=Ri(e,t+1,r);return t+1+r+n>e.length&&xi.throwError("data long segment too short",kr.errors.BUFFER_OVERRUN,{}),Bi(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&xi.throwError("data array too short",kr.errors.BUFFER_OVERRUN,{}),Bi(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&xi.throwError("data array too short",kr.errors.BUFFER_OVERRUN,{});const n=Ri(e,t+1,r);return t+1+r+n>e.length&&xi.throwError("data array too short",kr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Fr(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&xi.throwError("data too short",kr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Fr(e.slice(t+1,t+1+r))}}return{consumed:1,result:Fr(e[t])}}function Li(e){const t=Mr(e),r=Di(t,0);return r.consumed!==t.length&&xi.throwArgumentError("invalid rlp data","data",e),r.result}const Fi=new kr("address/5.8.0");function Ui(e){Dr(e,20)||Fi.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=Mr(Qn(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Gi={};for(let e=0;e<10;e++)Gi[String(e)]=String(e);for(let e=0;e<26;e++)Gi[String.fromCharCode(65+e)]=String(10+e);const ji=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Hi(e){let t=null;if("string"!=typeof e&&Fi.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Ui(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Fi.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>Gi[e]).join("");for(;t.length>=ji;){let e=t.substring(0,ji);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}(e)&&Fi.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new Wr(r,36).toString(16);t.length<40;)t="0"+t;t=Ui("0x"+t)}else Fi.throwArgumentError("invalid address","address",e);var r;return t}function qi(e){let t=null;try{t=Hi(e.from)}catch(t){Fi.throwArgumentError("missing from address","transaction",e)}return Hi(Gr(Qn(Oi([t,Br(Mr($r.from(e.nonce).toHexString()))])),12))}const Vi=new kr(oi),zi=new Uint8Array(32);zi.fill(0);const Ki=$r.from(-1),Wi=$r.from(0),Ji=$r.from(1),Qi=$r.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Yi=qr(Ji.toHexString(),32),Xi=qr(Wi.toHexString(),32),$i={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Zi=["name","version","chainId","verifyingContract","salt"];function eo(e){return function(t){return"string"!=typeof t&&Vi.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const to={name:eo("name"),version:eo("version"),chainId:function(e){try{return $r.from(e).toString()}catch(e){}return Vi.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Hi(e).toLowerCase()}catch(e){}return Vi.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Mr(e);if(32!==t.length)throw new Error("bad length");return Fr(t)}catch(e){}return Vi.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function ro(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&Vi.throwArgumentError("invalid numeric width","type",e);const i=Qi.mask(r?n-1:n),o=r?i.add(Ji).mul(Ki):Wi;return function(t){const r=$r.from(t);return(r.lt(o)||r.gt(i))&&Vi.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),qr(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&Vi.throwArgumentError("invalid bytes width","type",e),function(t){return Mr(t).length!==r&&Vi.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Mr(e),r=t.length%32;return r?jr([t,zi.slice(r)]):Fr(t)}(t)}}}switch(e){case"address":return function(e){return qr(Hi(e),32)};case"bool":return function(e){return e?Yi:Xi};case"bytes":return function(e){return Qn(e)};case"string":return function(e){return ii(e)}}return null}function no(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class io{constructor(e){vn(this,"types",Object.freeze(Pn(e))),vn(this,"_encoderCache",{}),vn(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach(e=>{t[e]={},r[e]=[],n[e]={}});for(const n in e){const i={};e[n].forEach(o=>{i[o.name]&&Vi.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",e),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&Vi.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),ro(s)||(r[s]||Vi.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",e),r[s].push(n),t[n][s]=!0)})}const i=Object.keys(r).filter(e=>0===r[e].length);0===i.length?Vi.throwArgumentError("missing primary type","types",e):i.length>1&&Vi.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),vn(this,"primaryType",i[0]),function i(o,s){s[o]&&Vi.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e),s[o]=!0,Object.keys(t[o]).forEach(e=>{r[e]&&(i(e,s),Object.keys(s).forEach(t=>{n[t][e]=!0}))}),delete s[o]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=no(t,e[t])+r.map(t=>no(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=ro(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&Vi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(Qn)),Qn(jr(i))}}const r=this.types[e];if(r){const t=ii(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?Qn(n):n});return n.unshift(t),jr(n)}}return Vi.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Vi.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Qn(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(ro(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],i=parseInt(n[3]);return i>=0&&t.length!==i&&Vi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,r))}const i=this.types[e];return i?i.reduce((e,{name:n,type:i})=>(e[n]=this._visit(i,t[n],r),e),{}):Vi.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new io(e)}static getPrimaryType(e){return io.from(e).primaryType}static hashStruct(e,t,r){return io.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=$i[r];n||Vi.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>Zi.indexOf(e.name)-Zi.indexOf(t.name)),io.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return jr(["0x1901",io.hashDomain(e),io.from(t).hash(r)])}static hash(e,t,r){return Qn(io.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=En(e);const i={};e.verifyingContract&&!Dr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=io.from(t);o.visit(r,(e,t)=>("address"!==e||Dr(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield n(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),r=o.visit(r,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:r}},new((o=void 0)||(o=Promise))(function(e,t){function r(e){try{a(s.next(e))}catch(e){t(e)}}function n(e){try{a(s.throw(e))}catch(e){t(e)}}function a(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(e,t,r){io.hashDomain(e);const n={},i=[];Zi.forEach(t=>{const r=e[t];null!=r&&(n[t]=to[t](r),i.push({name:t,type:$i[t]}))});const o=io.from(t),s=En(t);return s.EIP712Domain?Vi.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return Fr(Mr(t));if(e.match(/^u?int/))return $r.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Vi.throwArgumentError("invalid string","value",t),t}return Vi.throwArgumentError("unsupported type","type",e)})}}}var oo=so;function so(e,t){if(!e)throw new Error(t||"Assertion failed")}function ao(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function uo(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function lo(e){return 1===e.length?"0"+e:e}function co(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}so.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var ho={inherits:fr(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):ao(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=lo(e[r].toString(16));return t},htonl:uo,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=uo(i)),r+=co(i.toString(16))}return r},zero2:lo,zero8:co,join32:function(e,t,r,n){var i=r-t;oo(i%4==0);for(var o=new Array(i/4),s=0,a=t;s<o.length;s++,a+=4)o[s]=("big"===n?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a])>>>0;return o},split32:function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=n+e[t+1]>>>0;e[t]=(i<n?1:0)+r+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,o,s,a){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,o,s,a){return t+n+o+a>>>0},sum64_5_hi:function(e,t,r,n,i,o,s,a,u,l){var c=0,d=t;return c+=(d=d+n>>>0)<t?1:0,c+=(d=d+o>>>0)<o?1:0,c+=(d=d+a>>>0)<a?1:0,e+r+i+s+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,o,s,a,u,l){return t+n+o+a+l>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function po(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var fo=po;po.prototype.update=function(e,t){if(e=ho.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=ho.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},po.prototype.digest=function(e){return this.update(this._pad()),oo(null===this.pending),this._digest(e)},po.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var mo={BlockHash:fo},yo=ho.rotr32;function go(e,t,r){return e&t^~e&r}function bo(e,t,r){return e&t^e&r^t&r}var vo=go,Ao=bo,wo=ho.rotl32,To=ho.sum32,Eo=ho.sum32_5,So=function(e,t,r,n){return 0===e?go(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?bo(t,r,n):void 0},Io=mo.BlockHash,ko=[1518500249,1859775393,2400959708,3395469782];function Po(){if(!(this instanceof Po))return new Po;Io.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}ho.inherits(Po,Io);var Co=Po;Po.blockSize=512,Po.outSize=160,Po.hmacStrength=80,Po.padLength=64,Po.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=wo(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),c=Eo(wo(i,5),So(l,o,s,a),u,r[n],ko[l]);u=a,a=s,s=wo(o,30),o=i,i=c}this.h[0]=To(this.h[0],i),this.h[1]=To(this.h[1],o),this.h[2]=To(this.h[2],s),this.h[3]=To(this.h[3],a),this.h[4]=To(this.h[4],u)},Po.prototype._digest=function(e){return"hex"===e?ho.toHex32(this.h,"big"):ho.split32(this.h,"big")};var No=ho.sum32,xo=ho.sum32_4,_o=ho.sum32_5,Ro=vo,Mo=Ao,Oo=function(e){return yo(e,2)^yo(e,13)^yo(e,22)},Bo=function(e){return yo(e,6)^yo(e,11)^yo(e,25)},Do=function(e){return yo(e,7)^yo(e,18)^e>>>3},Lo=function(e){return yo(e,17)^yo(e,19)^e>>>10},Fo=mo.BlockHash,Uo=[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];function Go(){if(!(this instanceof Go))return new Go;Fo.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Uo,this.W=new Array(64)}ho.inherits(Go,Fo);var jo=Go;function Ho(){if(!(this instanceof Ho))return new Ho;jo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Go.blockSize=512,Go.outSize=256,Go.hmacStrength=192,Go.padLength=64,Go.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=xo(Lo(r[n-2]),r[n-7],Do(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(oo(this.k.length===r.length),n=0;n<r.length;n++){var h=_o(d,Bo(u),Ro(u,l,c),this.k[n],r[n]),p=No(Oo(i),Mo(i,o,s));d=c,c=l,l=u,u=No(a,h),a=s,s=o,o=i,i=No(h,p)}this.h[0]=No(this.h[0],i),this.h[1]=No(this.h[1],o),this.h[2]=No(this.h[2],s),this.h[3]=No(this.h[3],a),this.h[4]=No(this.h[4],u),this.h[5]=No(this.h[5],l),this.h[6]=No(this.h[6],c),this.h[7]=No(this.h[7],d)},Go.prototype._digest=function(e){return"hex"===e?ho.toHex32(this.h,"big"):ho.split32(this.h,"big")},ho.inherits(Ho,jo);var qo=Ho;Ho.blockSize=512,Ho.outSize=224,Ho.hmacStrength=192,Ho.padLength=64,Ho.prototype._digest=function(e){return"hex"===e?ho.toHex32(this.h.slice(0,7),"big"):ho.split32(this.h.slice(0,7),"big")};var Vo=ho.rotr64_hi,zo=ho.rotr64_lo,Ko=ho.shr64_hi,Wo=ho.shr64_lo,Jo=ho.sum64,Qo=ho.sum64_hi,Yo=ho.sum64_lo,Xo=ho.sum64_4_hi,$o=ho.sum64_4_lo,Zo=ho.sum64_5_hi,es=ho.sum64_5_lo,ts=mo.BlockHash,rs=[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];function ns(){if(!(this instanceof ns))return new ns;ts.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=rs,this.W=new Array(160)}ho.inherits(ns,ts);var is=ns;function os(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function ss(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function as(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function us(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function ls(e,t){var r=Vo(e,t,28)^Vo(t,e,2)^Vo(t,e,7);return r<0&&(r+=4294967296),r}function cs(e,t){var r=zo(e,t,28)^zo(t,e,2)^zo(t,e,7);return r<0&&(r+=4294967296),r}function ds(e,t){var r=Vo(e,t,14)^Vo(e,t,18)^Vo(t,e,9);return r<0&&(r+=4294967296),r}function hs(e,t){var r=zo(e,t,14)^zo(e,t,18)^zo(t,e,9);return r<0&&(r+=4294967296),r}function ps(e,t){var r=Vo(e,t,1)^Vo(e,t,8)^Ko(e,t,7);return r<0&&(r+=4294967296),r}function fs(e,t){var r=zo(e,t,1)^zo(e,t,8)^Wo(e,t,7);return r<0&&(r+=4294967296),r}function ms(e,t){var r=Vo(e,t,19)^Vo(t,e,29)^Ko(e,t,6);return r<0&&(r+=4294967296),r}function ys(e,t){var r=zo(e,t,19)^zo(t,e,29)^Wo(e,t,6);return r<0&&(r+=4294967296),r}function gs(){if(!(this instanceof gs))return new gs;is.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}ns.blockSize=1024,ns.outSize=512,ns.hmacStrength=192,ns.padLength=128,ns.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=ms(r[n-4],r[n-3]),o=ys(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=ps(r[n-30],r[n-29]),l=fs(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=Xo(i,o,s,a,u,l,c,d),r[n+1]=$o(i,o,s,a,u,l,c,d)}},ns.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];oo(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=ds(d,h),E=hs(d,h),S=os(d,0,p,0,m),I=ss(0,h,0,f,0,y),k=this.k[v],P=this.k[v+1],C=r[v],N=r[v+1],x=Zo(A,w,T,E,S,I,k,P,C,N),_=es(A,w,T,E,S,I,k,P,C,N);A=ls(n,i),w=cs(n,i),T=as(n,0,o,0,a),E=us(0,i,0,s,0,u);var R=Qo(A,w,T,E),M=Yo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=Qo(l,c,x,_),h=Yo(c,c,x,_),l=a,c=u,a=o,u=s,o=n,s=i,n=Qo(x,_,R,M),i=Yo(x,_,R,M)}Jo(this.h,0,n,i),Jo(this.h,2,o,s),Jo(this.h,4,a,u),Jo(this.h,6,l,c),Jo(this.h,8,d,h),Jo(this.h,10,p,f),Jo(this.h,12,m,y),Jo(this.h,14,g,b)},ns.prototype._digest=function(e){return"hex"===e?ho.toHex32(this.h,"big"):ho.split32(this.h,"big")},ho.inherits(gs,is);var bs=gs;gs.blockSize=1024,gs.outSize=384,gs.hmacStrength=192,gs.padLength=128,gs.prototype._digest=function(e){return"hex"===e?ho.toHex32(this.h.slice(0,12),"big"):ho.split32(this.h.slice(0,12),"big")};var vs={sha1:Co,sha224:qo,sha256:jo,sha384:bs,sha512:is},As=ho.rotl32,ws=ho.sum32,Ts=ho.sum32_3,Es=ho.sum32_4,Ss=mo.BlockHash;function Is(){if(!(this instanceof Is))return new Is;Ss.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}ho.inherits(Is,Ss);var ks=Is;function Ps(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function Cs(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Ns(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Is.blockSize=512,Is.outSize=160,Is.hmacStrength=192,Is.padLength=64,Is.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,c=o,d=s,h=0;h<80;h++){var p=ws(As(Es(r,Ps(h,n,i,o),e[xs[h]+t],Cs(h)),Rs[h]),s);r=s,s=o,o=As(i,10),i=n,n=p,p=ws(As(Es(a,Ps(79-h,u,l,c),e[_s[h]+t],Ns(h)),Ms[h]),d),a=d,d=c,c=As(l,10),l=u,u=p}p=Ts(this.h[1],i,c),this.h[1]=Ts(this.h[2],o,d),this.h[2]=Ts(this.h[3],s,a),this.h[3]=Ts(this.h[4],r,u),this.h[4]=Ts(this.h[0],n,l),this.h[0]=p},Is.prototype._digest=function(e){return"hex"===e?ho.toHex32(this.h,"little"):ho.split32(this.h,"little")};var xs=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],_s=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Rs=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Ms=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Os={ripemd160:ks};function Bs(e,t,r){if(!(this instanceof Bs))return new Bs(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(ho.toArray(t,r))}var Ds=Bs;Bs.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),oo(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Bs.prototype.update=function(e,t){return this.inner.update(e,t),this},Bs.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var Ls,Fs=fr(function(e,t){var r=t;r.utils=ho,r.common=mo,r.sha=vs,r.ripemd=Os,r.hmac=Ds,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),Us=Fs;!function(e){e.sha256="sha256",e.sha512="sha512"}(Ls||(Ls={}));const Gs=new kr("sha2/5.8.0");function js(e){return"0x"+Us.sha256().update(Mr(e)).digest("hex")}function Hs(e,t,r){return Ls[e]||Gs.throwError("unsupported algorithm "+e,kr.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Us.hmac(Us[e],Mr(t)).update(Mr(r)).digest("hex")}var qs=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};function Vs(e,t){return qs(this,void 0,void 0,function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(r.mode=e.mode),e.cache&&(r.cache=e.cache),e.credentials&&(r.credentials=e.credentials),e.redirect&&(r.redirect=e.redirect),e.referrer&&(r.referrer=e.referrer)}const n=yield fetch(e,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((e,t)=>{o[t.toLowerCase()]=e}):n.headers.keys().forEach(e=>{o[e.toLowerCase()]=n.headers.get(e)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Mr(new Uint8Array(i))}})}var zs=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ks=new kr("web/5.8.0");function Ws(e){return new Promise(t=>{setTimeout(t,e)})}function Js(e,t){if(null==e)return null;if("string"==typeof e)return e;if(xr(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ni(e)}catch(e){}return Fr(e)}return e}function Qs(e,t,r){let n=null;if(null!=t){n=ri(t);const r="string"==typeof e?{url:e}:En(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=En(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return function(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Ks.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof e?e.throttleCallback:null,o="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Ks.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof e&&!!e.errorPassThrough,a={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Ks.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)a[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Ks.throwError("basic authentication requires a secure https url",kr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+Gn(ri(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=En(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Un(p[3]):(f=p[3],ri(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){Ks.throwError("processing response error",kr.errors.SERVER_ERROR,{body:Js(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(a).forEach(e=>{const t=a[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,r){d&&(e=setTimeout(()=>{null!=e&&(e=null,r(Ks.makeError("timeout",kr.errors.TIMEOUT,{requestBody:Js(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return zs(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield Vs(u,l),e<n)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let r=!0;if(i&&(r=yield i(e,u)),r){let r=0;const n=t.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,e))),yield Ws(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Ks.throwError("missing response",kr.errors.SERVER_ERROR,{requestBody:Js(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let a=t.body;if(c&&304===t.statusCode?a=null:!s&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Ks.throwError("bad response",kr.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:Js(a,t.headers?t.headers["content-type"]:null),requestBody:Js(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const e=yield r(a,t);return y.cancel(),e}catch(r){if(r.throttleRetry&&e<n){let t=!0;if(i&&(t=yield i(e,u)),t){const t=o*parseInt(String(Math.random()*Math.pow(2,e)));yield Ws(t);continue}}y.cancel(),Ks.throwError("processing response error",kr.errors.SERVER_ERROR,{body:Js(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:Js(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return Ks.throwError("failed response",kr.errors.SERVER_ERROR,{requestBody:Js(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,n,(e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(ni(e))}catch(t){Ks.throwError("invalid JSON",kr.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function Ys(e,t){return t||(t={}),null==(t=En(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},t.timeout));const a=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)s()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){s()&&n(e)})}()})}for(var Xs="qpzry9x8gf2tvdw0s3jn54khce6mua7l",$s={},Zs=0;Zs<Xs.length;Zs++){var ea=Xs.charAt(Zs);if(void 0!==$s[ea])throw new TypeError(ea+" is ambiguous");$s[ea]=Zs}function ta(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const ra="providers/5.8.0";function na(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var ia=oa;function oa(e,t){if(!e)throw new Error(t||"Assertion failed")}oa.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var sa=na(function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}}),aa=na(function(e,t){var r=t;r.assert=ia,r.toArray=sa.toArray,r.zero2=sa.zero2,r.toHex=sa.toHex,r.encode=sa.encode,r.getNAF=function(e,t,r){var n,i=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<t+1,s=e.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,u=e.andln(3)+i&3,l=t.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new yr(e,"hex","le")}}),ua=aa.getNAF,la=aa.getJSF,ca=aa.assert;function da(e,t){this.type=e,this.p=new yr(t.p,16),this.red=t.prime?yr.red(t.prime):yr.mont(this.p),this.zero=new yr(0).toRed(this.red),this.one=new yr(1).toRed(this.red),this.two=new yr(2).toRed(this.red),this.n=t.n&&new yr(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var ha=da;function pa(e,t){this.curve=e,this.type=t,this.precomputed=null}da.prototype.point=function(){throw new Error("Not implemented")},da.prototype.validate=function(){throw new Error("Not implemented")},da.prototype._fixedNafMul=function(e,t){ca(e.precomputed);var r=e._getDoubles(),n=ua(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<a.length;o++)(s=a[o])===d?c=c.mixedAdd(r.points[o]):s===-d&&(c=c.mixedAdd(r.points[o].neg()));l=l.add(c)}return l.toP()},da.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=ua(t,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];ca(0!==l),s="affine"===e.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?s.toP():s},da.prototype._wnafMulAdd=function(e,t,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(o=0;o<n;o++){var h=(a=t[o])._getNAFPoints(e);u[o]=h.wnd,l[o]=h.points}for(o=n-1;o>=1;o-=2){var p=o-1,f=o;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=la(r[p],r[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),s=0;s<d;s++)c[p][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],c[f][s]=0,l[p]=m}else c[p]=ua(r[p],u[p],this._bitLength),c[f]=ua(r[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(o=d;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)v[s]=0|c[s][o],0!==v[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,b=b.dblp(A),o<0)break;for(s=0;s<n;s++){var T=v[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),b="affine"===a.type?b.mixedAdd(a):b.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?b:b.toP()},da.BasePoint=pa,pa.prototype.eq=function(){throw new Error("Not implemented")},pa.prototype.validate=function(){return this.curve.validate(this)},da.prototype.decodePoint=function(e,t){e=aa.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?ca(e[e.length-1]%2==0):7===e[0]&&ca(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},pa.prototype.encodeCompressed=function(e){return this.encode(e,!0)},pa.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},pa.prototype.encode=function(e,t){return aa.encode(this._encode(t),e)},pa.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},pa.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},pa.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},pa.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},pa.prototype._getBeta=function(){return null},pa.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var fa=na(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),ma=aa.assert;function ya(e){ha.call(this,"short",e),this.a=new yr(e.a,16).toRed(this.red),this.b=new yr(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}fa(ya,ha);var ga=ya;function ba(e,t,r,n){ha.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new yr(t,16),this.y=new yr(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function va(e,t,r,n){ha.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new yr(0)):(this.x=new yr(t,16),this.y=new yr(r,16),this.z=new yr(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}ya.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new yr(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new yr(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:ma(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:r,basis:e.basis?e.basis.map(function(e){return{a:new yr(e.a,16),b:new yr(e.b,16)}}):this._getEndoBasis(r)}}},ya.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:yr.mont(e),r=new yr(2).toRed(t).redInvm(),n=r.redNeg(),i=new yr(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},ya.prototype._getEndoBasis=function(e){for(var t,r,n,i,o,s,a,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new yr(1),f=new yr(0),m=new yr(0),y=new yr(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!n&&u.cmp(c)<0)t=a.neg(),r=p,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,h=d,d=u,m=p,p=l,y=f,f=v}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},ya.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:e.sub(s).sub(a),k2:u.add(l).neg()}},ya.prototype.pointFromX=function(e,t){(e=new yr(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},ya.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},ya.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),c=0;c<2*o;c++)n[c]=null,i[c]=null;return l},fa(ba,ha.BasePoint),ya.prototype.point=function(e,t,r){return new ba(this,e,t,r)},ya.prototype.pointFromJSON=function(e,t){return ba.fromJSON(this,e,t)},ba.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},ba.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},ba.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},ba.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},ba.prototype.isInfinity=function(){return this.inf},ba.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},ba.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},ba.prototype.getX=function(){return this.x.fromRed()},ba.prototype.getY=function(){return this.y.fromRed()},ba.prototype.mul=function(e){return e=new yr(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},ba.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},ba.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},ba.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},ba.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},ba.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},fa(va,ha.BasePoint),ya.prototype.jpoint=function(e,t,r){return new va(this,e,t,r)},va.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},va.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},va.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),c=l.redMul(a),d=n.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(o.redMul(c)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,f)},va.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),c=r.redMul(u),d=a.redSqr().redIAdd(l).redISub(c).redISub(c),h=a.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(d,h,p)},va.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(t=0;t<e;t++){var c=o.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(n.redMul(u)),f=o.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(a);t+1<e&&(u=u.redMul(h)),o=m,a=b,l=g}return this.curve.jpoint(o,l.redMul(i),a)},va.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},va.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},va.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);e=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,r)},va.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=s.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=a.redMul(d).redISub(h),f=r.redAdd(r).redMul(n);return this.curve.jpoint(c,p,f)},va.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(a).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(d,h,p)},va.prototype.mul=function(e,t){return e=new yr(e,t),this.curve._wnafMul(this,e)},va.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},va.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},va.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},va.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Aa=na(function(e,t){var r=t;r.base=ha,r.short=ga,r.mont=null,r.edwards=null}),wa=na(function(e,t){var r,n=t,i=aa.assert;function o(e){this.curve="short"===e.type?new Aa.short(e):"edwards"===e.type?new Aa.edwards(e):new Aa.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Us.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Us.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Us.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Us.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Us.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Us.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Us.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Us.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Ta(e){if(!(this instanceof Ta))return new Ta(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=sa.toArray(e.entropy,e.entropyEnc||"hex"),r=sa.toArray(e.nonce,e.nonceEnc||"hex"),n=sa.toArray(e.pers,e.persEnc||"hex");ia(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Ea=Ta;Ta.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},Ta.prototype._hmac=function(){return new Us.hmac(this.hash,this.K)},Ta.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Ta.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=sa.toArray(e,t),r=sa.toArray(r,n),ia(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},Ta.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=sa.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,e);return this._update(r),this._reseed++,sa.encode(o,t)};var Sa=aa.assert;function Ia(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var ka=Ia;Ia.fromPublic=function(e,t,r){return t instanceof Ia?t:new Ia(e,{pub:t,pubEnc:r})},Ia.fromPrivate=function(e,t,r){return t instanceof Ia?t:new Ia(e,{priv:t,privEnc:r})},Ia.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Ia.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Ia.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Ia.prototype._importPrivate=function(e,t){this.priv=new yr(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Ia.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Sa(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Sa(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Ia.prototype.derive=function(e){return e.validate()||Sa(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Ia.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},Ia.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},Ia.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Pa=aa.assert;function Ca(e,t){if(e instanceof Ca)return e;this._importDER(e,t)||(Pa(e.r&&e.s,"Signature without r or s"),this.r=new yr(e.r,16),this.s=new yr(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var Na=Ca;function xa(){this.place=0}function _a(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var i=0,o=0,s=t.place;o<n;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function Ra(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function Ma(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Ca.prototype._importDER=function(e,t){e=aa.toArray(e,t);var r=new xa;if(48!==e[r.place++])return!1;var n=_a(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=_a(e,r);if(!1===i)return!1;if(0!=(128&e[r.place]))return!1;var o=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=_a(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(0!=(128&e[r.place]))return!1;var a=e.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new yr(o),this.s=new yr(a),this.recoveryParam=null,!0},Ca.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=Ra(t),r=Ra(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Ma(n,t.length),(n=n.concat(t)).push(2),Ma(n,r.length);var i=n.concat(r),o=[48];return Ma(o,i.length),o=o.concat(i),aa.encode(o,e)};var Oa=function(){throw new Error("unsupported")},Ba=aa.assert;function Da(e){if(!(this instanceof Da))return new Da(e);"string"==typeof e&&(Ba(Object.prototype.hasOwnProperty.call(wa,e),"Unknown curve "+e),e=wa[e]),e instanceof wa.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var La=Da;Da.prototype.keyPair=function(e){return new ka(this,e)},Da.prototype.keyFromPrivate=function(e,t){return ka.fromPrivate(this,e,t)},Da.prototype.keyFromPublic=function(e,t){return ka.fromPublic(this,e,t)},Da.prototype.genKeyPair=function(e){e||(e={});for(var t=new Ea({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Oa(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new yr(2));;){var i=new yr(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Da.prototype._truncateToN=function(e,t,r){var n;if(yr.isBN(e)||"number"==typeof e)n=(e=new yr(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new yr(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new yr(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Da.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!yr.isBN(e)){Ba("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Ba(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Ba((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Ba(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Ba(new yr(a).eq(e),"Can not sign message");for(var u=new Ea({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new yr(1)),c=0;;c++){var d=n.k?n.k(c):new yr(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new Na({r:f,s:m,recoveryParam:y})}}}}}},Da.prototype.verify=function(e,t,r,n,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(t=new Na(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},Da.prototype.recoverPubKey=function(e,t,r,n){Ba((3&r)===r,"The recovery param is more than two bits"),t=new Na(t,n);var i=this.n,o=new yr(e),s=t.r,a=t.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var c=t.r.invm(i),d=i.sub(o).mul(c).umod(i),h=a.mul(c).umod(i);return this.g.mulAdd(d,s,h)},Da.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Na(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var Fa=na(function(e,t){var r=t;r.version="6.6.1",r.utils=aa,r.rand=function(){throw new Error("unsupported")},r.curve=Aa,r.curves=wa,r.ec=La,r.eddsa=null}).ec;const Ua=new kr("signing-key/5.8.0");let Ga=null;function ja(){return Ga||(Ga=new Fa("secp256k1")),Ga}class Ha{constructor(e){vn(this,"curve","secp256k1"),vn(this,"privateKey",Fr(e)),32!==Ur(this.privateKey)&&Ua.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=ja().keyFromPrivate(Mr(this.privateKey));vn(this,"publicKey","0x"+t.getPublic(!1,"hex")),vn(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),vn(this,"_isSigningKey",!0)}_addPoint(e){const t=ja().keyFromPublic(Mr(this.publicKey)),r=ja().keyFromPublic(Mr(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=ja().keyFromPrivate(Mr(this.privateKey)),r=Mr(e);32!==r.length&&Ua.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return Vr({recoveryParam:n.recoveryParam,r:qr("0x"+n.r.toString(16),32),s:qr("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=ja().keyFromPrivate(Mr(this.privateKey)),r=ja().keyFromPublic(Mr(qa(e)));return qr("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function qa(e,t){const r=Mr(e);if(32===r.length){const e=new Ha(r);return t?"0x"+ja().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Fr(r):"0x"+ja().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+ja().keyFromPublic(r).getPublic(!0,"hex"):Fr(r):Ua.throwArgumentError("invalid public or private key","key","[REDACTED]")}const Va=new kr("transactions/5.8.0");var za;function Ka(e){return"0x"===e?null:Hi(e)}function Wa(e){return"0x"===e?Vn:$r.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(za||(za={}));const Ja=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Qa={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Ya(e){return Hi(Gr(Qn(Gr(qa(e),1)),12))}function Xa(e,t){return Ya(function(e,t){const r=Vr(t),n={r:Mr(r.r),s:Mr(r.s)};return"0x"+ja().recoverPubKey(Mr(e),n,r.recoveryParam).encode("hex",!1)}(Mr(e),t))}function $a(e,t){const r=Br($r.from(e).toHexString());return r.length>32&&Va.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function Za(e,t){return{address:Hi(e),storageKeys:(t||[]).map((t,r)=>(32!==Ur(t)&&Va.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function eu(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&Va.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),Za(e[0],e[1])):Za(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return Za(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function tu(e){return eu(e).map(e=>[e.address,e.storageKeys])}function ru(e,t){if(null!=e.gasPrice){const t=$r.from(e.gasPrice),r=$r.from(e.maxFeePerGas||0);t.eq(r)||Va.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[$a(e.chainId||0,"chainId"),$a(e.nonce||0,"nonce"),$a(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),$a(e.maxFeePerGas||0,"maxFeePerGas"),$a(e.gasLimit||0,"gasLimit"),null!=e.to?Hi(e.to):"0x",$a(e.value||0,"value"),e.data||"0x",tu(e.accessList||[])];if(t){const e=Vr(t);r.push($a(e.recoveryParam,"recoveryParam")),r.push(Br(e.r)),r.push(Br(e.s))}return jr(["0x02",Oi(r)])}function nu(e,t){const r=[$a(e.chainId||0,"chainId"),$a(e.nonce||0,"nonce"),$a(e.gasPrice||0,"gasPrice"),$a(e.gasLimit||0,"gasLimit"),null!=e.to?Hi(e.to):"0x",$a(e.value||0,"value"),e.data||"0x",tu(e.accessList||[])];if(t){const e=Vr(t);r.push($a(e.recoveryParam,"recoveryParam")),r.push(Br(e.r)),r.push(Br(e.s))}return jr(["0x01",Oi(r)])}function iu(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Va.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){Tn(e,Qa);const r=[];Ja.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Mr(Fr(n,i)),t.length&&n.length!==t.length&&n.length>0&&Va.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Br(n),n.length>t.maxLength&&Va.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Fr(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&Va.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!xr(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Fr(n)),r.push("0x"),r.push("0x")),!t)return Oi(r);const i=Vr(t);let o=27+i.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&Va.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&Va.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Fr(o)),r.push(Br(Mr(i.r))),r.push(Br(Mr(i.s))),Oi(r)}(e,t);switch(e.type){case 1:return nu(e,t);case 2:return ru(e,t)}return Va.throwError(`unsupported transaction type: ${e.type}`,kr.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function ou(e,t,r){try{const r=Wa(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){Va.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=qr(t[1],32),e.s=qr(t[2],32);try{const t=Qn(r(e));e.from=Xa(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const su=new kr(ra);class au{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:o,type:u,accessList:au.allowNull(this.accessList.bind(this),null),blockHash:au.allowNull(o,null),blockNumber:au.allowNull(a,null),transactionIndex:au.allowNull(a,null),confirmations:au.allowNull(a,null),from:t,gasPrice:au.allowNull(r),maxPriorityFeePerGas:au.allowNull(r),maxFeePerGas:au.allowNull(r),gasLimit:r,to:au.allowNull(t,null),value:r,nonce:a,data:i,r:au.allowNull(this.uint256),s:au.allowNull(this.uint256),v:au.allowNull(a),creates:au.allowNull(t,null),raw:au.allowNull(i)},e.transactionRequest={from:au.allowNull(t),nonce:au.allowNull(a),gasLimit:au.allowNull(r),gasPrice:au.allowNull(r),maxPriorityFeePerGas:au.allowNull(r),maxFeePerGas:au.allowNull(r),to:au.allowNull(t),value:au.allowNull(r),data:au.allowNull(e=>this.data(e,!0)),type:au.allowNull(a),accessList:au.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:au.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:au.allowNull(this.address,null),from:au.allowNull(this.address,null),contractAddress:au.allowNull(t,null),transactionIndex:a,root:au.allowNull(s),gasUsed:r,logsBloom:au.allowNull(i),blockHash:o,transactionHash:o,logs:au.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:au.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:au.allowNull(r),status:au.allowNull(a),type:u},e.block={hash:au.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:au.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:au.allowNull(t),extraData:i,transactions:au.allowNull(au.arrayOf(o)),baseFeePerGas:au.allowNull(r)},e.blockWithTransactions=En(e.block),e.blockWithTransactions.transactions=au.allowNull(au.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:au.allowNull(n,void 0),toBlock:au.allowNull(n,void 0),blockHash:au.allowNull(o,void 0),address:au.allowNull(t,void 0),topics:au.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:au.allowNull(a),blockHash:au.allowNull(o),transactionIndex:a,removed:au.allowNull(this.boolean.bind(this)),address:t,data:au.allowFalsish(i,"0x"),topics:au.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return eu(e||[])}number(e){return"0x"===e?0:$r.from(e).toNumber()}type(e){return"0x"===e||null==e?0:$r.from(e).toNumber()}bigNumber(e){return $r.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Dr(e))?e.toLowerCase():su.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return Hi(e)}callAddress(e){if(!Dr(e,32))return null;const t=Hi(Gr(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return qi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Dr(e))return Hr(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==Ur(r)?su.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=$r.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Dr(e))throw new Error("invalid uint256");return qr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=au.check(t,e);return n._difficulty=null==r?null:$r.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return au.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&$r.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=au.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;Dr(r)&&(r=$r.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),Dr(r)&&(r=$r.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Mr(e);if(t[0]>127)return function(e){const t=Li(e);9!==t.length&&6!==t.length&&Va.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:Wa(t[0]).toNumber(),gasPrice:Wa(t[1]),gasLimit:Wa(t[2]),to:Ka(t[3]),value:Wa(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=$r.from(t[6]).toNumber()}catch(e){return r}if(r.r=qr(t[7],32),r.s=qr(t[8],32),$r.from(r.r).isZero()&&$r.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=t.slice(0,6);0!==r.chainId&&(i.push(Fr(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=Qn(Oi(i));try{r.from=Xa(o,{r:Fr(r.r),s:Fr(r.s),recoveryParam:n})}catch(e){}r.hash=Qn(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Li(e.slice(1));8!==t.length&&11!==t.length&&Va.throwArgumentError("invalid component count for transaction type: 1","payload",Fr(e));const r={type:1,chainId:Wa(t[0]).toNumber(),nonce:Wa(t[1]).toNumber(),gasPrice:Wa(t[2]),gasLimit:Wa(t[3]),to:Ka(t[4]),value:Wa(t[5]),data:t[6],accessList:eu(t[7])};return 8===t.length||(r.hash=Qn(e),ou(r,t.slice(8),nu)),r}(t);case 2:return function(e){const t=Li(e.slice(1));9!==t.length&&12!==t.length&&Va.throwArgumentError("invalid component count for transaction type: 2","payload",Fr(e));const r=Wa(t[2]),n=Wa(t[3]),i={type:2,chainId:Wa(t[0]).toNumber(),nonce:Wa(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:Wa(t[4]),to:Ka(t[5]),value:Wa(t[6]),data:t[7],accessList:eu(t[8])};return 9===t.length||(i.hash=Qn(e),ou(i,t.slice(9),ru)),i}(t)}return Va.throwError(`unsupported transaction type: ${t[0]}`,kr.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return au.check(this.formats.receiptLog,e)}receipt(e){const t=au.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=$r.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&su.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):su.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&su.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return au.check(this.formats.filter,e)}filterLog(e){return au.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const i=e[n](t[n]);void 0!==i&&(r[n]=i)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach(function(t){r.push(e(t))}),r}}}var uu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const lu=new kr(ra);function cu(e){return null==e?"null":(32!==Ur(e)&&lu.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function du(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[cu(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return cu(e)}).join("&")}function hu(e){if("string"==typeof e){if(32===Ur(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+du(e);if(xn.isForkEvent(e))throw lu.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+du(e.topics||[])}throw new Error("invalid event - "+e)}function pu(){return(new Date).getTime()}function fu(e){return new Promise(t=>{setTimeout(t,e)})}const mu=["block","network","pending","poll"];class yu{constructor(e,t,r){vn(this,"tag",e),vn(this,"listener",t),vn(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var n;const i={};return r.length>0&&(i.topics=r),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||mu.indexOf(this.tag)>=0}}const gu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function bu(e){return qr($r.from(e).toHexString(),32)}function vu(e){return Hn.encode(Or([e,Gr(js(js(e)),0,4)]))}const Au=new RegExp("^(ipfs)://(.*)$","i"),wu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Au,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Tu(e,t){try{return ni(Eu(e,t))}catch(e){}return null}function Eu(e,t){if("0x"===e)return null;const r=$r.from(Gr(e,t,t+32)).toNumber(),n=$r.from(Gr(e,r,r+32)).toNumber();return Gr(e,r+32,r+32+n)}function Su(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):lu.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Iu(e){const t=Mr(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function ku(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Pu(e){const t=[];let r=0;for(let n=0;n<e.length;n++)t.push(null),r+=32;for(let n=0;n<e.length;n++){const i=Mr(e[n]);t[n]=Iu(r),t.push(Iu(i.length)),t.push(ku(i)),r+=32+32*Math.ceil(i.length/32)}return jr(t)}class Cu{constructor(e,t,r,n){vn(this,"provider",e),vn(this,"name",r),vn(this,"address",e.formatter.address(t)),vn(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>$r.from(e).eq(1)).catch(e=>{if(e.code===kr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return uu(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:jr([e,Ni(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=jr(["0x9061b923",Pu([(i=this.name,Fr(Or(Ci(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),r.data])]));try{let e=yield this.provider.call(r);return Mr(e).length%32==4&&lu.throwError("resolver threw error",kr.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Eu(e,0)),e}catch(e){if(e.code===kr.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return uu(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?Eu(r,0):null})}_getAddress(e,t){const r=gu[String(e)];if(null==r&&lu.throwError(`unsupported coin type: ${e}`,kr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Mr(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return vu(Or([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return vu(Or([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,r,n){for(var i=0,o=0,s=[],a=0;a<e.length;++a)for(i=i<<8|e[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(e);if(Array.isArray(t))return t;throw new Error(t)}(n.slice(2));return e.unshift(t),function(e,t,r){if(e.length+7+t.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(e){for(var t=1,r=0;r<e.length;++r){var n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=ta(t)^n>>5}for(t=ta(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=ta(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=e+"1",o=0;o<t.length;++o){var s=t[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=ta(n)^s,i+=Xs.charAt(s)}for(o=0;o<6;++o)n=ta(n);for(n^=1,o=0;o<6;++o)i+=Xs.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return uu(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===kr.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",bu(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&lu.throwError("invalid or unsupported coin data",kr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return uu(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;r<wu.length;r++){const n=t.match(wu[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Su(t)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=qr($r.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:jr(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=$r.from(yield this.provider.call({to:a,data:jr(["0x00fdd58e",qr(o,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(s[0]),data:jr([r,u])};let c=Tu(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=Su(c)),e.push({type:"metadata-url",content:c});const d=yield Qs(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(Au))return null;e.push({type:"url-ipfs",content:h}),h=Su(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return uu(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Hn.encode("0x"+t[1])}const r=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const e=parseInt(r[3],16);if(r[4].length===2*e)return"ipns://"+Hn.encode("0x"+r[1])}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Gn("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return lu.throwError("invalid or unsupported content hash data",kr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return uu(this,void 0,void 0,function*(){let t=ri(e);t=Or([bu(64),bu(t.length),t]),t.length%32!=0&&(t=Or([t,qr("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Fr(t));return null==r||"0x"===r?null:ni(r)})}}let Nu=null,xu=1;class _u extends _n{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),vn(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=An(new.target,"getNetwork")(e);t?(vn(this,"_network",t),this.emit("network",t,null)):lu.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return uu(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||lu.throwError("no network detected",kr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:vn(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Ys(()=>this._ready().then(e=>e,e=>{if(e.code!==kr.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==Nu&&(Nu=new au),Nu}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Fn){const r=Fn[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Fn[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Fn[e.name];if(!t)return"number"!=typeof e.chainId&&Rn.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Rn.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}(null==e?"homestead":e)}ccipReadFetch(e,t,r){return uu(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),i=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){const t=r[e],s=t.replace("{sender}",n).replace("{data}",i),a=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield Qs({url:s,errorPassThrough:!0},a,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return lu.throwError(`response not found during CCIP fetch: ${l}`,kr.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return lu.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,kr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return uu(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(pu()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=pu(),r=wn({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=pu();return(e=$r.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=r,r.catch(e=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return uu(this,void 0,void 0,function*(){const e=xu++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)lu.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",lu.makeError("network block skew detected",kr.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null).catch(e=>{this.emit("error",e)});t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=r-1);const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(o)}}}),this._lastBlockNumber=r,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return uu(this,void 0,void 0,function*(){return lu.throwError("provider does not support network detection",kr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return uu(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield fu(0),this._network;const r=lu.makeError("underlying network changed",kr.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=pu();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=pu(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return uu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return uu(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),s.push(()=>{this.removeListener(e,l)}),n){let r=n.startBlock,i=null;const l=s=>uu(this,void 0,void 0,function*(){a||(yield fu(1e3),this.getTransactionCount(n.from).then(c=>uu(this,void 0,void 0,function*(){if(!a){if(c<=n.nonce)r=s;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===e)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,t);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(lu.makeError("transaction was replaced",kr.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:e,receipt:r}))}}i++}}a||this.once("block",l)}}),e=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const e=setTimeout(()=>{u()||o(lu.makeError("timeout exceeded",kr.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return uu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return $r.from(e)}catch(t){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield wn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return $r.from(n)}catch(e){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield wn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return $r.from(n).toNumber()}catch(e){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield wn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Fr(n)}catch(e){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield wn({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>Hr(e))}),i=yield this.perform("getStorageAt",n);try{return Fr(i)}catch(e){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==Ur(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&lu.throwError("Transaction hash mismatch from Provider.sendTransaction.",kr.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>uu(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const o=yield this._waitForTransaction(e.hash,t,n,i);return null==o&&0===t?null:(this._emitted["t:"+e.hash]=o.blockNumber,0===o.status&&lu.throwError("transaction failed",kr.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Fr(e)),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}})}_getTransactionRequest(e){return uu(this,void 0,void 0,function*(){const t=yield e,r={};return["from","to"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?$r.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Fr(e):null))}),this.formatter.transactionRequest(yield wn(r))})}_getFilter(e){return uu(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(r=>{null!=e[r]&&(t[r]=e[r])}),["fromBlock","toBlock"].forEach(r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))}),this.formatter.filter(yield wn(t))})}_call(e,t,r){return uu(this,void 0,void 0,function*(){r>=10&&lu.throwError("CCIP read exceeded maximum redirections",kr.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===i.substring(0,10)&&Ur(i)%32==4)try{const o=Gr(i,4),s=Gr(o,0,32);$r.from(s).eq(n)||lu.throwError("CCIP Read sender did not match",kr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=$r.from(Gr(o,32,64)).toNumber(),l=$r.from(Gr(o,u,u+32)).toNumber(),c=Gr(o,u+32);for(let t=0;t<l;t++){const r=Tu(c,32*t);null==r&&lu.throwError("CCIP Read contained corrupt URL string",kr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=Eu(o,64);$r.from(Gr(o,100,128)).isZero()||lu.throwError("CCIP Read callback selector included junk",kr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=Gr(o,96,100),p=Eu(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&lu.throwError("CCIP Read disabled or provided no URLs",kr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:jr([h,Pu([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===kr.errors.SERVER_ERROR)throw e}try{return Fr(i)}catch(r){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield wn({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(e){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield wn({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return $r.from(r)}catch(e){return lu.throwError("bad result from backend",kr.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return uu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&lu.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&lu.throwError("ENS name not configured",kr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return uu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(Dr(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),Dr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){lu.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Ys(()=>uu(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;r<e.transactions.length;r++){const n=e.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}}const r=this.formatter.blockWithTransactions(e);return r.transactions=r.transactions.map(e=>this._wrapTransaction(e)),r}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return uu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ys(()=>uu(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(e){return uu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Ys(()=>uu(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}),{oncePoll:this})})}getLogs(e){return uu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield wn({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),au.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return uu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return uu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&lu.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return uu(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new Cu(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return uu(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||lu.throwError("network does not support ENS",kr.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Ni(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return uu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Dr(e))throw t}"string"!=typeof e&&lu.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return uu(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=Tu(yield this.call({to:r,data:"0x691f3431"+Ni(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return uu(this,void 0,void 0,function*(){let t=null;if(Dr(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Cu(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==kr.errors.CALL_EXCEPTION)throw e}try{const e=Tu(yield this.call({to:n,data:"0x691f3431"+Ni(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==kr.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url})}perform(e,t){return lu.throwError(e+" not implemented",kr.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,r){const n=new yu(hu(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],i=hu(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),r=!0,!e.once||(n.push(e),!1))),n.forEach(e=>{this._stopEvent(e)}),r}listenerCount(e){if(!e)return this._events.length;let t=hu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=hu(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,i=hu(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!n||(n=!0,r.push(e),!1)),r.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=hu(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Ru=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Mu=new kr(ra),Ou=["call","estimateGas"];function Bu(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=Dr(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=Bu(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Bu(JSON.parse(e),t)}catch(e){}return null}function Du(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Bu(t,!0);if(e)return e.data;Mu.throwError("missing revert data in call exception; Transaction reverted without a reason string",kr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Bu(t.body,!1);null==r&&(r=Bu(t,!1)),r&&Mu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",kr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===kr.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Mu.throwError("insufficient funds for intrinsic transaction cost",kr.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Mu.throwError("nonce has already been used",kr.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Mu.throwError("replacement fee too low",kr.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Mu.throwError("legacy pre-eip-155 transactions not supported",kr.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),Ou.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Mu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",kr.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Lu(e){return new Promise(function(t){setTimeout(t,e)})}function Fu(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Uu(e){return e?e.toLowerCase():e}const Gu={};class ju extends a{constructor(e,t,r){if(super(),e!==Gu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");vn(this,"provider",t),null==r&&(r=0),"string"==typeof r?(vn(this,"_address",this.provider.formatter.address(r)),vn(this,"_index",null)):"number"==typeof r?(vn(this,"_index",r),vn(this,"_address",null)):Mu.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Mu.throwError("cannot alter JSON-RPC Signer connection",kr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new Hu(Gu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Mu.throwError("unknown account #"+this._index,kr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=En(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=En(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Ru(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Mu.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),wn({tx:wn(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Mu.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Mu.throwError("user rejected transaction",kr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Du("sendTransaction",e,n)))})}signTransaction(e){return Mu.throwError("signing transactions is unsupported",kr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Ru(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield Ys(()=>Ru(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}})}signMessage(e){return Ru(this,void 0,void 0,function*(){const t="string"==typeof e?ri(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Fr(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Mu.throwError("user rejected signing",kr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return Ru(this,void 0,void 0,function*(){const t="string"==typeof e?ri(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Fr(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Mu.throwError("user rejected signing",kr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return Ru(this,void 0,void 0,function*(){const n=yield io.resolveNames(e,t,r,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(io.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Mu.throwError("user rejected signing",kr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return Ru(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class Hu extends ju{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const qu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class Vu extends _u{constructor(e,t){let r=t;null==r&&(r=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(r),e||(e=An(this.constructor,"defaultUrl")()),vn(this,"connection",Object.freeze("string"==typeof e?{url:e}:En(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Ru(this,void 0,void 0,function*(){yield Lu(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=An(this.constructor,"getNetwork");try{return t($r.from(e).toNumber())}catch(t){return Mu.throwError("could not detect network",kr.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Mu.throwError("could not detect network",kr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new ju(Gu,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Pn(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=Qs(this.connection,JSON.stringify(r),Fu).then(e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e});return n&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Uu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Uu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Uu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Uu(t.address),qr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[An(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[An(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Uu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Ru(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&$r.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=En(t)).transaction=En(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Mu.throwError(e+" not implemented",kr.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return Du(e,r,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(r){return function n(){e.send("eth_getFilterChanges",[r]).then(function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),n.then(function(){return Lu(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){n()},0),null;e.send("eth_uninstallFilter",[r])}).catch(e=>{})}(),r}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=En(qu);if(t)for(const e in t)t[e]&&(r[e]=!0);Tn(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=Hr($r.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Fr(e[t]))}),e.accessList&&(n.accessList=eu(e.accessList)),n}}const zu=new kr("random/5.8.0"),Ku=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let Wu=Ku.crypto||Ku.msCrypto;function Ju(e){(e<=0||e>1024||e%1||e!=e)&&zu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Wu.getRandomValues(t),Mr(t)}Wu&&Wu.getRandomValues||(zu.warn("WARNING: Missing strong random number source"),Wu={getRandomValues:function(e){return zu.throwError("no secure random source avaialble",kr.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Qu=new kr(ra);let Yu=1;function Xu(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:Yu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:Pn(i),provider:this}),t(i,(t,o)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:i,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const e=new Error(o.error.message);return e.code=o.error.code,e.data=o.error.data,n(e)}e(o.result)})})}}class $u extends Vu{constructor(e,t){null==e&&Qu.throwArgumentError("missing provider","provider",e);let r=null,n=null,i=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),i=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Pn(n),provider:this}),e.request(n).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e})}}(e)):e.sendAsync?n=Xu(0,e.sendAsync.bind(e)):e.send?n=Xu(0,e.send.bind(e)):Qu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),vn(this,"jsonRpcFetchFunc",n),vn(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function Zu(e,t,r,n,i){let o;e=Mr(e),t=Mr(t);let s=1;const a=new Uint8Array(n),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=s;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=Mr(Hs(i,e,u));o||(o=h.length,c=new Uint8Array(o),s=Math.ceil(n/o),l=n-(s-1)*o),c.set(h);for(let t=1;t<r;t++){h=Mr(Hs(i,e,h));for(let e=0;e<o;e++)c[e]^=h[e]}const p=(d-1)*o,f=d===s?l:o;a.set(Mr(c).slice(0,f),p)}return Fr(a)}new kr(ra);const el=new kr("wordlists/5.8.0");class tl{constructor(e){el.checkAbstract(new.target,tl),vn(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let r=0;r<2048;r++){const n=e.getWord(r);if(r!==e.getWordIndex(n))return"0x";t.push(n)}return ii(t.join("\n")+"\n")}static register(e,t){}}const rl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let nl=null;function il(e){if(null==nl&&(nl=rl.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==tl.check(e)))throw nl=null,new Error("BIP39 Wordlist for en (English) FAILED")}const ol=new class extends tl{constructor(){super("en")}getWord(e){return il(this),nl[e]}getWordIndex(e){return il(this),nl.indexOf(e)}};tl.register(ol);const sl={en:ol},al=new kr("hdnode/5.8.0"),ul=$r.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ll=ri("Bitcoin seed"),cl=2147483648;function dl(e){return(1<<e)-1<<8-e}function hl(e){return qr(Fr(e),32)}function pl(e){return Hn.encode(Or([e,Gr(js(js(e)),0,4)]))}function fl(e){if(null==e)return sl.en;if("string"==typeof e){const t=sl[e];return null==t&&al.throwArgumentError("unknown locale","wordlist",e),t}return e}const ml={},yl="m/44'/60'/0'/0/0";class gl{constructor(e,t,r,n,i,o,s,a){if(e!==ml)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Ha(t);vn(this,"privateKey",e.privateKey),vn(this,"publicKey",e.compressedPublicKey)}else vn(this,"privateKey",null),vn(this,"publicKey",Fr(r));var u;vn(this,"parentFingerprint",n),vn(this,"fingerprint",Gr((u=js(this.publicKey),"0x"+Us.ripemd160().update(Mr(u)).digest("hex")),0,4)),vn(this,"address",Ya(this.publicKey)),vn(this,"chainCode",i),vn(this,"index",o),vn(this,"depth",s),null==a?(vn(this,"mnemonic",null),vn(this,"path",null)):"string"==typeof a?(vn(this,"mnemonic",null),vn(this,"path",a)):(vn(this,"mnemonic",a),vn(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return pl(Or([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Fr(this.depth),this.parentFingerprint,qr(Fr(this.index),4),this.chainCode,null!=this.privateKey?Or(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new gl(ml,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&cl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Mr(this.privateKey),1),t&&(t+="'")}else r.set(Mr(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Mr(Hs(Ls.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=hl($r.from(i).add(this.privateKey).mod(ul)):a=new Ha(Fr(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new gl(ml,s,a,this.fingerprint,hl(o),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e<t.length;e++){const n=t[e];if(n.match(/^[0-9]+'$/)){const e=parseInt(n.substring(0,n.length-1));if(e>=cl)throw new Error("invalid path index - "+n);r=r._derive(cl+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=cl)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Mr(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Mr(Hs(Ls.sha512,ll,r));return new gl(ml,hl(n.slice(0,32)),null,"0x00000000",hl(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=vl(bl(e,r=fl(r)),r),gl._fromSeed(function(e,t){t||(t="");const r=ri("mnemonic"+t,Xn.NFKD);return Zu(ri(e,Xn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return gl._fromSeed(e,null)}static fromExtendedKey(e){const t=Hn.decode(e);82===t.length&&pl(t.slice(0,78))===e||al.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Fr(t.slice(5,9)),i=parseInt(Fr(t.slice(9,13)).substring(2),16),o=Fr(t.slice(13,45)),s=t.slice(45,78);switch(Fr(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new gl(ml,null,Fr(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new gl(ml,Fr(s.slice(1)),null,n,o,i,r,null)}return al.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function bl(e,t){t=fl(t),al.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Mr(new Uint8Array(Math.ceil(11*r.length/8)));let i=0;for(let e=0;e<r.length;e++){let o=t.getWordIndex(r[e].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)o&1<<10-e&&(n[i>>3]|=1<<7-i%8),i++}const o=32*r.length/3,s=dl(r.length/3);if((Mr(js(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Fr(n.slice(0,o/8))}function vl(e,t){if(t=fl(t),(e=Mr(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const i=e.length/4,o=Mr(js(e))[0]&dl(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var Al=fr(function(e,t){!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t<e.length;t++)if(!r(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function o(e){return new Uint8Array(e)}function s(e,t,r,n,i){null==n&&null==i||(e=e.slice?e.slice(n,i):Array.prototype.slice.call(e,n,i)),t.set(e,r)}var a,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r<e.length;){var n=e.charCodeAt(r++);37===n?(t.push(parseInt(e.substr(r,2),16)),r+=2):t.push(n)}return i(t)},fromBytes:function(e){for(var t=[],r=0;r<e.length;){var n=e[r];n<128?(t.push(String.fromCharCode(n)),r++):n>191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},fromBytes:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];t.push(a[(240&n)>>4]+a[15&n])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],A=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],S=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}var P=function(e){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};P.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var r,n=4*(e+1),i=this.key.length/4,o=k(this.key);for(t=0;t<i;t++)this._Ke[r=t>>2][t%4]=o[t],this._Kd[e-r][t%4]=o[t];for(var s,a=0,u=i;u<n;){if(o[0]^=h[(s=o[i-1])>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^d[a]<<24,a+=1,8!=i)for(t=1;t<i;t++)o[t]^=o[t-1];else{for(t=1;t<i/2;t++)o[t]^=o[t-1];for(o[i/2]^=h[255&(s=o[i/2-1])]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24,t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(t=0;t<i&&u<n;)this._Ke[l=u>>2][p=u%4]=o[t],this._Kd[e-l][p]=o[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(s=this._Kd[l][p])>>24&255]^E[s>>16&255]^S[s>>8&255]^I[255&s]},P.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Ke[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=f[n[i]>>24&255]^m[n[(i+1)%4]>>16&255]^y[n[(i+2)%4]>>8&255]^g[255&n[(i+3)%4]]^this._Ke[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(h[n[i]>>24&255]^(a=this._Ke[t][i])>>24),u[4*i+1]=255&(h[n[(i+1)%4]>>16&255]^a>>16),u[4*i+2]=255&(h[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(h[255&n[(i+3)%4]]^a);return u},P.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Kd[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=b[n[i]>>24&255]^v[n[(i+3)%4]>>16&255]^A[n[(i+2)%4]>>8&255]^w[255&n[(i+1)%4]]^this._Kd[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(p[n[i]>>24&255]^(a=this._Kd[t][i])>>24),u[4*i+1]=255&(p[n[(i+3)%4]>>16&255]^a>>16),u[4*i+2]=255&(p[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(p[255&n[(i+1)%4]]^a);return u};var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new P(e)};C.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.encrypt(r),t,n);return t},C.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.decrypt(r),t,n);return t};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastCipherblock=i(t,!0),this._aes=new P(e)};N.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16);for(var a=0;a<16;a++)r[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(r),s(this._lastCipherblock,t,n)}return t},N.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16),r=this._aes.decrypt(r);for(var a=0;a<16;a++)t[n+a]=r[a]^this._lastCipherblock[a];s(e,this._lastCipherblock,0,n,n+16)}return t};var x=function(e,t,r){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=o(16);r||(r=1),this.segmentSize=r,this._shiftRegister=i(t,!0),this._aes=new P(e)};x.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(r,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r},x.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(e,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r};var _=function(e,t){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new P(e)};_.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},_.prototype.decrypt=_.prototype.encrypt;var R=function(e){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=o(16),this.setValue(e)):this.setBytes(e)};R.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var M=function(e,t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new P(e)};M.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[r]^=this._remainingCounter[this._remainingCounterIndex++];return t},M.prototype.decrypt=M.prototype.encrypt,e.exports={AES:P,Counter:R,ModeOfOperation:{ecb:C,cbc:N,cfb:x,ofb:_,ctr:M},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,r=o(e.length+t);s(e,r);for(var n=e.length;n<r.length;n++)r[n]=t;return r},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n<t;n++)if(e[r+n]!==t)throw new Error("PKCS#7 invalid padding byte");var a=o(r);return s(e,a,0,0,r),a}}},_arrayTest:{coerceArray:i,createArray:o,copyArray:s}}}()});const wl="json-wallets/5.8.0";function Tl(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Mr(e)}function El(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Sl(e){return"string"==typeof e?ri(e,Xn.NFKC):Mr(e)}function Il(e,t){let r=e;const n=t.toLowerCase().split("/");for(let e=0;e<n.length;e++){let t=null;for(const i in r)if(i.toLowerCase()===n[e]){t=r[i];break}if(null===t)return null;r=t}return r}function kl(e){const t=Mr(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Fr(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Pl=new kr(wl);class Cl extends Cn{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Nl(e,t){const r=JSON.parse(e);t=Sl(t);const n=Hi(Il(r,"ethaddr")),i=Tl(Il(r,"encseed"));i&&i.length%16==0||Pl.throwArgumentError("invalid encseed","json",e);const o=Mr(Zu(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new Al.ModeOfOperation.cbc(o,s),l=Al.padding.pkcs7.strip(Mr(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=Qn(ri(c));return new Cl({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function xl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function _l(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var Rl=fr(function(e,t){!function(t){const r=2147483647;function n(e){const t=new Uint32Array([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]);let r=1779033703,n=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=r,v=n,A=i,w=o,T=s,E=a,S=u,I=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&S)|0)+(I+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&A^v&A)|0,I=S,S=E,E=T,T=w+y|0,w=A,A=v,v=b,b=y+g|0;r=r+b|0,n=n+v|0,i=i+A|0,o=o+w|0,s=s+T|0,a=a+E|0,u=u+S|0,l=l+I|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);const i=64+t.length+4,o=new Array(i),s=new Array(64);let a,u=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<e.length;a++)o[a]^=e[a];for(a=0;a<t.length;a++)o[64+a]=t[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<e.length;a++)s[a]^=e[a];function l(){for(let e=i-1;e>=i-4;e--){if(o[e]++,o[e]<=255)return;o[e]=0}}for(;r>=32;)l(),u=u.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),u=u.concat(n(s.concat(n(o))).slice(0,r))),u}function o(e,t,r,n,i){let o;for(l(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),a(i,n),l(i,0,e,t+16*o,16);for(o=0;o<r;o++)l(e,t+2*o*16,e,16*o,16);for(o=0;o<r;o++)l(e,t+16*(2*o+1),e,16*(o+r),16)}function s(e,t){return e<<t|e>>>32-t}function a(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=s(t[0]+t[12],7),t[8]^=s(t[4]+t[0],9),t[12]^=s(t[8]+t[4],13),t[0]^=s(t[12]+t[8],18),t[9]^=s(t[5]+t[1],7),t[13]^=s(t[9]+t[5],9),t[1]^=s(t[13]+t[9],13),t[5]^=s(t[1]+t[13],18),t[14]^=s(t[10]+t[6],7),t[2]^=s(t[14]+t[10],9),t[6]^=s(t[2]+t[14],13),t[10]^=s(t[6]+t[2],18),t[3]^=s(t[15]+t[11],7),t[7]^=s(t[3]+t[15],9),t[11]^=s(t[7]+t[3],13),t[15]^=s(t[11]+t[7],18),t[1]^=s(t[0]+t[3],7),t[2]^=s(t[1]+t[0],9),t[3]^=s(t[2]+t[1],13),t[0]^=s(t[3]+t[2],18),t[6]^=s(t[5]+t[4],7),t[7]^=s(t[6]+t[5],9),t[4]^=s(t[7]+t[6],13),t[5]^=s(t[4]+t[7],18),t[11]^=s(t[10]+t[9],7),t[8]^=s(t[11]+t[10],9),t[9]^=s(t[8]+t[11],13),t[10]^=s(t[9]+t[8],18),t[12]^=s(t[15]+t[14],7),t[13]^=s(t[12]+t[15],9),t[14]^=s(t[13]+t[12],13),t[15]^=s(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let i=0;i<n;i++)r[i]^=e[t+i]}function l(e,t,r,n,i){for(;i--;)r[n++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||r%1||r<0||r>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,n,s,a,h,p){if(n=d(n,"N"),s=d(s,"r"),a=d(a,"p"),h=d(h,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/s)throw new Error("N too large");if(s>r/128/a)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*a*s);const m=new Uint32Array(32*a*s);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*s),g=new Uint32Array(32*s*n),b=32*s,v=new Uint32Array(16),A=new Uint32Array(16),w=a*n*2;let T,E,S=0,I=null,k=!1,P=0,C=0;const N=p?parseInt(1e3/s):4294967295,x="undefined"!=typeof setImmediate?setImmediate:setTimeout,_=function(){if(k)return p(new Error("cancelled"),S/w);let t;switch(P){case 0:E=32*C*s,l(m,E,y,0,b),P=1,T=0;case 1:t=n-T,t>N&&(t=N);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(k=p(null,S/w),k)break;I=e}}if(T<n)break;T=0,P=2;case 2:t=n-T,t>N&&(t=N);for(let e=0;e<t;e++)u(g,(y[16*(2*s-1)]&n-1)*b,y,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(k=p(null,S/w),k)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),C++,C<a){P=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const r=i(e,f,h);return p&&p(null,1,r),r}p&&x(_)};if(!p)for(;;){const e=_();if(null!=e)return e}_()}const p={scrypt:function(e,t,r,n,i,o,s){return new Promise(function(a,u){let l=0;s&&s(0),h(e,t,r,n,i,o,function(e,t,r){if(e)u(e);else if(r)s&&1!==l&&s(1),a(new Uint8Array(r));else if(s&&t!==l)return l=t,s(t)})})},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(h(e,t,r,n,i,o))}};e.exports=p}()}),Ml=Rl;const Ol=new kr(wl);function Bl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Dl extends Cn{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Ll(e,t){const r=Tl(Il(e,"crypto/ciphertext"));if(Fr(Qn(Or([t.slice(16,32),r]))).substring(2)!==Il(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===Il(e,"crypto/cipher")){const n=Tl(Il(e,"crypto/cipherparams/iv")),i=new Al.Counter(n);return Mr(new Al.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||Ol.throwError("unsupported cipher",kr.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=Ya(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Hi(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Fr(n)};if("0.1"===Il(e,"x-ethers/version")){const t=Tl(Il(e,"x-ethers/mnemonicCiphertext")),r=Tl(Il(e,"x-ethers/mnemonicCounter")),n=new Al.Counter(r),o=new Al.ModeOfOperation.ctr(i,n),a=Il(e,"x-ethers/path")||yl,u=Il(e,"x-ethers/locale")||"en",l=Mr(o.decrypt(t));try{const e=vl(l,u),t=gl.fromMnemonic(e,null,u).derivePath(a);if(t.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=t.mnemonic}catch(e){if(e.code!==kr.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Dl(s)}function Fl(e,t,r,n,i){return Mr(Zu(e,t,r,n,i))}function Ul(e,t,r,n,i){return Promise.resolve(Fl(e,t,r,n,i))}function Gl(e,t,r,n,i){const o=Sl(t),s=Il(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return Ol.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=Tl(Il(e,"crypto/kdfparams/salt")),a=parseInt(Il(e,"crypto/kdfparams/n")),u=parseInt(Il(e,"crypto/kdfparams/r")),l=parseInt(Il(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(Il(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=Tl(Il(e,"crypto/kdfparams/salt"));let i=null;const s=Il(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(Il(e,"crypto/kdfparams/c")),u=parseInt(Il(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return Ol.throwArgumentError("unsupported key-derivation function","kdf",s)}var jl=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Hl=new kr("wallet/5.8.0");class ql extends a{constructor(e,t){if(super(),null!=(r=e)&&Dr(r.privateKey,32)&&null!=r.address){const t=new Ha(e.privateKey);if(vn(this,"_signingKey",()=>t),vn(this,"address",Ya(this.publicKey)),this.address!==Hi(e.address)&&Hl.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;vn(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||yl,locale:t.locale||"en"}));const r=this.mnemonic;Ya(gl.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&Hl.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else vn(this,"_mnemonic",()=>null)}else{if(Ha.isSigningKey(e))"secp256k1"!==e.curve&&Hl.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),vn(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Ha(e);vn(this,"_signingKey",()=>t)}vn(this,"_mnemonic",()=>null),vn(this,"address",Ya(this.publicKey))}var r;t&&!_n.isProvider(t)&&Hl.throwArgumentError("invalid provider","provider",t),vn(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new ql(this,e)}signTransaction(e){return wn(e).then(t=>{null!=t.from&&(Hi(t.from)!==this.address&&Hl.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(Qn(iu(t)));return iu(t,r)})}signMessage(e){return jl(this,void 0,void 0,function*(){return zr(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=ri(e)),Qn(Or([ri("Ethereum Signed Message:\n"),ri(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return jl(this,void 0,void 0,function*(){const n=yield io.resolveNames(e,t,r,e=>(null==this.provider&&Hl.throwError("cannot resolve ENS names without a provider",kr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return zr(this._signingKey().signDigest(io.hash(n.domain,t,n.value)))})}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(Hi(e.address)!==Ya(e.privateKey))throw new Error("address/privateKey mismatch");if(Bl(e)){const t=e.mnemonic;if(gl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||yl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const i=Mr(e.privateKey),o=Sl(t);let s=null,a=null,u=null;if(Bl(e)){const t=e.mnemonic;s=Mr(bl(t.phrase,t.locale||"en")),a=t.path||yl,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Mr(r.salt):Ju(32);let d=null;if(r.iv){if(d=Mr(r.iv),16!==d.length)throw new Error("invalid iv")}else d=Ju(16);let h=null;if(r.uuid){if(h=Mr(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=Ju(16);let p=1<<17,f=8,m=1;return r.scrypt&&(r.scrypt.N&&(p=r.scrypt.N),r.scrypt.r&&(f=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),Ml.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Mr(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new Al.Counter(d),g=Mr(new Al.ModeOfOperation.ctr(r,y).encrypt(i)),b=Qn(Or([n,g])),v={address:e.address.substring(2).toLowerCase(),id:kl(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Fr(d).substring(2)},ciphertext:Fr(g).substring(2),kdf:"scrypt",kdfparams:{salt:Fr(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=Ju(16),t=new Al.Counter(e),r=Mr(new Al.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+El(n.getUTCMonth()+1,2)+"-"+El(n.getUTCDate(),2)+"T"+El(n.getUTCHours(),2)+"-"+El(n.getUTCMinutes(),2)+"-"+El(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Fr(e).substring(2),mnemonicCiphertext:Fr(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=Ju(16);e||(e={}),e.extraEntropy&&(t=Mr(Gr(Qn(Or([t,e.extraEntropy])),0,16)));const r=vl(t,e.locale);return ql.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(xl(e)){r&&r(0);const n=Nl(e,t);return r&&r(1),Promise.resolve(n)}return _l(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return Ll(n,yield Gl(n,t,Ul,Ml.scrypt,r))},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(o.next(e))}catch(e){t(e)}}function s(e){try{a(o.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,s)}a((o=o.apply(n,[])).next())});var n,i,o}(e,t,r):Promise.reject(new Error("invalid JSON wallet"))}(e,t,r).then(e=>new ql(e))}static fromEncryptedJsonSync(e,t){return new ql(function(e,t){if(xl(e))return Nl(e,t);if(_l(e))return function(e,t){const r=JSON.parse(e);return Ll(r,Gl(r,t,Fl,Ml.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=yl),new ql(gl.fromMnemonic(e,null,r).derivePath(t))}}function Vl(e){return"string"==typeof e?new ql(e):"request"in e||"send"in e?new $u(e).getSigner():e}const zl=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?w(r,t):r;return Promise.resolve(Kl(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},Kl=function(e){try{return Promise.resolve(c(e)).then(function(e){return{fullAppData:e,appDataKeccak256:d(h(e))}})}catch(e){return Promise.reject(e)}},Wl=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(Jl.generateAppDataDoc(w({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(Kl(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},Jl=new l,Ql="Order",Yl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Xl=1e6,$l=BigInt(Xl),Zl=10000n;function ec(e,t){const r=e*BigInt(Math.floor(t*Xl))/$l;return r/100n+(r%100n>=50n?1n:0n)}const tc=1e4,rc=50,nc=.5;function ic(e){const{quote:t,tradeParameters:r,trader:n,isEthFlow:i}=e,{sellTokenDecimals:o,buyTokenDecimals:s}=r,{isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=Pt({sellDecimals:o,buyDecimals:s,orderParams:t.quote}),{feeAmount:c}=t.quote,d=function(e){const{feeAmount:t,multiplyingFactorPercent:r}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(r<0)throw new Error("multiplyingFactorPercent must be non-negative: "+r);return ec(t,r)}({feeAmount:BigInt(c),multiplyingFactorPercent:rc}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,isSell:n,slippagePercent:i}=e,o=n?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return ec(o,i)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:nc}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,slippage:n,isSell:i}=e,o=i?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(n<0n)throw new Error("slippage must be non-negative: "+n);return i?Number(Gt-Gt*(o-n)/o)/Number(Gt):Number(Gt*(o+n)/o-Gt)/Number(Gt)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:d+h}),f=function(e){const t="bigint"==typeof e?Number(e*Zl):e*Number(Zl);return Math.round(t)}(p);return Math.max(Math.min(f,tc),qt(n.chainId,i))}const oc=function(e,t,r){try{const n=Vl(e.signer);return Promise.resolve(sc(n,e)).then(function(i){return Promise.resolve(ac(e,i,t,r)).then(function(e){return{result:{...e.result,signer:n},orderBookApi:e.orderBookApi}})})}catch(e){return Promise.reject(e)}},sc=function(e,t){try{function r(e){return{chainId:t.chainId,appCode:t.appCode,account:e}}const n=t.owner;return Promise.resolve(n?r(n):Promise.resolve(e.getAddress()).then(r))}catch(i){return Promise.reject(i)}},ac=function(e,t,r,n){return Promise.resolve(uc(e,t,r,n)).then(function({quote:e,orderBookApi:r,tradeParameters:n,slippageBps:i,suggestedSlippageBps:o,appDataInfo:s,isEthFlow:a}){const{partnerFee:u,sellTokenDecimals:l,buyTokenDecimals:c}=n,{chainId:d,account:h}=t,p=Nt({orderParams:e.quote,slippagePercentBps:i,partnerFeeBps:Bt(u),sellDecimals:l,buyDecimals:c}),f=Kt({chainId:d,from:h,networkCostsAmount:e.quote.feeAmount,isEthFlow:a},ir(n,e),s.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(Ot.getDomain(e)).then(function(e){return{domain:e,primaryType:Ql,types:{[Ql]:T,EIP712Domain:Yl},message:t}})}catch(e){return Promise.reject(e)}}(d,f)).then(function(t){return{result:{tradeParameters:n,suggestedSlippageBps:o,amountsAndCosts:p,orderToSign:f,quoteResponse:e,appDataInfo:s,orderTypedData:t},orderBookApi:r}})})},uc=function(e,t,r,n){try{const{appCode:i,chainId:o,account:s}=t,a=or(e),u=a?lr(o,e):e,{sellToken:l,buyToken:c,amount:d,kind:h,partnerFee:p,validFor:f=zt,slippageBps:m,env:y="prod"}=u;J(`getQuote for: Swap ${d} ${l} for ${c} on chain ${o} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=n||new ct({chainId:o,env:y}),b=u.receiver||s,v="sell"===h;J("Building app data...");const A=qt(o,a),w=null!=m?m:A,T={slippageBps:w,orderClass:"market",appCode:i,partnerFee:p};return Promise.resolve(Wl(T,r?.appData)).then(function(n){const{appDataKeccak256:i,fullAppData:o}=n;J(`App data: appDataKeccak256=${i} fullAppData=${o}`);const h={from:s,sellToken:l,buyToken:c,receiver:b,validFor:f,appData:o,appDataHash:i,priceQuality:Et.OPTIMAL,signingScheme:It.EIP712,...a?lc:{},...v?{kind:At.SELL,sellAmountBeforeFee:d}:{kind:vt.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return J("Getting quote..."),Promise.resolve(g.getQuote(h)).then(function(i){let o;function s(t){return o?t:{...c,appDataInfo:n,tradeParameters:e,slippageBps:w}}const l=ic({isEthFlow:a,quote:i,tradeParameters:u,trader:t,advancedSettings:r}),c={isEthFlow:a,quote:i,orderBookApi:g,suggestedSlippageBps:l},d=function(){if(void 0===m)return function(){if(l>A)return J(`Suggested slippage is greater than ${A} BPS (default), using the suggested slippage (${l} BPS)`),Promise.resolve(Wl({...T,slippageBps:l},r?.appData)).then(function(t){J(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`);const r={...c,appDataInfo:t,tradeParameters:{...e,slippageBps:l},slippageBps:l};return o=1,r});J(`Suggested slippage is only ${l} BPS. Using the default slippage (${A} BPS)`)}()}();return d&&d.then?d.then(s):s(d)})})}catch(e){return Promise.reject(e)}},lc={signingScheme:It.EIP1271,onchainOrder:!0,verificationGasLimit:0},cc=function({orderBookApi:e,result:{signer:t,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{function s(r){const i=u?.metadata?.quote?.slippageBips,s=u?.metadata?.partnerFee;if(void 0!==i&&(a.slippageBps=i),s&&(a.partnerFee=s),o?.quoteRequest){const{receiver:e,validTo:t,sellToken:r,buyToken:n}=o.quoteRequest;e&&(a.receiver=e),t&&(a.validTo=t),r&&(a.sellToken=r),n&&(a.buyToken=n)}return hr(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=ir(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(zl(r.doc,u)).then(s):s(r))}catch(l){return Promise.reject(l)}},dc=function(e,t,r){try{return Promise.resolve(oc(e,t,r)).then(function(e){return cc(e,t)})}catch(e){return Promise.reject(e)}},hc=function(e,t,r){try{const n=t?.appData?.metadata?.quote?.slippageBips,i=t?.appData?.metadata?.partnerFee;void 0!==n&&(e.slippageBps=n),i&&(e.partnerFee=i),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:s,sellToken:a,buyToken:u,sellAmount:l,buyAmount:c,partnerFee:d}=e;J(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=Vl(e.signer),p=r||new ct({chainId:s,env:e.env});return J("Building app data..."),Promise.resolve(Wl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return hr(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},pc=function(e,t,r,n){try{const i=rr.connect(r,e),o=Ve[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(()=>Rt)).then(function(e){return{data:s,gasLimit:"0x"+sr(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class fc{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Q(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(oc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:function(r,n){try{return Promise.resolve(n?.beforeOrderSign?.()).then(function(){return cc({...t,result:{...t.result,tradeParameters:ur({quoteParameters:t.result.tradeParameters,sellToken:e.sellToken})}},r).catch(e=>{throw n?.onOrderSignError?.(),e}).then(e=>(n?.afterOrderSign?.(),e))})}catch(e){return Promise.reject(e)}}}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(oc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(dc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(hc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(oc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return dr(r.orderBookApi,r.result.signer,r.result.appDataInfo,ir(ur({quoteParameters:n,sellToken:e.sellToken}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=Vl(t.signer);return Promise.resolve(pc(r,t.chainId,e.account,e.orderId))}catch(e){return Promise.reject(e)}}mergeParams(e){const{chainId:t,signer:r,appCode:n,env:i}=e,o={chainId:t||this.traderParams.chainId,signer:r||this.traderParams.signer,appCode:n||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===mc(e).length}(e))throw new Error("Missing trader parameters: "+mc(e).join(", "))}(o),{...e,...o}}}function mc(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const yc=`${re}/src/bridging/providers`,gc=24e4,bc=36e4,vc="cow-sdk://bridging/providers";function Ac(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:vc}}function wc(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const Tc=new kr("units/5.8.0"),Ec=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Sc(e,t){const r=V(e).find(e=>e.dappId?.startsWith(vc));if(!r)return;const n=r.dappId;return t.find(e=>e.info.dappId===n)}const Ic=function(e){try{const{chainId:t,orderId:r,orderBookApi:n,providers:i,env:o}=e,s={chainId:t,env:o};return Promise.resolve(n.getOrder(r,s)).then(function(e){const o=e.fullAppData&&Sc(e.fullAppData,i);if(!o)throw new U(`Unknown Bridge provider in order ${e.uid}. Add provider to the SDK config to be able to decode the order`);return Promise.resolve(n.getTrades({orderUid:e.uid},s)).then(function(n){let i;const s=function(){if(n.length>0){const s=n[0],a=s.txHash;if(!a)throw new U(`No tx hash found for order ${r} . First trade, with log index ${s.logIndex}`);return Promise.resolve(o.getBridgingParams(t,r,a)).then(function({params:r,status:n}){if(!r||!n)throw new U(`Bridging params cannot be derived from transaction: ${a}`);const s={provider:o,chainId:t,order:e,statusResult:{status:M.UNKNOWN},bridgingParams:r,tradeTxHash:a};try{const e=o.getExplorerUrl(r.bridgingId),t={...s,statusResult:n,explorerUrl:e};return i=1,t}catch(e){return console.error("Cannot get bridging status",e),i=1,s}})}}();return s&&s.then?s.then(function(e){return i?e:null}):i?s:null})})}catch(e){return Promise.reject(e)}};class kc{constructor(e){var t,r;this.options=void 0,this.config=void 0,this.options=e;const{providers:n,...i}=e;if(!n||1!==n.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Q(e.enableLogging);const o=null!==(t=e.tradingSdk)&&void 0!==t?t:new fc,s=null!==(r=o?.options.orderBookApi)&&void 0!==r?r:new ct;this.config={...i,providers:n,tradingSdk:o,orderBookApi:s}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(ke)}getTargetNetworks(){try{return Promise.resolve(this.provider.getNetworks())}catch(e){return Promise.reject(e)}}getBuyTokens(e){try{return Promise.resolve(this.provider.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getQuote(e,t){try{const r=this,{sellTokenChainId:n,buyTokenChainId:i}=e,o=r.config.tradingSdk;return Promise.resolve(n!==i?function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,tradingSdk:i,bridgeHookSigner:o}=e,{kind:s,sellTokenChainId:a,sellTokenAddress:u,buyTokenChainId:l,buyTokenAddress:c,amount:d,signer:h,...f}=r,m=Vl(h);if(s!==gt.SELL)throw new Error("Bridging only support SELL orders");return J(`Cross-chain ${s} ${d} ${u} (source chain ${a}) for ${c} (target chain ${l})`),Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r}=e;return Promise.resolve(t.getIntermediateTokens(r)).then(function(e){if(0===e.length)throw new L(O.NO_INTERMEDIATE_TOKENS);const t=e[0];return J(`Using ${t} as intermediate tokens`),{...r,sellTokenAddress:t.address,sellTokenDecimals:t.decimals}})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t})).then(function(e){return Promise.resolve(t.getGasLimitEstimationForHook(e)).then(function(h){const y=Ac(h);J(`Using mocked hook for swap gas estimation: ${JSON.stringify(y)}`);const{sellTokenAddress:g,sellTokenDecimals:b}=e,v={...f,kind:s,chainId:a,sellToken:u,buyToken:g,buyTokenDecimals:b,amount:d.toString(),signer:m},{signer:A,...w}=v;J(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(w,Ze)}`);const T=n?.appData?.metadata?.hooks;return Promise.resolve(i.getQuoteResults(v,{...n,appData:{...n?.appData,metadata:{hooks:{pre:T?.pre,post:[...T?.post||[],y]},bridging:{destinationChainId:l.toString(),destinationTokenAddress:c}}}})).then(function({result:n,orderBookApi:i}){const s=function(i,o,s){try{const u=s?.appData,l=s?.quoteRequest?.receiver,c=s?.quoteRequest?.validTo;return Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:i,appDataOverride:o}=e,s={...r,amount:i};return Promise.resolve(function(e,{provider:t,signer:r,hookGasLimit:n,swapResult:i,validToOverride:o}){try{return Promise.resolve(t.getQuote(e)).then(function(s){return Promise.resolve(t.getUnsignedBridgeCall(e,s)).then(function(a){const u=BigInt(o||i.orderToSign.validTo),l=p(["bytes","uint256"],[a.data,u]);return Promise.resolve(t.getSignedHook(e.sellTokenChainId,a,r,l,u,n)).then(function(e){return{hook:e,unsignedBridgeCall:a,bridgingQuote:s}})})})}catch(e){return Promise.reject(e)}}(s,e)).then(function({hook:e,unsignedBridgeCall:r,bridgingQuote:i}){return Promise.resolve(zl(t.appDataInfo.doc,o||{})).then(function(t){const o=t.doc.metadata.hooks,a=(o?.post||[]).filter(e=>!e.dappId?.startsWith(vc));return Promise.resolve(zl(t.doc,{metadata:{hooks:{pre:o?.pre,post:[...a,e.postHook]}}})).then(function(t){return{bridgeResult:{providerInfo:n.info,tradeParameters:s,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:e},isSell:i.isSell,expectedFillTimeSeconds:i.expectedFillTimeSeconds,fees:i.fees,limits:i.limits,quoteTimestamp:i.quoteTimestamp,amountsAndCosts:i.amountsAndCosts},bridgeHook:e,appDataInfo:t}})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:{...r,kind:gt.SELL},swapResult:n,bridgeRequestWithoutAmount:{...e,receiver:l||e.receiver},provider:t,intermediateTokenAmount:a,signer:i,appDataOverride:u,validToOverride:c,hookGasLimit:o})).then(function({bridgeHook:e,appDataInfo:{doc:t,fullAppData:r,appDataKeccak256:i},bridgeResult:o}){return J(`Bridge hook for swap: ${JSON.stringify(e)}`),n.tradeParameters.receiver=e.recipient,J(`App data for swap: appDataKeccak256=${i}, fullAppData="${r}"`),n.appDataInfo={fullAppData:r,appDataKeccak256:i,doc:t},{bridgeResult:o,swapResult:{...n,tradeParameters:{...n.tradeParameters,receiver:e.recipient}}}})}catch(e){return Promise.reject(e)}},a=n.amountsAndCosts.afterSlippage.buyAmount;return J(`Expected to receive ${a} of the intermediate token (${function(e,t){if("string"!=typeof e&&Tc.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Ec.indexOf(t);-1!==e&&(t=3*e)}return hn(e,null!=t?t:18)}(a.toString(),b).toString()})`),J(`Using gas limit: ${h}`),Promise.resolve(s(o?Vl(o):m,h)).then(function(e){return{swap:e.swapResult,bridge:e.bridgeResult,postSwapOrderFromQuote:function(e,t){try{return Promise.resolve(t?.beforeBridgingSign?.()).then(function(){return Promise.resolve(s(m,h,e).catch(e=>{throw t?.onBridgingSignError?.(),e})).then(function({swapResult:r}){return Promise.resolve(t?.afterBridgingSign?.()).then(function(){const n={result:{...r,tradeParameters:ur({quoteParameters:r.tradeParameters,sellToken:u}),signer:m},orderBookApi:i};return Promise.resolve(t?.beforeOrderSign?.()).then(function(){return cc(n,{...e,appData:r.appDataInfo.doc,quoteRequest:{...e?.quoteRequest,receiver:r.tradeParameters.receiver}}).catch(e=>{throw t?.onOrderSignError?.(),e}).then(function(e){try{return Promise.resolve(t?.afterOrderSign?.()).then(function(){return e})}catch(e){return Promise.reject(e)}})})})})})}catch(e){return Promise.reject(e)}}}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:o,provider:r.provider,bridgeHookSigner:t?.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:r,tradingSdk:n}=e,{sellTokenAddress:i,buyTokenAddress:o,amount:s,...a}=t,u={...a,chainId:t.sellTokenChainId,sellToken:i,buyToken:o,amount:s.toString()},{signer:l,...c}=u;return J(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(c,Ze)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:o}))}catch(e){return Promise.reject(e)}}getOrder(e){try{const t=this,{orderBookApi:r}=t.config,{chainId:n,orderId:i,env:o=r.context.env}=e;return Promise.resolve(Ic({chainId:n,orderId:i,orderBookApi:r,env:o,providers:t.config.providers}))}catch(e){return Promise.reject(e)}}getOrderBridgingStatus(e,t){try{return Promise.resolve(this.provider.getStatus(e,t))}catch(e){return Promise.reject(e)}}getProviderFromAppData(e){return Sc(e,this.getProviders())}}class Pc{constructor(e={}){this.options=void 0,this.options=e}getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:r,destinationToken:n}){try{const i=this,o={};return e&&(o.originChainId=e),t&&(o.originToken=t),r&&(o.destinationChainId=r),n&&(o.destinationToken=n),Promise.resolve(i.fetchApi("/available-routes",o,xc))}catch(e){return Promise.reject(e)}}getSuggestedFees(e){try{const t=this,r={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(r.recipient=e.recipient),Promise.resolve(t.fetchApi("/suggested-fees",r,Cc))}catch(e){return Promise.reject(e)}}getSupportedTokens(){try{return Promise.resolve(this.fetchApi("/token-list",{}).then(e=>e.map(e=>({...e,logoUrl:e.logoURI}))))}catch(e){return Promise.reject(e)}}getDepositStatus(e){try{return Promise.resolve(this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId}))}catch(e){return Promise.reject(e)}}fetchApi(e,t,r){try{const n=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;return J(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET"})).then(function(t){let n;function i(i){return n?i:Promise.resolve(t.json()).then(function(t){if(r){if(r(t))return t;throw new L(O.INVALID_API_JSON_RESPONSE,{path:e,json:t})}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(e){throw new L(O.API_ERROR,e)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function Cc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&Nc(e.totalRelayFee)&&"relayerCapitalFee"in e&&Nc(e.relayerCapitalFee)&&"relayerGasFee"in e&&Nc(e.relayerGasFee)&&"lpFee"in e&&Nc(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function Nc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function xc(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const _c=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),Rc=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const Mc=_c.getEventTopic("FundsDeposited"),Oc=Rc.getEventTopic("Trade"),Bc={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.LENS]:"0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12",[B.BNB]:"0x4e8E101924eDE233C13e2D8622DC8aED2872d505",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Dc={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0,[B.LENS]:void 0,[B.BNB]:void 0},Lc=10n**18n;function Fc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=xt(n,i),a=s.big,u=xt(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=jc(u,l),d=a-jc(a,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:a,buyAmount:u},afterFee:{sellAmount:a,buyAmount:c},afterSlippage:{sellAmount:a,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,Gc(f),Number(10000n*f/Lc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Uc(e){return m.decode(["address"],e).toString()}function Gc(e){if(e>Lc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function jc(e,t){return Gc(t),e*(Lc-t)/Lc}const Hc={filled:M.EXECUTED,slowFillRequested:M.EXECUTED,pending:M.IN_PROGRESS,expired:M.EXPIRED,refunded:M.REFUND};let qc;function Vc(e,t,r){if(!e.s){if(r instanceof zc){if(!r.s)return void(r.o=Vc.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(Vc.bind(null,e,t),Vc.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const zc=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,r){const n=new e,i=this.s;if(i){const e=1&i?t:r;if(e){try{Vc(n,1,e(this.v))}catch(e){Vc(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?Vc(n,1,t?t(i):i):r?Vc(n,1,r(i)):Vc(n,2,i)}catch(e){Vc(n,2,e)}},n},e}(),Kc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Wc{constructor(e,t,r=Ge){this.chainId=void 0,this.customOptions=void 0,this.version=void 0,this.chainId=e,this.customOptions=t,this.version=r}proxyOf(e){const t=m.encode(["address"],[e]),r=p(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(qc||(qc=Jt.createInterface()),qc).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:c}=o.infoToSign(e,t,r,a);return Promise.resolve(function(e,t,r,n,i){try{let o,s;function a(e){return o?e:g(b(u))}let u=null;const l=function(e,t){var r,n=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var s=o();if(s&&s.then)break e;if(s===e){n=i;break}}else n=i}if(-1!==n){do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then){r=!0;break e}var l=t[n][2];n++}while(l&&!l());return u}}const c=new zc,d=Vc.bind(null,c,2);return(r?u.then(h):s.then(function r(s){for(;;){if(s===e){n=i;break}if(++i===t.length){if(-1!==n)break;return void Vc(c,1,u)}if(o=t[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,d)}else n=i}do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then)return void u.then(h).then(void 0,d);var l=t[n][2];n++}while(l&&!l());Vc(c,1,u)})).then(void 0,d),c;function h(e){for(;;){var r=t[n][2];if(!r||r())break;n++;for(var i=t[n][1];!i;)n++,i=t[n][1];if((e=i())&&e.then)return void e.then(h).then(void 0,d)}Vc(c,1,e)}}(e,[[function(){return S.EIP712},function(){if(!I(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,i)).then(function(e){u=e,s=1})}],[function(){return S.ETHSIGN},function(){return Promise.resolve(t.signMessage(v(k(r,n,i)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(c){return Promise.reject(c)}}(i,n,u,l,c))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,r,n){const i={calls:e,nonce:t,deadline:r};return{domain:this.getDomain(n),types:Kc,message:i}}getDomain(e){return{name:"COWShed",version:this.version,chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:qe[this.version]}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:je[this.version]}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:He[this.version]}}const Jc=Kn.toBigInt();class Qc{constructor(e={},t=Ge){this.options=void 0,this.version=void 0,this.hooksCache=new Map,this.options=e,this.version=t}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=Qc.getNonce(),deadline:i=Jc,gasLimit:o,defaultGasLimit:s,signingScheme:a=S.EIP712}){try{const u=this,l=u.getCowShedHooks(r),c=t||u.options?.signer;if(!c)throw new Error("Signer is required");const d=Vl(c);return Promise.resolve(d.getAddress()).then(function(t){const r=l.proxyOf(t);return Promise.resolve(l.signCalls(e,n,i,d,a)).then(function(a){function u(e){return{cowShedAccount:r,signedMulticall:h,gasLimit:BigInt(e.toString())}}const c=l.encodeExecuteHooksForFactory(e,n,i,t,a),h={to:l.getFactoryAddress(),data:c,value:BigInt(0)};return o?u(o):Promise.resolve(d.estimateGas(h).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(h,Ze,2)}. Review the factory call`;if(s)return J(`${t}, using the default gas limit.`),s;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(u)})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new Wc(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return A(Date.now().toString())}}const Yc="abi/5.8.0",Xc=new kr(Yc),$c={};let Zc={calldata:!0,memory:!0,storage:!0},ed={calldata:!0,memory:!0};function td(e,t){if("bytes"===e||"string"===e){if(Zc[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&ed[t])return!0;return(Zc[t]||"payable"===t)&&Xc.throwArgumentError("invalid modifier","name",t),!1}function rd(e,t){for(let r in t)vn(e,r,t[r])}const nd=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),id=new RegExp(/^(.*)\[([0-9]*)\]$/);class od{constructor(e,t){e!==$c&&Xc.throwError("use fromString",kr.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),rd(this,t);let r=this.type.match(id);rd(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:od.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=nd.sighash),nd[e]||Xc.throwArgumentError("invalid format type","format",e),e===nd.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==nd.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===nd.full?", ":",")+")"):t+=this.type,e!==nd.sighash&&(!0===this.indexed&&(t+=" indexed"),e===nd.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?od.fromString(e,t):od.fromObject(e)}static fromObject(e){return od.isParamType(e)?e:new od($c,{name:e.name||null,type:yd(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(od.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){Xc.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let o={type:"",name:"",state:{allowType:!0}},s=o;for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"(":s.state.allowType&&""===s.type?s.type="tuple":s.state.allowParams||n(r),s.state.allowType=!1,s.type=yd(s.type),s.components=[i(s)],s=s.components[0];break;case")":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),td(s.type,s.name)&&(s.name=""),s.type=yd(s.type);let e=s;s=s.parent,s||n(r),delete e.parent,s.state.allowParams=!1,s.state.allowName=!0,s.state.allowArray=!0;break;case",":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),td(s.type,s.name)&&(s.name=""),s.type=yd(s.type);let a=i(s.parent);s.parent.components.push(a),delete s.parent,s=a;break;case" ":s.state.allowType&&""!==s.type&&(s.type=yd(s.type),delete s.state.allowType,s.state.allowName=!0,s.state.allowParams=!0),s.state.allowName&&""!==s.name&&("indexed"===s.name?(t||n(r),s.indexed&&n(r),s.indexed=!0,s.name=""):td(s.type,s.name)?s.name="":s.state.allowName=!1);break;case"[":s.state.allowArray||n(r),s.type+=o,s.state.allowArray=!1,s.state.allowName=!1,s.state.readArray=!0;break;case"]":s.state.readArray||n(r),s.type+=o,s.state.readArray=!1,s.state.allowArray=!0,s.state.allowName=!0;break;default:s.state.allowType?(s.type+=o,s.state.allowParams=!0,s.state.allowArray=!0):s.state.allowName?(s.name+=o,delete s.state.allowArray):s.state.readArray?s.type+=o:n(r)}}return s.parent&&Xc.throwArgumentError("unexpected eof","param",e),delete o.state,"indexed"===s.name?(t||n(r.length-7),s.indexed&&n(r.length-7),s.indexed=!0,s.name=""):td(s.type,s.name)&&(s.name=""),o.type=yd(o.type),o}(e,!!t),od.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function sd(e,t){return function(e){e=e.trim();let t=[],r="",n=0;for(let i=0;i<e.length;i++){let o=e[i];","===o&&0===n?(t.push(r),r=""):(r+=o,"("===o?n++:")"===o&&(n--,-1===n&&Xc.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>od.fromString(e,t))}class ad{constructor(e,t){e!==$c&&Xc.throwError("use a static from method",kr.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),rd(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return ad.isFragment(e)?e:"string"==typeof e?ad.fromString(e):ad.fromObject(e)}static fromObject(e){if(ad.isFragment(e))return e;switch(e.type){case"function":return pd.fromObject(e);case"event":return ud.fromObject(e);case"constructor":return hd.fromObject(e);case"error":return md.fromObject(e);case"fallback":case"receive":return null}return Xc.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?ud.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?pd.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?hd.fromString(e.trim()):"error"===e.split(" ")[0]?md.fromString(e.substring(5).trim()):Xc.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class ud extends ad{format(e){if(e||(e=nd.sighash),nd[e]||Xc.throwArgumentError("invalid format type","format",e),e===nd.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==nd.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===nd.full?", ":",")+") ",e!==nd.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?ud.fromString(e):ud.fromObject(e)}static fromObject(e){if(ud.isEventFragment(e))return e;"event"!==e.type&&Xc.throwArgumentError("invalid event object","value",e);const t={name:bd(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(od.fromObject):[],type:"event"};return new ud($c,t)}static fromString(e){let t=e.match(vd);t||Xc.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:Xc.warn("unknown modifier: "+e)}}),ud.fromObject({name:t[1].trim(),anonymous:r,inputs:sd(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function ld(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&Xc.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||Xc.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=$r.from(r[1]),r[0]):e}function cd(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function dd(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Xc.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Xc.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Xc.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Xc.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Xc.throwArgumentError("unable to determine stateMutability","value",e),t}class hd extends ad{format(e){if(e||(e=nd.sighash),nd[e]||Xc.throwArgumentError("invalid format type","format",e),e===nd.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===nd.sighash&&Xc.throwError("cannot format a constructor for sighash",kr.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===nd.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?hd.fromString(e):hd.fromObject(e)}static fromObject(e){if(hd.isConstructorFragment(e))return e;"constructor"!==e.type&&Xc.throwArgumentError("invalid constructor object","value",e);let t=dd(e);t.constant&&Xc.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(od.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?$r.from(e.gas):null};return new hd($c,r)}static fromString(e){let t={type:"constructor"},r=(e=ld(e,t)).match(vd);return r&&"constructor"===r[1].trim()||Xc.throwArgumentError("invalid constructor string","value",e),t.inputs=sd(r[2].trim(),!1),cd(r[3].trim(),t),hd.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class pd extends hd{format(e){if(e||(e=nd.sighash),nd[e]||Xc.throwArgumentError("invalid format type","format",e),e===nd.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==nd.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===nd.full?", ":",")+") ",e!==nd.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?pd.fromString(e):pd.fromObject(e)}static fromObject(e){if(pd.isFunctionFragment(e))return e;"function"!==e.type&&Xc.throwArgumentError("invalid function object","value",e);let t=dd(e);const r={type:e.type,name:bd(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(od.fromObject):[],outputs:e.outputs?e.outputs.map(od.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?$r.from(e.gas):null};return new pd($c,r)}static fromString(e){let t={type:"function"},r=(e=ld(e,t)).split(" returns ");r.length>2&&Xc.throwArgumentError("invalid function string","value",e);let n=r[0].match(vd);if(n||Xc.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&bd(t.name),t.inputs=sd(n[2],!1),cd(n[3].trim(),t),r.length>1){let n=r[1].match(vd);""==n[1].trim()&&""==n[3].trim()||Xc.throwArgumentError("unexpected tokens","value",e),t.outputs=sd(n[2],!1)}else t.outputs=[];return pd.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function fd(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Xc.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class md extends ad{format(e){if(e||(e=nd.sighash),nd[e]||Xc.throwArgumentError("invalid format type","format",e),e===nd.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==nd.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===nd.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?md.fromString(e):md.fromObject(e)}static fromObject(e){if(md.isErrorFragment(e))return e;"error"!==e.type&&Xc.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:bd(e.name),inputs:e.inputs?e.inputs.map(od.fromObject):[]};return fd(new md($c,t))}static fromString(e){let t={type:"error"},r=e.match(vd);return r||Xc.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&bd(t.name),t.inputs=sd(r[2],!1),fd(md.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function yd(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const gd=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function bd(e){return e&&e.match(gd)||Xc.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const vd=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),Ad=new kr(Yc);class wd{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){Ad.throwArgumentError(e,this.localName,t)}}class Td{constructor(e){vn(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return jr(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Or(e._data))}writeBytes(e){let t=Mr(e);const r=t.length%this.wordSize;return r&&(t=Or([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Mr($r.from(e));return t.length>this.wordSize&&Ad.throwError("value out-of-bounds",kr.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Or([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Ed{constructor(e,t,r,n){vn(this,"_data",Mr(e)),vn(this,"wordSize",t||32),vn(this,"_coerceFunc",r),vn(this,"allowLoose",n),this._offset=0}get data(){return Fr(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Ed.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:Ad.throwError("data out-of-bounds",kr.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Ed(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return $r.from(this.readBytes(this.wordSize))}}class Sd extends wd{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Hi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Hi(qr(e.readValue().toHexString(),20))}}class Id extends wd{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const kd=new kr(Yc);function Pd(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{const n=t.localName;return n||kd.throwError("cannot encode object for signature with missing names",kr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&kd.throwError("cannot encode object for signature with duplicate names",kr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else kd.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&kd.throwArgumentError("types/value length mismatch","tuple",r);let i=new Td(e.wordSize),o=new Td(e.wordSize),s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=o.length;e.encode(o,r);let n=i.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(i,r)}),s.forEach(e=>{e(i.length)});let a=e.appendWriter(i);return a+=e.appendWriter(o),a}function Cd(e,t){let r=[],n=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readValue(),o=n.subReader(r.toNumber());try{i=t.decode(o)}catch(e){if(e.code===kr.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===kr.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)});const i=t.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});t.forEach((e,t)=>{let n=e.localName;if(!n||1!==i[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const o=r[t];o instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw o}}):r[n]=o});for(let e=0;e<r.length;e++){const t=r[e];t instanceof Error&&Object.defineProperty(r,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(r)}class Nd extends wd{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),kd.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));let n=[];for(let e=0;e<t.length;e++)n.push(this.coder);return Pd(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&kd.throwError("insufficient data length",kr.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new Id(this.coder));return e.coerce(this.name,Cd(e,r))}}class xd extends wd{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class _d extends wd{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Mr(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Rd extends _d{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Fr(super.decode(e)))}}class Md extends wd{constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=Mr(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Fr(e.readBytes(this.size)))}}class Od extends wd{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Bd extends wd{constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let r=$r.from(t),n=Kn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(zn).mul(qn)))&&this._throwError("value out-of-bounds",t)}else(r.lt(Vn)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Dd extends _d{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,ri(t))}decode(e){return ni(super.decode(e))}}class Ld extends wd{constructor(e,t){let r=!1;const n=[];e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[n]))}),Object.freeze(e)}encode(e,t){return Pd(e,this.coders,t)}decode(e){return e.coerce(this.name,Cd(e,this.coders))}}const Fd=new kr(Yc),Ud=new RegExp(/^bytes([0-9]*)$/),Gd=new RegExp(/^(u?int)([0-9]*)$/),jd=new class{constructor(e){vn(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Sd(e.name);case"bool":return new xd(e.name);case"string":return new Dd(e.name);case"bytes":return new Rd(e.name);case"array":return new Nd(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Ld((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Od(e.name)}let t=e.type.match(Gd);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&Fd.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Bd(r/8,"int"===t[1],e.name)}if(t=e.type.match(Ud),t){let r=parseInt(t[1]);return(0===r||r>32)&&Fd.throwArgumentError("invalid bytes length","param",e),new Md(r,e.name)}return Fd.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Ed(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Td(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(od.from(e)));return new Ld(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Fd.throwError("types/values length mismatch",kr.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(od.from(e))),n=new Ld(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(od.from(e)));return new Ld(n,"_").decode(this._getReader(Mr(t),r))}},Hd=new kr(Yc);class qd extends Cn{}class Vd extends Cn{}class zd extends Cn{}class Kd extends Cn{static isIndexed(e){return!(!e||!e._isIndexed)}}const Wd={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Jd(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class Qd{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,vn(this,"fragments",t.map(e=>ad.from(e)).filter(e=>null!=e)),vn(this,"_abiCoder",An(new.target,"getAbiCoder")()),vn(this,"functions",{}),vn(this,"errors",{}),vn(this,"events",{}),vn(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Hd.warn("duplicate definition - constructor"):void vn(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?Hd.warn("duplicate definition - "+r):t[r]=e}),this.deploy||vn(this,"deploy",hd.from({payable:!1,type:"constructor"})),vn(this,"_isInterface",!0)}format(e){e||(e=nd.full),e===nd.sighash&&Hd.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===nd.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return jd}static getAddress(e){return Hi(e)}static getSighash(e){return Gr(ii(e.format()),0,4)}static getEventTopic(e){return ii(e.format())}getFunction(e){if(Dr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Hd.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===r.length?Hd.throwArgumentError("no matching function","name",t):r.length>1&&Hd.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[pd.fromString(e).format()];return t||Hd.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Dr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Hd.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===r.length?Hd.throwArgumentError("no matching event","name",t):r.length>1&&Hd.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[ud.fromString(e).format()];return t||Hd.throwArgumentError("no matching event","signature",e),t}getError(e){if(Dr(e)){const t=An(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];Hd.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===r.length?Hd.throwArgumentError("no matching error","name",t):r.length>1&&Hd.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[pd.fromString(e).format()];return t||Hd.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return An(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),An(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=Mr(t);return Fr(r.slice(0,4))!==this.getSighash(e)&&Hd.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Fr(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Fr(Or([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Mr(t);return Fr(r.slice(0,4))!==this.getSighash(e)&&Hd.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Fr(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Fr(Or([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Mr(t),n=null,i="",o=null,s=null,a=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=Fr(r.slice(0,4)),t=Wd[e];if(t)o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.signature,t.reason&&(n=o[0]),"Error"===s?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===s&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.format()}catch(e){}break}}return Hd.throwError("call revert exception"+i,kr.errors.CALL_EXCEPTION,{method:e.format(),data:Fr(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Fr(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Hd.throwError("too many arguments for "+e.format(),kr.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?ii(t):"bytes"===e.type?Qn(Fr(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=$r.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),qr(Fr(t),32));for(t.forEach((t,i)=>{let o=e.inputs[i];o.indexed?null==t?r.push(null):"array"===o.baseType||"tuple"===o.baseType?Hd.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?r.push(t.map(e=>n(o,e))):r.push(n(o,t)):null!=t&&Hd.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],i=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Hd.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,o)=>{const s=t[o];if(e.indexed)if("string"===e.type)r.push(ii(s));else if("bytes"===e.type)r.push(Qn(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[s]))}else n.push(e),i.push(s)}),{data:this._abiCoder.encode(n,i),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);Dr(r[0],32)&&r[0].toLowerCase()===t||Hd.throwError("fragment/topic mismatch",kr.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],i=[],o=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(od.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(n.push(e),o.push(!1)):(i.push(e),o.push(!1))});let s=null!=r?this._abiCoder.decode(n,Or(r)):null,a=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==s)u[t]=new Kd({_isIndexed:!0,hash:null});else if(o[t])u[t]=new Kd({_isIndexed:!0,hash:s[c++]});else try{u[t]=s[c++]}catch(e){u[t]=e}else try{u[t]=a[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw Jd(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw Jd(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Vd({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:$r.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new qd({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Fr(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new zd({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var Yd=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Xd=new kr("contracts/5.8.0");function $d(e,t){return Yd(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&Xd.throwArgumentError("invalid address or ENS name","name",r);try{return Hi(r)}catch(e){}e||Xd.throwError("a provider or signer is needed to resolve ENS names",kr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&Xd.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function Zd(e,t,r){return Yd(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>Zd(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield $d(e,t):"tuple"===r.type?yield Zd(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>Zd(e,t,r.arrayChildren))):Promise.reject(Xd.makeError("invalid value for array",kr.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function eh(e,t,r){return Yd(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=En(r.pop())),Xd.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?wn({override:$d(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>Yd(this,void 0,void 0,function*(){return Hi(e.signer)!==e.override&&Xd.throwError("Contract with a Signer cannot override from",kr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=$d(e.provider,n.from));const i=yield wn({args:Zd(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:wn(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=$r.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=$r.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=$r.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=$r.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=$r.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=eu(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Mr(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=$r.from(t.gas).add(e)}if(a.value){const e=$r.from(a.value);e.isZero()||t.payable||Xd.throwError("non-payable method cannot override value",kr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=En(a.customData)),a.ccipReadEnabled&&(s.ccipReadEnabled=!!a.ccipReadEnabled),delete n.nonce,delete n.gasLimit,delete n.gasPrice,delete n.from,delete n.value,delete n.type,delete n.accessList,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.customData,delete n.ccipReadEnabled;const u=Object.keys(n).filter(e=>null!=n[e]);return u.length&&Xd.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,kr.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function th(e,t,r){const n=e.signer||e.provider;return function(...i){return Yd(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=En(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const s=yield eh(e,t,i),a=yield n.call(s,o);try{let n=e.interface.decodeFunctionResult(t,a);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===kr.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function rh(e,t,r){return t.constant?th(e,t,r):function(e,t){return function(...r){return Yd(this,void 0,void 0,function*(){e.signer||Xd.throwError("sending a transaction requires a signer",kr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield eh(e,t,r),i=yield e.signer.sendTransaction(n);return function(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then(t=>(t.events=t.logs.map(r=>{let n=Pn(r),i=null;try{i=e.interface.parseLog(r)}catch(e){}return i&&(n.args=i.args,n.decode=(t,r)=>e.interface.decodeEventLog(i.eventFragment,t,r),n.event=i.name,n.eventSignature=i.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n}),t))}(e,i),i})}}(e,t)}function nh(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class ih{constructor(e,t){vn(this,"tag",e),vn(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(r=>!(!t&&r.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const r=e.slice();return setTimeout(()=>{t.listener.apply(this,r)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class oh extends ih{constructor(){super("error",null)}}class sh extends ih{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&Xd.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(nh(i),i),vn(this,"address",e),vn(this,"interface",t),vn(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let i in n){const o=e.slice();o.push(i);try{r(o,n[i])}catch(e){t.push({path:o,error:e})}}};return r([],e),t}(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class ah extends ih{constructor(e,t){super("*",{address:e}),vn(this,"address",e),vn(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class uh{constructor(e,t,r){vn(this,"interface",An(new.target,"getInterface")(t)),null==r?(vn(this,"provider",null),vn(this,"signer",null)):a.isSigner(r)?(vn(this,"provider",r.provider||null),vn(this,"signer",r)):_n.isProvider(r)?(vn(this,"provider",r),vn(this,"signer",null)):Xd.throwArgumentError("invalid signer or provider","signerOrProvider",r),vn(this,"callStatic",{}),vn(this,"estimateGas",{}),vn(this,"functions",{}),vn(this,"populateTransaction",{}),vn(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];vn(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)})),e[r.name]||(e[r.name]=[]),e[r.name].push(t)}),Object.keys(e).forEach(t=>{const r=e[t];1===r.length?vn(this.filters,t,this.filters[r[0]]):Xd.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(vn(this,"_runningEvents",{}),vn(this,"_wrappedEmits",{}),null==e&&Xd.throwArgumentError("invalid contract address or ENS name","addressOrName",e),vn(this,"address",e),this.provider)vn(this,"resolvedAddress",$d(this.provider,e));else try{vn(this,"resolvedAddress",Promise.resolve(Hi(e)))}catch(e){Xd.throwError("provider is required to use ENS name as contract address",kr.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const n={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Xd.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&vn(this,e,rh(this,t,!0)),null==this.functions[e]&&vn(this.functions,e,rh(this,t,!1)),null==this.callStatic[e]&&vn(this.callStatic,e,th(this,t,!0)),null==this.populateTransaction[e]&&vn(this.populateTransaction,e,function(e,t){return function(...r){return eh(e,t,r)}}(this,t)),null==this.estimateGas[e]&&vn(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return Yd(this,void 0,void 0,function*(){r||Xd.throwError("estimate require a provider or signer",kr.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield eh(e,t,n);return yield r.estimateGas(i)})}}(this,t))}}),Object.keys(n).forEach(e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&vn(this,e,this[r])}catch(e){}null==this.functions[e]&&vn(this.functions,e,this.functions[r]),null==this.callStatic[e]&&vn(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&vn(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&vn(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return qi(e)}static getInterface(e){return Qd.isInterface(e)?e:new Qd(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Xd.throwError("contract not deployed",kr.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Xd.throwError("sending a transactions require a signer",kr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=En(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Xd.throwError("cannot override "+e,kr.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&vn(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Kd.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new oh);if("event"===e)return this._normalizeRunningEvent(new ih("event",null));if("*"===e)return this._normalizeRunningEvent(new ah(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new sh(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new sh(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new ih(nh(t),t))}return this._normalizeRunningEvent(new ah(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=Pn(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||Xd.throwError("events require a provider or a signer with a provider",kr.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),i=En(n.filter);return"string"==typeof t&&Dr(t,32)?(null!=r&&Xd.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=r?r:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(n,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class lh extends uh{}var ch;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(ch||(ch={}));const dh="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",hh=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function ph(e){const t=e.plan(),{commands:r,state:n}=t;return new Qd(hh).encodeFunctionData("execute",[r,n])}function fh(e){const t=new C;return e(t),{to:dh,value:BigInt(0),data:ph(t)}}function mh(e,t){return N.createContract(e,t)}function yh(e){return N.createLibrary(e)}const gh=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],bh=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],vh=["function balanceOf(address account) external view returns (uint256)"],Ah=["function approve(address spender, uint256 amount) external returns (bool)"],wh=function(e,t,r){try{const n=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account);return Promise.resolve(r.getCode(n)).then(function(e){return e&&"0x"!==e?gc:6e5})}catch(e){return Promise.reject(e)}},Th=`${vc}/across`,Eh=[he,Se,se,ue,Te];class Sh{constructor(e){this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.supportedTokens=null,this.info={name:"Across",logoUrl:`${yc}/across/across-logo.png`,dappId:Th,website:"https://across.to"},this.api=new Pc(e.apiOptions),this.cowShedSdk=new Qc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Eh)}getBuyTokens(e){try{return Promise.resolve(this.getSupportedTokensState()).then(function(t){return Object.values(t[e.buyChainId]||{})})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:r,buyTokenChainId:n,buyTokenAddress:i}=e;return Promise.resolve(t.getSupportedTokensState()).then(function(e){const t=i.toLowerCase(),o=e[r],s=e[n],a=s&&s[t]?.symbol?.toLowerCase();return a?Object.values(o||{}).filter(e=>e.symbol?.toLowerCase()===a):[]})}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:s}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=s?s:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===E.SELL,amountsAndCosts:Fc(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),fees:{bridgeFee:BigInt(r.relayerCapitalFee.total),destinationGasFee:BigInt(r.relayerGasFee.total)},limits:{minDeposit:BigInt(r.limits.minDeposit),maxDeposit:BigInt(r.limits.maxDeposit)},suggestedFees:r}}(e,0,t)})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){const{request:t,quote:r,cowShedSdk:n}=e,{sellTokenChainId:i,sellTokenAddress:o,buyTokenChainId:s,buyTokenAddress:a,account:u,receiver:l}=t,c=function(e){const t=Bc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return mh(new lh(t,bh),ch.CALL)}(i),d=function(e){const t=Dc[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return mh(new lh(t,gh),ch.CALL)}(i),h=function(e){return mh(new lh(e,vh),ch.STATICCALL)}(o),p=function(e){return mh(new lh(e,Ah),ch.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return fh(e=>{const t=e.add(h.balanceOf(f)),r=BigInt(m.totalRelayFee.pct),n=e.add(d.multiplyAndSubtract(t,r));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,o,a,t,n,s,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(wh(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:Th},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const n=this;return Promise.resolve(n.getRpcProvider(e).getTransactionReceipt(r)).then(function(r){return Promise.resolve(function(e,t,r){try{const n=function(e,t){const r=Bc[e]?.toLowerCase();if(!r)return[];const n=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===Mc);return n.map(e=>{const{inputToken:t,outputToken:r,inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:c,recipient:d,exclusiveRelayer:h,message:p}=_c.parseLog(e).args;return{inputToken:Uc(t),outputToken:Uc(r),inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:Uc(c),recipient:Uc(d),exclusiveRelayer:h,message:p}})}(e,r.logs);if(0===n.length)return Promise.resolve(null);const i=function(e,t){const r=t.filter(t=>t.address.toLowerCase()===Ve[e].toLowerCase()&&t.topics[0]===Oc);return r.map(e=>{const t=Rc.parseLog(e).args,{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a}=t;return{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a,orderUid:"0x"+e.data.slice(450,562)}})}(e,r.logs),o=i.findIndex(e=>e.orderUid===t);if(o<0)return Promise.resolve(null);const s=n[o];return s?Promise.resolve({inputTokenAddress:s.inputToken,outputTokenAddress:s.outputToken,inputAmount:BigInt(s.inputAmount.toString()),outputAmount:BigInt(s.outputAmount.toString()),owner:s.depositor,quoteTimestamp:parseInt(s.quoteTimestamp.toString()),fillDeadline:parseInt(s.fillDeadline.toString()),recipient:s.recipient,sourceChainId:e,destinationChainId:parseInt(s.destinationChainId.toString()),bridgingId:s.depositId.toString()}):(J(`Trade event found at index ${o} but only ${n.length} deposit events available`),Promise.resolve(null))}catch(e){return Promise.reject(e)}}(e,t,r)).then(function(t){return t?Promise.resolve(n.getStatus(t.bridgingId,e)).then(function(e){return{params:t,status:e}}):null})})}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e,t){try{return Promise.resolve(this.api.getDepositStatus({originChainId:t.toString(),depositId:e})).then(function(e){return{status:(t=e.status,Hc[t]),depositTxHash:e.depositTxHash,fillTxHash:e.fillTx};var t})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getSupportedTokensState(){try{const e=this;function t(){return e.supportedTokens}const r=function(){if(!e.supportedTokens)return Promise.resolve(e.api.getSupportedTokens()).then(function(t){e.supportedTokens=t.reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})})}();return Promise.resolve(r&&r.then?r.then(t):t())}catch(n){return Promise.reject(n)}}}const Ih=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],kh=[{type:"function",name:"approveAndBridge",inputs:[{name:"token",type:"address",internalType:"contract IERC20"},{name:"minAmount",type:"uint256",internalType:"uint256"},{name:"nativeTokenExtraFee",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"}],Ph={across:{["0x792ebcb9".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:488,bytes_length:32,bytesString_startIndex:978,bytesString_length:64}},["0xe421f352".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:392,bytes_length:32,bytesString_startIndex:786,bytesString_length:64}}},cctp:{["0xb7dfe9d0".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}}}};var Ch;!function(e){e.Across="across",e.CircleCCTP="cctp"}(Ch||(Ch={}));const Nh={Across:Ch.Across,"Circle CCTP":Ch.CircleCCTP};var xh,_h;function Rh(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=xt(n,i).big,a=xt(r.route.output.amount,o).big,u=a,l=r.route.routeDetails.routeFee.amount,c=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:s,buyAmount:a},afterFee:{sellAmount:s,buyAmount:u},afterSlippage:{sellAmount:s,buyAmount:c},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(r.route.routeDetails.routeFee.amount),BigInt(n)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Mh(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const r=`0x${t.slice(0,8)}`,n=`0x${t.slice(8)}`;if(n.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${n.slice(0,10)}`;return{routeId:r,encodedFunctionData:n,functionSelector:i}}function Oh(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,r])=>{Array.isArray(r)?t.append(e,r.join(",")):t.append(e,String(r))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(xh||(xh={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(_h||(_h={}));const Bh="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Dh={[B.MAINNET]:Bh,[B.GNOSIS_CHAIN]:Bh,[B.ARBITRUM_ONE]:Bh,[B.BASE]:Bh,[B.AVALANCHE]:Bh,[B.POLYGON]:Bh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Bh},Lh="0x936fa1cfd96849329B18b915773E176718A64b95",Fh={[B.MAINNET]:Lh,[B.GNOSIS_CHAIN]:Lh,[B.ARBITRUM_ONE]:Lh,[B.BASE]:Lh,[B.AVALANCHE]:Lh,[B.POLYGON]:Lh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Lh};function Uh(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}const Gh="https://public-backend.bungee.exchange/api/v1/bungee",jh="https://microservices.socket.tech/loki",Hh="https://app.across.to/api",qh=["across","cctp"],Vh={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class zh{constructor(e={apiBaseUrl:Gh,eventsApiBaseUrl:jh,acrossApiBaseUrl:Hh,includeBridges:qh}){this.options=void 0,this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(e?.some(e=>!qh.includes(e)))throw new F(`Unsupported bridge: ${e.filter(e=>!qh.includes(e)).join(", ")}`,{includeBridges:e})}getBuyTokens(e,t){try{const r=this,{sellChainId:n,sellTokenAddress:i,buyChainId:o}=e,s=r.getSupportedBridges(t?.includeBridges);r.validateBridges(s);const a={toChainId:o.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),i&&(a.fromTokenAddress=i);const u=Oh(a);return Promise.resolve(r.makeApiCall("bungee-manual","/dest-tokens",u)).then(function(e){if(!e.success)throw new F("Bungee Api Error: Buy tokens failed",e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this,{fromChainId:r,toChainId:n,toTokenAddress:i}=e,o=t.getSupportedBridges(e.includeBridges);t.validateBridges(o);const s=Oh({fromChainId:r.toString(),toChainId:n.toString(),toTokenAddress:i,includeBridges:o.join(",")});return Promise.resolve(t.makeApiCall("bungee-manual","/intermediate-tokens",s)).then(function(e){if(!e.success)throw new L(O.NO_INTERMEDIATE_TOKENS,e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getBungeeQuoteWithBuildTx(e){try{const t=this;return Promise.resolve(t.getBungeeQuote(e)).then(function(e){return Promise.resolve(t.getBungeeBuildTx(e)).then(function(t){return{bungeeQuote:e,buildTx:t}})})}catch(e){return Promise.reject(e)}}getBungeeQuote(e){try{const t=this;return Promise.resolve(Uh(function(){e.includeBridges=t.getSupportedBridges(e.includeBridges),t.validateBridges(e.includeBridges);const r=Oh(e);return Promise.resolve(t.makeApiCall("bungee","/quote",r,Kh)).then(function(e){if(!e.success)throw new L(O.QUOTE_ERROR,e);const t=Math.floor(Date.now()/1e3),{manualRoutes:r}=e.result;if(0===r.length)throw new L(O.NO_ROUTES,e.result);const n=r[0];if(!n?.routeDetails?.name)throw new L(O.NO_ROUTES,{manualRoutes:r});const i=Nh[n.routeDetails.name];if(!i)throw new L(O.INVALID_BRIDGE,{firstRoute:n});const o=r.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:e.result.originChainId,destinationChainId:e.result.destinationChainId,userAddress:e.result.userAddress,receiverAddress:e.result.receiverAddress,input:e.result.input,route:o[0],routeBridge:i,quoteTimestamp:t}})},function(e){throw console.error("🔴 Error getting bungee quote:",e),e}))}catch(e){return Promise.reject(e)}}getBungeeBuildTx(e){try{return Promise.resolve(this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId})).then(function(e){if(!e.success)throw new L(O.TX_BUILD_ERROR,e);return e.result})}catch(e){return Promise.reject(e)}}verifyBungeeBuildTx(e,t,r){try{const n=this,{routeId:i,functionSelector:o}=Mh(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:o};return Promise.resolve(n.verifyBungeeBuildTxData(e.originChainId,t.txData.data,i,s,r))}catch(e){return Promise.reject(e)}}verifyBungeeBuildTxData(e,t,r,n,o){try{let s;function a(e){let i;if(s)return e;const o={routeId:r,socketRequest:n},a=Uh(function(){return Promise.resolve(c.callStatic.validateSocketRequest(t,o)).then(function(){})},function(e){return console.error("🔴 Error validating socket request:",e),i=1,!1});return a&&a.then?a.then(function(e){return!i||e}):!i||a}const u=Vl(o),l=Dh[e];if(!l)throw new L(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const c=new i.Contract(l,Ih,u),d=Uh(function(){return Promise.resolve(c.callStatic.validateRotueId(t,r)).then(function(){})},function(e){return console.error("🔴 Error validating routeId:",e),s=1,!1});return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(h){return Promise.reject(h)}}getEvents(e){try{return Promise.resolve(this.makeApiCall("events",e.orderId?"/order":"/tx",e,Wh)).then(function(e){if(!e.success)throw new F("Bungee Events Api Error",e);return e.result})}catch(e){return Promise.reject(e)}}getAcrossStatus(e){try{return Promise.resolve(this.makeApiCall("across","/deposit/status",{depositTxHash:e},Jh)).then(function(e){return e.status})}catch(e){return Promise.reject(e)}}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:qh}makeApiCall(e,t,r,n){try{const i=this,o=`${{bungee:i.options.apiBaseUrl||Gh,events:i.options.eventsApiBaseUrl||jh,across:i.options.acrossApiBaseUrl||Hh,"bungee-manual":i.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(r).toString()}`;return J(`Fetching ${e} API: GET ${o}. Params: ${JSON.stringify(r)}`),Promise.resolve(fetch(o,{method:"GET"})).then(function(t){let i;function o(o){return i?o:Promise.resolve(t.json()).then(function(t){if(n&&!n(t))throw new L(O.INVALID_API_JSON_RESPONSE,{json:t,apiType:e,params:r});return t})}const s=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(t){throw new L(O.API_ERROR,{errorBody:t,type:Vh[e]})})}();return s&&s.then?s.then(o):o(s)})}catch(e){return Promise.reject(e)}}}function Kh(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const r=t;return!!("originChainId"in r&&"destinationChainId"in r&&"userAddress"in r&&"receiverAddress"in r&&"manualRoutes"in r&&Array.isArray(r.manualRoutes))&&r.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function Wh(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function Jh(e){return"object"==typeof e&&null!==e&&"status"in e}const Qh=function(e,t){try{let n;function r(e){if(n)return e;if(i.srcTxStatus===xh.COMPLETED&&i.destTxStatus===xh.COMPLETED)return{status:M.EXECUTED,depositTxHash:i.srcTransactionHash,fillTxHash:i.destTransactionHash};throw new Error("Unknown status")}if(!e?.length)return Promise.resolve({status:M.UNKNOWN});const i=e[0];if(i.srcTxStatus===xh.PENDING)return Promise.resolve({status:M.IN_PROGRESS});const o=function(){if(i.srcTxStatus===xh.COMPLETED&&i.destTxStatus===xh.PENDING){function e(e){return n?e:(n=1,{status:M.IN_PROGRESS,depositTxHash:i.srcTransactionHash})}const r=function(){if(i.bridgeName===_h.ACROSS)return function(e,r){try{var o=Promise.resolve(t(i.orderId)).then(function(e){return"expired"===e?(n=1,{status:M.EXPIRED,depositTxHash:i.srcTransactionHash}):"refunded"===e?(n=1,{status:M.REFUND,depositTxHash:i.srcTransactionHash}):void 0})}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(e){console.error("BungeeBridgeProvider get across status error",e)})}();return r&&r.then?r.then(e):e(r)}}();return Promise.resolve(o&&o.then?o.then(r):r(o))}catch(s){return Promise.reject(s)}},Yh="cow-sdk://bridging/providers/bungee",Xh=[he,Se,se,ue,Te,ye];class $h{constructor(e){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.info={name:"Bungee",logoUrl:`${yc}/bungee/bungee-logo.png`,dappId:Yh,website:"https://www.bungee.exchange"},this.options=e,this.api=new zh(e.apiOptions),this.cowShedSdk=new Qc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Xh)}getBuyTokens(e){try{return Promise.resolve(this.api.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return Promise.resolve(t.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress}))}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o,amount:s,receiver:a,account:u,owner:l}=e,c={userAddress:t.cowShedSdk.getCowShedAccount(n,null!=l?l:u),originChainId:n.toString(),destinationChainId:i.toString(),inputToken:r,inputAmount:s.toString(),receiverAddress:null!=a?a:u,outputToken:o,includeBridges:t.options.apiOptions?.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0};return Promise.resolve(t.api.getBungeeQuoteWithBuildTx(c)).then(function(r){return Promise.resolve(t.api.verifyBungeeBuildTx(r.bungeeQuote,r.buildTx,Vl(e.signer))).then(function(t){if(!t)throw new L(O.TX_BUILD_ERROR,r);return function(e,t,r){const{kind:n}=e,{bungeeQuote:i,buildTx:o}=r;return{isSell:n===E.SELL,amountsAndCosts:Rh(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:o}}(e,0,r)})})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){try{const{request:t,quote:r}=e,{bungeeQuote:n,buildTx:o}=r,s=n.routeBridge,{functionSelector:a}=Mh(o.txData.data),u=a.toLowerCase();let l=!1,c=0;const d=0n;s===Ch.Across&&(l=!0,c=Ph[s][u].outputAmount.bytes_startIndex);const h=i.utils.defaultAbiCoder.encode(["uint256","bool","uint256"],[Ph[s][u].inputAmount.bytes_startIndex,l,c]);let p=o.txData.data;p.startsWith("0x")&&(p=p.slice(2));let f=h;f.startsWith("0x")&&(f=f.slice(2));const m="0x"+p+f,y=n.input.amount,g=new i.utils.Interface(kh).encodeFunctionData("approveAndBridge",[t.sellTokenAddress,y,d,m]),b=(t.sellTokenAddress.toLowerCase()===Be.toLowerCase()?BigInt(y):0n)+d,v=Fh[t.sellTokenChainId];if(!v)throw new Error("BungeeApproveAndBridgeV1 not found");return Promise.resolve({to:v,data:g,value:b})}catch(e){return Promise.reject(e)}}({request:e,quote:t}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(wh(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:Yh},recipient:t}})}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const e=this;return Promise.resolve(e.api.getEvents({orderId:t})).then(function(r){const n=r[0];return n?Promise.resolve(Qh(r,t=>e.api.getAcrossStatus(t))).then(function(e){return{params:{inputTokenAddress:n.srcTokenAddress,outputTokenAddress:n.destTokenAddress,inputAmount:BigInt(n.srcAmount),outputAmount:n.destAmount?BigInt(n.destAmount):null,owner:n.sender,quoteTimestamp:null,fillDeadline:null,recipient:n.recipient,sourceChainId:n.fromChainId,destinationChainId:n.toChainId,bridgingId:t},status:e}}):null})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}getStatus(e){try{const t=this;return Promise.resolve(t.api.getEvents({orderId:e})).then(function(e){return Qh(e,e=>t.api.getAcrossStatus(e))})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}}const Zh=x`
1
+ import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOff as t}from"exponential-backoff";import{utils as r,Contract as n,ethers as i,constants as o,BigNumber as s}from"ethers";import{Signer as a,VoidSigner as u}from"@ethersproject/abstract-signer";import{MetadataApi as l,stringifyDeterministic as c}from"@cowprotocol/app-data";import{keccak256 as d,toUtf8Bytes as h,solidityKeccak256 as p,Interface as f,defaultAbiCoder as m,getCreate2Address as y,joinSignature as g,splitSignature as b,arrayify as v,formatBytes32String as A}from"ethers/lib/utils";import w from"deepmerge";import{ORDER_TYPE_FIELDS as T,OrderKind as E,SigningScheme as S,isTypedDataSigner as I,hashTypedData as k,OrderBalance as P}from"@cowprotocol/contracts";import{Planner as C,Contract as N}from"@weiroll/weiroll.js";export{Contract as WeirollContract,Planner as WeirollPlanner}from"@weiroll/weiroll.js";import{gql as x,request as _}from"graphql-request";import{StandardMerkleTree as R}from"@openzeppelin/merkle-tree";var M,O,B,D;!function(e){e.IN_PROGRESS="in_progress",e.EXECUTED="executed",e.EXPIRED="expired",e.REFUND="refund",e.UNKNOWN="unknown"}(M||(M={})),function(e){e.NO_INTERMEDIATE_TOKENS="NO_INTERMEDIATE_TOKENS",e.API_ERROR="API_ERROR",e.INVALID_API_JSON_RESPONSE="INVALID_API_JSON_RESPONSE",e.ONLY_SELL_ORDER_SUPPORTED="ONLY_SELL_ORDER_SUPPORTED",e.TX_BUILD_ERROR="TX_BUILD_ERROR",e.QUOTE_ERROR="QUOTE_ERROR",e.NO_ROUTES="NO_ROUTES",e.INVALID_BRIDGE="INVALID_BRIDGE"}(O||(O={}));class L extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderQuoteError"}}class F extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderError"}}class U extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeOrderParsingError"}}function G(e){return"bridge"in e}function j(e){return!G(e)}function H(e){if(!G(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")}function q(e){if(!j(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")}function V(e){if(!e)return[];const t=JSON.parse(e);return z(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function z(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}!function(e){e[e.MAINNET=1]="MAINNET",e[e.BNB=56]="BNB",e[e.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",e[e.POLYGON=137]="POLYGON",e[e.LENS=232]="LENS",e[e.BASE=8453]="BASE",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.AVALANCHE=43114]="AVALANCHE",e[e.SEPOLIA=11155111]="SEPOLIA"}(B||(B={})),function(e){e[e.OPTIMISM=10]="OPTIMISM"}(D||(D={}));class K extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}let W=!1;function J(e){W&&console.log(`[COW TRADING SDK] ${e}`)}function Q(e){W=e}const Y="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",X="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",$={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${X}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},Z={[B.MAINNET]:ee(B.MAINNET,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",$),[B.GNOSIS_CHAIN]:ee(B.GNOSIS_CHAIN,"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",{decimals:18,name:"Wrapped XDAI",symbol:"WXDAI"}),[B.ARBITRUM_ONE]:ee(B.ARBITRUM_ONE,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",$),[B.BASE]:ee(B.BASE,"0x4200000000000000000000000000000000000006",$),[B.SEPOLIA]:ee(B.SEPOLIA,"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",$),[B.POLYGON]:ee(B.POLYGON,"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",{decimals:18,name:"Wrapped POL",symbol:"WPOL"}),[B.AVALANCHE]:ee(B.AVALANCHE,"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",{decimals:18,name:"Wrapped AVAX",symbol:"WAVAX"}),[B.LENS]:ee(B.LENS,"0x6bdc36e20d267ff0dd6097799f82e78907105e2f",{decimals:18,name:"Wrapped GHO",symbol:"WGHO"}),[B.BNB]:ee(B.BNB,"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",{decimals:18,name:"Wrapped BNB",symbol:"WBNB"})};function ee(e,t,r){const{logoUrl:n,...i}=r;return{chainId:e,address:t,...i,logoUrl:n||`${X}/${e}/${t.toLowerCase()}/logo.png`}}const te={address:Y,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${X}/1/${Y}/logo.png`},re="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",ne=`${re}/src/chains`,ie=`${ne}/images/arbitrum-logo-light.svg`,oe=`${ne}/images/arbitrum-logo-dark.svg`,se={id:B.ARBITRUM_ONE,label:"Arbitrum",eip155Label:"Arbitrum One",nativeCurrency:{...te,chainId:B.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:ie,dark:oe},website:{name:"Arbitrum",url:"https://arbitrum.io"},docs:{name:"Arbitrum Docs",url:"https://docs.arbitrum.io"},blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io"},bridges:[{name:"Arbitrum Bridge",url:"https://bridge.arbitrum.io"}]},ae=`${ne}/images/base-logo.svg`,ue={id:B.BASE,label:"Base",eip155Label:"Base",nativeCurrency:{...te,chainId:B.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:ae,dark:ae},website:{name:"Base",url:"https://base.org"},docs:{name:"Base Docs",url:"https://docs.base.org"},blockExplorer:{name:"BaseScan",url:"https://basescan.org"},bridges:[{name:"Superchain Bridges",url:"https://bridge.base.org/deposit"}]},le=`${ne}/images/gnosis-logo.svg`,ce={id:B.GNOSIS_CHAIN,label:"Gnosis",eip155Label:"Gnosis",nativeCurrency:{...te,chainId:B.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${X}/100/${Y}/logo.png`},addressPrefix:"gno",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:21022491}},rpcUrls:{default:{http:["https://rpc.gnosischain.com"],webSocket:["wss://rpc.gnosischain.com/wss"]}},color:"#07795B",logo:{light:le,dark:le},website:{name:"Gnosis Chain",url:"https://www.gnosischain.com"},docs:{name:"Gnosis Chain Docs",url:"https://docs.gnosischain.com"},blockExplorer:{name:"Gnosisscan",url:"https://gnosisscan.io"},bridges:[{name:"Gnosis Chain Bridge",url:"https://bridge.gnosischain.com"}]},de=`${ne}/images/mainnet-logo.svg`,he={id:B.MAINNET,label:"Ethereum",eip155Label:"Ethereum Mainnet",nativeCurrency:{...te,chainId:B.MAINNET},addressPrefix:"eth",isTestnet:!1,contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}},rpcUrls:{default:{http:["https://eth.merkle.io"]}},color:"#62688F",logo:{light:de,dark:de},website:{name:"Ethereum",url:"https://ethereum.org"},docs:{name:"Ethereum Docs",url:"https://ethereum.org/en/developers/docs"},blockExplorer:{name:"Etherscan",url:"https://etherscan.io"}},pe=`${ne}/images/sepolia-logo.svg`,fe={id:B.SEPOLIA,label:"Sepolia",eip155Label:"Ethereum Sepolia",nativeCurrency:{...te,chainId:B.SEPOLIA},addressPrefix:"sep",isTestnet:!0,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},color:"#C12FF2",logo:{light:pe,dark:pe},website:{name:"Ethereum",url:"https://sepolia.dev"},docs:{name:"Sepolia Docs",url:"https://ethereum.org/en/developers/docs/networks/#sepolia"},blockExplorer:{name:"Etherscan",url:"https://sepolia.etherscan.io"}},me=`${ne}/images/avax-logo.svg`,ye={id:B.AVALANCHE,label:"Avalanche",eip155Label:"Avalanche C-Chain",logo:{light:me,dark:me},nativeCurrency:{...te,chainId:B.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:me},addressPrefix:"avax",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:11907934}},rpcUrls:{default:{http:["https://api.avax.network/ext/bc/C/rpc"]}},color:"#ff3944",website:{name:"Avalanche",url:"https://www.avax.network/"},docs:{name:"Avalanche Docs",url:"https://build.avax.network/docs"},blockExplorer:{name:"SnowScan",url:"https://snowscan.xyz"}},ge=`${ne}/images/bnb-logo.svg`,be={id:B.BNB,label:"BNB",eip155Label:"BNB Chain Mainnet",logo:{light:ge,dark:ge},nativeCurrency:{...te,chainId:B.BNB,name:"BNB Chain Native Token",symbol:"BNB",logoUrl:ge},addressPrefix:"bnb",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}},rpcUrls:{default:{http:["https://bsc-dataseed1.bnbchain.org"]}},color:"#F0B90B",website:{name:"BNB Chain",url:"https://www.bnbchain.org"},docs:{name:"BNB Chain Docs",url:"https://docs.bnbchain.org"},blockExplorer:{name:"BscScan",url:"https://bscscan.com"},bridges:[{name:"BNB Chain Cross-Chain Bridge",url:"https://www.bnbchain.org/en/bnb-chain-bridge"}]},ve=`${X}/1/0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f/logo.png`,Ae={id:B.LENS,label:"Lens",eip155Label:"Lens Chain Mainnet",logo:{light:`${ne}/images/lens-logo-light.svg`,dark:`${ne}/images/lens-logo-dark.svg`},nativeCurrency:{...te,chainId:B.LENS,name:"GHO",symbol:"GHO",logoUrl:ve},addressPrefix:"lens",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1724216}},rpcUrls:{default:{http:["https://rpc.lens.xyz"]}},color:"#FFFFFF",website:{name:"Lens",url:"https://www.lens.xyz"},docs:{name:"Lens Docs",url:"https://docs.lens.xyz"},blockExplorer:{name:"Lens Explorer",url:"https://explorer.lens.xyz"},bridges:[{name:"Lens Bridge",url:"https://lens.xyz/bridge"}],isZkSync:!0},we=`${ne}/images/optimism-logo.svg`,Te={id:10,label:"Optimism",eip155Label:"OP Mainnet",logo:{light:we,dark:we},nativeCurrency:{...te,chainId:10},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:4286263}},rpcUrls:{default:{http:["https://mainnet.optimism.io"]}},color:"#ff0420",website:{name:"Optimism",url:"https://optimism.io"},docs:{name:"Optimism Docs",url:"https://docs.optimism.io"},blockExplorer:{name:"Etherscan",url:"https://optimistic.etherscan.io"}},Ee=`${ne}/images/polygon-logo.svg`,Se={id:B.POLYGON,label:"Polygon",eip155Label:"Polygon Mainnet",logo:{light:Ee,dark:Ee},nativeCurrency:{...te,chainId:B.POLYGON,name:"POL",symbol:"POL",logoUrl:Ee},addressPrefix:"matic",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#8247e5",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com"}},Ie={[B.MAINNET]:he,[B.GNOSIS_CHAIN]:ce,[B.ARBITRUM_ONE]:se,[B.BASE]:ue,[B.AVALANCHE]:ye,[B.POLYGON]:Se,[B.BNB]:be,[B.LENS]:Ae,[B.SEPOLIA]:fe},ke=Object.values(Ie),Pe=ke.map(e=>e.id),Ce={[D.OPTIMISM]:Te},Ne=ke.concat(Object.values(Ce)),xe=Ne.map(e=>e.id),_e=["prod","staging"],Re={env:"prod",chainId:B.MAINNET};function Me(e){return Pe.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function Oe(e){return Me(e)}const Be="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",De="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",Le="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",Fe="1.0.0",Ue="1.0.1",Ge=Ue,je={[Fe]:"0x00E989b87700514118Fa55326CD1cCE82faebEF6",[Ue]:"0x312f92fe5f1710408B20D52A374fa29e099cFA86"},He={[Fe]:"0x2CFFA8cf11B90C9F437567b86352169dF4009F73",[Ue]:"0xa2704cf562ad418bf0453f4b662ebf6a2489ed88"},qe={[Fe]:"0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",[Ue]:"0x60a03461009557601f61033d38819003918201601f19168301916001600160401b0383118484101761009957808492604094855283398101031261009557610052602061004b836100ad565b92016100ad565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560405161027b90816100c28239608051818181608b01526101750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100955756fe60806040526004361015610018575b3661019757610197565b5f3560e01c8063025b22bc146100375763f851a4400361000e57610116565b346101125760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101125760043573ffffffffffffffffffffffffffffffffffffffff81169081810361011257337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160361010d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2005b61023d565b5f80fd5b34610112575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011257602061014e61016c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b33300361010d577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101f0575b1561023d577ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000005f351614156101c3565b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e15610277573d5ff35b3d5ffd"},Ve=Oe("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),ze=Oe("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),Ke=Oe(De),We=Oe(Le),Je={...Oe("0xba3cb449bd2b4adddbc894d8697f5170800eadec"),[B.LENS]:"0x5A5b8aE7a0b4C0EAf453d10DCcfbA413f07ebdC2"},Qe={...Oe("0x04501b9b1d52e67f6862d157e00d13419d2d6e95"),[B.LENS]:"0xFb337f8a725A142f65fb9ff4902d41cc901de222"},Ye=4294967295,Xe="https://gnosis.mypinata.cloud/ipfs",$e="https://api.pinata.cloud",Ze=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,et=function(e,{path:r,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${e}${r}${n?"?"+n:""}`,c={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(t(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(ot(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new tt(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class tt extends Error{constructor(e,t){super("string"==typeof t?t:e.statusText),this.response=void 0,this.body=void 0,this.response=e,this.body=t}}const rt=[408,425,429,500,502,503,504],nt={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof tt)||rt.includes(e.response.status)},it={tokensPerInterval:5,interval:"second"},ot=function(e){try{let t;const r=function(){if(204!==e.status)return function(r,n){try{var i=function(){const r=e.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(e.json()).then(function(e){return t=1,e}):Promise.resolve(e.text()).then(function(e){return t=1,e})}()}()}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(e){console.error(e)})}();return Promise.resolve(r&&r.then?r.then(function(e){return t?e:void 0}):t?r:void 0)}catch(e){return Promise.reject(e)}};function st(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=Be;return{...e,validTo:r,owner:n,sellToken:i}}(function(e){const{executedFeeAmount:t,executedFee:r}=e,n=BigInt(t||"0"),i=BigInt(r||"0"),o=String(n+i);return{...e,totalFee:o}}(e))}const at={[B.MAINNET]:"https://api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[B.BASE]:"https://api.cow.fi/base",[B.SEPOLIA]:"https://api.cow.fi/sepolia",[B.POLYGON]:"https://api.cow.fi/polygon",[B.AVALANCHE]:"https://api.cow.fi/avalanche",[B.LENS]:"https://api.cow.fi/lens",[B.BNB]:"https://api.cow.fi/bnb"},ut={[B.MAINNET]:"https://barn.api.cow.fi/mainnet",[B.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[B.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[B.BASE]:"https://barn.api.cow.fi/base",[B.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[B.POLYGON]:"https://barn.api.cow.fi/polygon",[B.AVALANCHE]:"https://barn.api.cow.fi/avalanche",[B.LENS]:"https://barn.api.cow.fi/lens",[B.BNB]:"https://barn.api.cow.fi/bnb"};function lt(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class ct{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...Re,...t},this.rateLimiter=new e(t.limiterOpts||it)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new K("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new K("Must specify either owner or orderId"));const r=new URLSearchParams(lt(e));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},t)}getOrders({owner:e,offset:t=0,limit:r=1e3},n={}){const i=new URLSearchParams(lt({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(st))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(st))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>st(e))}getOrderCompetitionStatus(e,t={}){return this.fetch({path:`/api/v1/orders/${e}/status`,method:"GET"},t)}getOrderMultiEnv(e,t={}){const{env:r}=this.getContextWithOverride(t),n=_e.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof tt&&404===r.response.status&&s?(i++,this.getOrder(e,{...t,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(e,{...t,env:r}).catch(o)}getQuote(e,t={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:e},t)}sendSignedOrderCancellations(e,t={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:e},t)}sendOrder(e,t={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:e},t)}getNativePrice(e,t={}){return this.fetch({path:`/api/v1/token/${e}/native_price`,method:"GET"},t)}getTotalSurplus(e,t={}){return this.fetch({path:`/api/v1/users/${e}/total_surplus`,method:"GET"},t)}getAppData(e,t={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"GET"},t)}uploadAppData(e,t,r={}){return this.fetch({path:`/api/v1/app_data/${e}`,method:"PUT",body:{fullAppData:t}},r)}getSolverCompetition(e,t={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof e?"/by_tx_hash":""}/${e}`,method:"GET"},t)}getOrderLink(e,t){const{chainId:r,env:n}=this.getContextWithOverride(t);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${e}`}getContextWithOverride(e={}){return{...this.context,...e}}getApiBaseUrls(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?at:ut}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||nt,u=r.limiterOpts?new e(r.limiterOpts):this.rateLimiter;return J(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,Ze)}`),et(s,t,u,a)}}var dt,ht,pt,ft,mt,yt,gt,bt,vt,At,wt,Tt,Et,St,It;!function(e){e.ERC20="erc20",e.INTERNAL="internal"}(dt||(dt={})),function(e){var t;(t=e.type||(e.type={})).OPEN="open",t.SCHEDULED="scheduled",t.ACTIVE="active",t.SOLVED="solved",t.EXECUTING="executing",t.TRADED="traded",t.CANCELLED="cancelled"}(ht||(ht={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign"}(pt||(pt={})),function(e){var t;(t=e.placementError||(e.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",t.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",t.PRE_VALIDATION_ERROR="PreValidationError"}(ft||(ft={})),function(e){var t;(t=e.errorType||(e.errorType={})).INVALID_SIGNATURE="InvalidSignature",t.WRONG_OWNER="WrongOwner",t.ORDER_NOT_FOUND="OrderNotFound",t.ALREADY_CANCELLED="AlreadyCancelled",t.ORDER_FULLY_EXECUTED="OrderFullyExecuted",t.ORDER_EXPIRED="OrderExpired",t.ON_CHAIN_ORDER="OnChainOrder"}(mt||(mt={})),function(e){e.MARKET="market",e.LIMIT="limit",e.LIQUIDITY="liquidity"}(yt||(yt={})),function(e){e.BUY="buy",e.SELL="sell"}(gt||(gt={})),function(e){var t;(t=e.errorType||(e.errorType={})).DUPLICATED_ORDER="DuplicatedOrder",t.QUOTE_NOT_FOUND="QuoteNotFound",t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.INVALID_QUOTE="InvalidQuote",t.MISSING_FROM="MissingFrom",t.WRONG_OWNER="WrongOwner",t.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",t.INSUFFICIENT_BALANCE="InsufficientBalance",t.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",t.INVALID_SIGNATURE="InvalidSignature",t.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",t.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",t.ZERO_AMOUNT="ZeroAmount",t.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",t.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",t.TOO_MUCH_GAS="TooMuchGas",t.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",t.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",t.INSUFFICIENT_VALID_TO="InsufficientValidTo",t.EXCESSIVE_VALID_TO="ExcessiveValidTo",t.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",t.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.INVALID_APP_DATA="InvalidAppData",t.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",t.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}(bt||(bt={})),function(e){e.BUY="buy"}(vt||(vt={})),function(e){e.SELL="sell"}(At||(At={})),function(e){e.PRESIGNATURE_PENDING="presignaturePending",e.OPEN="open",e.FULFILLED="fulfilled",e.CANCELLED="cancelled",e.EXPIRED="expired"}(wt||(wt={})),function(e){var t;(t=e.errorType||(e.errorType={})).QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}(Tt||(Tt={})),function(e){e.FAST="fast",e.OPTIMAL="optimal",e.VERIFIED="verified"}(Et||(Et={})),function(e){e.ERC20="erc20",e.INTERNAL="internal",e.EXTERNAL="external"}(St||(St={})),function(e){e.EIP712="eip712",e.ETHSIGN="ethsign",e.PRESIGN="presign",e.EIP1271="eip1271"}(It||(It={}));const kt=BigInt(1e4);function Pt(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,{sellAmountAfterNetworkCosts:i,buyAmountAfterNetworkCosts:o,buyAmountBeforeNetworkCosts:s,isSell:a,networkCostAmount:u,quotePrice:l,sellAmountBeforeNetworkCosts:c}=Ct({sellDecimals:t,buyDecimals:r,orderParams:n});return{isSell:a,quotePrice:l,sellAmountAfterNetworkCosts:i.big,buyAmountAfterNetworkCosts:o.big,buyAmountBeforeNetworkCosts:s.big,networkCostAmount:u.big,sellAmountBeforeNetworkCosts:c.big}}function Ct(e){const{sellDecimals:t,buyDecimals:r,orderParams:n}=e,i=n.kind===gt.SELL,o=xt(n.feeAmount,t),s=xt(n.sellAmount,t),a=xt(n.buyAmount,r),u=a.num/s.num,l=xt(s.big+o.big,t);return{isSell:i,quotePrice:u,networkCostAmount:o,sellAmountBeforeNetworkCosts:s,buyAmountAfterNetworkCosts:a,sellAmountAfterNetworkCosts:l,buyAmountBeforeNetworkCosts:xt(u*l.num,r)}}function Nt(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,{isSell:a,networkCostAmount:u,sellAmountBeforeNetworkCosts:l,buyAmountAfterNetworkCosts:c,sellAmountAfterNetworkCosts:d,buyAmountBeforeNetworkCosts:h,quotePrice:p}=Ct({sellDecimals:n,buyDecimals:i,orderParams:r}),{afterPartnerFees:f,partnerFeeAmount:m}=function(e){const{sellAmountAfterNetworkCosts:t,buyAmountAfterNetworkCosts:r,isSell:n,partnerFeeBps:i}=e,o=i>0?(n?r.big:t.big)*BigInt(i)/kt:BigInt(0);return{partnerFeeAmount:o,afterPartnerFees:n?{sellAmount:t.big,buyAmount:r.big-o}:{sellAmount:t.big+o,buyAmount:r.big}}}({sellAmountAfterNetworkCosts:d,buyAmountAfterNetworkCosts:c,buyAmountBeforeNetworkCosts:h,sellAmountBeforeNetworkCosts:l,isSell:a,partnerFeeBps:s}),{afterSlippage:y}=function(e){const{afterPartnerFees:t,isSell:r,slippagePercentBps:n}=e,i=e=>e*BigInt(n)/kt;return{afterSlippage:r?{sellAmount:t.sellAmount,buyAmount:t.buyAmount-i(t.buyAmount)}:{sellAmount:t.sellAmount+i(t.sellAmount),buyAmount:t.buyAmount}}}({afterPartnerFees:f,isSell:a,slippagePercentBps:o});return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:xt(p*u.num,i).big},partnerFee:{amount:m,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:h.big},afterNetworkCosts:{sellAmount:d.big,buyAmount:c.big},afterPartnerFees:f,afterSlippage:y}}function xt(e,t){if("number"==typeof e){const r=e*10**t,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:e}}const r=BigInt(e);return{big:r,num:Number(r)/10**t}}const _t={[pt.EIP712]:It.EIP712,[pt.ETHSIGN]:It.ETHSIGN},Rt=BigInt(15e4),Mt=()=>import("./utils-f739380a.js");class Ot{static signOrder(e,t,r){try{return Promise.resolve(Mt()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(Mt()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(Mt()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(Mt()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(Mt()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(Mt()).then(function({getDomain:t}){return Promise.resolve(import("ethers/lib/utils")).then(function({_TypedDataEncoder:r}){return r.hashDomain(t(e))})})}catch(e){return Promise.reject(e)}}static getEIP712Types(){return{Order:[{name:"sellToken",type:"address"},{name:"buyToken",type:"address"},{name:"receiver",type:"address"},{name:"sellAmount",type:"uint256"},{name:"buyAmount",type:"uint256"},{name:"validTo",type:"uint32"},{name:"appData",type:"bytes32"},{name:"feeAmount",type:"uint256"},{name:"kind",type:"string"},{name:"partiallyFillable",type:"bool"},{name:"sellTokenBalance",type:"string"},{name:"buyTokenBalance",type:"string"}]}}}function Bt(e){if(e){if("volumeBps"in e)return e.volumeBps;if(Array.isArray(e))for(const t of e)if("volumeBps"in t)return t.volumeBps}}function Dt(e){return Lt(e)?Ie[e]:Ft(e)?Ce[e]:void 0}function Lt(e){return e in Ie}function Ft(e){return e in Ce}function Ut(e){return Lt(e)||Ft(e)}function Gt(e){return!!Dt(e)?.isZkSync}const jt=10n**6n,Ht=50,qt={...Me(Ht),[B.MAINNET]:200};function Vt(e,t){return t?qt[e]:Ht}function zt(e){return{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance}}const Kt=1800;function Wt({chainId:e,from:t,networkCostsAmount:r="0",isEthFlow:n},i,o){const{sellAmount:s,buyAmount:a,sellToken:u,sellTokenDecimals:l,buyToken:c,buyTokenDecimals:d,kind:h,partiallyFillable:p=!1,slippageBps:f=Vt(e,n),partnerFee:m,validFor:y=Kt}=i,g=i.receiver||t,b=i.validTo||Number(function(e){return BigInt(Math.floor(Date.now()/1e3)+e)}(y)),v={sellToken:u,buyToken:c,sellAmount:s,buyAmount:a,receiver:g,validTo:b,kind:h,feeAmount:r,appData:o,partiallyFillable:p},{afterSlippage:A}=Nt({orderParams:v,slippagePercentBps:f,partnerFeeBps:Bt(m),sellDecimals:l,buyDecimals:d});return{sellToken:u,buyToken:c,sellAmount:A.sellAmount.toString(),buyAmount:A.buyAmount.toString(),validTo:b,kind:h,partiallyFillable:p,appData:o,receiver:g,feeAmount:"0",sellTokenBalance:St.ERC20,buyTokenBalance:dt.ERC20}}const Jt=[{inputs:[{internalType:"address",name:"impl",type:"address"},{internalType:"bytes32",name:"bName",type:"bytes32"},{internalType:"bytes32",name:"bNode",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"SettingEnsRecordsFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"address",name:"shed",type:"address"}],name:"COWShedBuilt",type:"event"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"addr",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseName",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseNode",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bool",name:"isDelegateCall",type:"bool"}],internalType:"struct Call[]",name:"calls",type:"tuple[]"},{internalType:"bytes32",name:"nonce",type:"bytes32"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"address",name:"user",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"forwardResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"initializeEns",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"withEns",type:"bool"}],name:"initializeProxy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"proxyOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"reverseResolutionNodeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"}];class Qt{static createInterface(){return new r.Interface(Jt)}static connect(e,t){return new n(e,Jt,t)}}Qt.abi=Jt;const Yt=[{inputs:[{internalType:"address",name:"_settlement",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InterfaceNotSupported",type:"error"},{inputs:[],name:"InvalidHandler",type:"error"},{inputs:[],name:"ProofNotAuthed",type:"error"},{inputs:[],name:"SingleOrderNotAuthed",type:"error"},{inputs:[],name:"SwapGuardRestricted",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],indexed:!1,internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"ConditionalOrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],indexed:!1,internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"MerkleRootSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"SwapGuardSet",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"cabinet",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"create",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"dispatch",type:"bool"}],name:"createWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"offchainInput",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getTradeableOrderWithSignature",outputs:[{components:[{internalType:"contract IERC20",name:"sellToken",type:"address"},{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"bytes32",name:"kind",type:"bytes32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"bytes32",name:"sellTokenBalance",type:"bytes32"},{internalType:"bytes32",name:"buyTokenBalance",type:"bytes32"}],internalType:"struct GPv2Order.Data",name:"order",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IConditionalOrder",name:"handler",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"bytes",name:"staticInput",type:"bytes"}],internalType:"struct IConditionalOrder.ConditionalOrderParams",name:"params",type:"tuple"}],name:"hash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"safe",type:"address"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes32",name:"_domainSeparator",type:"bytes32"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"encodeData",type:"bytes"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"isValidSafeSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"singleOrderHash",type:"bytes32"}],name:"remove",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"roots",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"}],name:"setRoot",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"},{components:[{internalType:"uint256",name:"location",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct ComposableCoW.Proof",name:"proof",type:"tuple"},{internalType:"contract IValueFactory",name:"factory",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"setRootWithContext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ISwapGuard",name:"swapGuard",type:"address"}],name:"setSwapGuard",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"singleOrders",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapGuards",outputs:[{internalType:"contract ISwapGuard",name:"",type:"address"}],stateMutability:"view",type:"function"}];class Xt{static createInterface(){return new r.Interface(Yt)}static connect(e,t){return new n(e,Yt,t)}}Xt.abi=Yt;const $t=[{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"createOrder",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20",name:"buyToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"sellAmount",type:"uint256"},{internalType:"uint256",name:"buyAmount",type:"uint256"},{internalType:"bytes32",name:"appData",type:"bytes32"},{internalType:"uint256",name:"feeAmount",type:"uint256"},{internalType:"uint32",name:"validTo",type:"uint32"},{internalType:"bool",name:"partiallyFillable",type:"bool"},{internalType:"int64",name:"quoteId",type:"int64"}],internalType:"struct EthFlowOrder.Data",name:"order",type:"tuple"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint32",name:"validTo",type:"uint32"}],stateMutability:"view",type:"function"}];class Zt{static createInterface(){return new r.Interface($t)}static connect(e,t){return new n(e,$t,t)}}Zt.abi=$t;const er=[{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"verifier",type:"address"}],name:"AddedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"AddedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"method",type:"bytes32"}],name:"AddedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"oldVerifier",type:"address"},{indexed:!1,internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"ChangedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"},{indexed:!1,internalType:"bytes32",name:"oldMethod",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"ChangedSafeMethod",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes32",name:"domainSeparator",type:"bytes32"}],name:"RemovedDomainVerifier",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"RemovedInterface",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract Safe",name:"safe",type:"address"},{indexed:!1,internalType:"bytes4",name:"selector",type:"bytes4"}],name:"RemovedSafeMethod",type:"event"},{stateMutability:"nonpayable",type:"fallback"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes32",name:"",type:"bytes32"}],name:"domainVerifiers",outputs:[{internalType:"contract ISafeSignatureVerifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"magic",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeInterfaces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Safe",name:"",type:"address"},{internalType:"bytes4",name:"",type:"bytes4"}],name:"safeMethods",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"contract ISafeSignatureVerifier",name:"newVerifier",type:"address"}],name:"setDomainVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"},{internalType:"bytes32",name:"newMethod",type:"bytes32"}],name:"setSafeMethod",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"},{internalType:"bool",name:"supported",type:"bool"}],name:"setSupportedInterface",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"},{internalType:"bytes32[]",name:"handlerWithSelectors",type:"bytes32[]"}],name:"setSupportedInterfaceBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class tr{static createInterface(){return new r.Interface(er)}static connect(e,t){return new n(e,er,t)}}tr.abi=er;const rr=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"sellToken",type:"address"},{indexed:!1,internalType:"contract IERC20",name:"buyToken",type:"address"},{indexed:!1,internalType:"uint256",name:"sellAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"buyAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"orderUid",type:"bytes"}],name:"Trade",type:"event"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"},{internalType:"bool",name:"signed",type:"bool"}],name:"setPreSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"orderUid",type:"bytes"}],name:"invalidateOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"nonpayable",type:"function"}];class nr{static createInterface(){return new r.Interface(rr)}static connect(e,t){return new n(e,rr,t)}}nr.abi=rr;const ir=function(e,t,r,n){try{return Promise.resolve(Ot.generateOrderId(e,{...zt(t),validTo:Ye,sellToken:Z[e].address},{owner:"staging"===n?Qe[e]:Je[e]})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:t.sellAmount,fee:t.feeAmount});const n=ir(e,function(e){const t=BigInt(e.buyAmount);return{...e,buyAmount:(t-BigInt(1)).toString()}}(t),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(e){return Promise.reject(e)}};function or(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function sr(e){return e.sellToken.toLowerCase()===Be.toLowerCase()}function ar(e){return e+e*BigInt(20)/BigInt(100)}function ur(e,t){const{costs:{networkFee:r,partnerFee:n}}=e;function i(e){return{sellAmount:t(e.sellAmount),buyAmount:t(e.buyAmount)}}return{...e,costs:{...e.costs,networkFee:{...r,amountInSellCurrency:t(r.amountInSellCurrency),amountInBuyCurrency:t(r.amountInBuyCurrency)},partnerFee:{...n,amount:t(n.amount)}},beforeNetworkCosts:i(e.beforeNetworkCosts),afterNetworkCosts:i(e.afterNetworkCosts),afterPartnerFees:i(e.afterPartnerFees),afterSlippage:i(e.afterSlippage)}}function lr({quoteParameters:e,sellToken:t}){return{...e,sellToken:t}}function cr(e,t){return{...t,sellToken:Z[e].address}}const dr=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){var a;const u=null!==(a=r.slippageBps)&&void 0!==a?a:Vt(n,!0),l={...cr(n,r),slippageBps:u},{quoteId:c}=l,d=function(e,t,r){return Zt.connect("staging"===r?Qe[t]:Je[t],e)}(e,n,l.env),h=Wt({chainId:n,isEthFlow:!0,from:i,networkCostsAmount:o},l,t);return Promise.resolve(ir(n,h,s,l.env)).then(function(e){const r={buyToken:h.buyToken,receiver:h.receiver,sellAmount:h.sellAmount,buyAmount:h.buyAmount,feeAmount:h.feeAmount,partiallyFillable:h.partiallyFillable,quoteId:c,appData:t,validTo:h.validTo.toString()};return Promise.resolve(d.estimateGas.createOrder(r,{value:h.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),Rt))).then(function(t){const n=d.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,orderToSign:h,transaction:{data:n,gasLimit:"0x"+ar(t).toString(16),to:d.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},hr=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(dr(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n,orderToSign:i}){return J("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return J("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return J(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,orderToSign:i,signature:"",signingScheme:It.EIP1271}})})})}catch(e){return Promise.reject(e)}},pr=function(e,t,r,n,i={}){try{function o(i){const o=Wt({chainId:p,from:i,networkCostsAmount:s,isEthFlow:u},n,r.appDataKeccak256);return J("Signing order..."),Promise.resolve(function(){try{return a===It.PRESIGN?Promise.resolve({signature:i,signingScheme:It.PRESIGN}):Promise.resolve(Ot.signOrder(o,p,t)).then(function(e){return{signature:e.signature,signingScheme:_t[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:l,appData:h,appDataHash:d};return J("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return J(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r,orderToSign:o}})})}const{networkCostsAmount:s="0",signingScheme:a=It.EIP712}=i,u=sr(n);if(u){const f=n.quoteId;if("number"==typeof f)return Promise.resolve(hr(e,t,r,{...n,quoteId:f},i));throw new Error("quoteId is required for EthFlow orders")}const{quoteId:l=null,owner:c}=n,{appDataKeccak256:d,fullAppData:h}=r,p=e.context.chainId;return Promise.resolve(c?o(c):Promise.resolve(t.getAddress()).then(o))}catch(m){return Promise.reject(m)}};var fr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function mr(e){var t={exports:{}};return e(t,t.exports),t.exports}var yr={__proto__:null,default:{}},gr=mr(function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function i(e,t,r){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var o;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:yr.Buffer}catch(e){}function s(e,t){var n=e.charCodeAt(t);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 "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),u=t;u<a;u++){var l=e.charCodeAt(u)-48;o*=i,s=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&s<i,"Invalid character"),o+=s}return o}function l(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},i.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},i.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=e[i]|e[i-1]<<8|e[i-2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)this.words[o]|=(s=e[i]|e[i+1]<<8|e[i+2]<<16)<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},i.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,s=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=a(e,t,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;this._strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,c=r;c<a;c+=n)l=u(e,c,c+n,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var d=1;for(l=u(e,c,e.length,t),c=0;c<s;c++)d*=t;this.imuln(d),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){l(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=c}catch(e){i.prototype.inspect=c}else i.prototype.inspect=c;function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}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"],h=[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],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];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=s/67108864|0;r.words[0]=67108863&s;for(var u=1;u<n;u++){for(var l=a>>>26,c=67108863&a,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++)l+=(s=(i=0|e.words[u-h|0])*(o=0|t.words[h])+c)/67108864|0,c=67108863&s;r.words[u]=0|c,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);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}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],c=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(c).toString(e);n=(f=f.idivn(c)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r++]=255&s,r<e.length&&(e[r++]=s>>8&255),r<e.length&&(e[r++]=s>>16&255),6===o?(r<e.length&&(e[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;e[r--]=255&s,r>=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===o?(r>=0&&(e[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},i.prototype._countBits=Math.clz32?function(e){return 32-Math.clz32(e)}:function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+(0|n.words[o])+i),i=t>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(t=(0|r.words[o])+i),i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,s=0;s<n.length;s++)o=(t=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<r.length;s++)o=(t=(0|r.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<r.length&&r!==this)for(;s<r.length;s++)this.words[s]=r.words[s];return this.length=Math.max(this.length,s),r!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,r){var n,i,o,s=e.words,a=t.words,u=r.words,l=0,c=0|s[0],d=8191&c,h=c>>>13,p=0|s[1],f=8191&p,m=p>>>13,y=0|s[2],g=8191&y,b=y>>>13,v=0|s[3],A=8191&v,w=v>>>13,T=0|s[4],E=8191&T,S=T>>>13,I=0|s[5],k=8191&I,P=I>>>13,C=0|s[6],N=8191&C,x=C>>>13,_=0|s[7],R=8191&_,M=_>>>13,O=0|s[8],B=8191&O,D=O>>>13,L=0|s[9],F=8191&L,U=L>>>13,G=0|a[0],j=8191&G,H=G>>>13,q=0|a[1],V=8191&q,z=q>>>13,K=0|a[2],W=8191&K,J=K>>>13,Q=0|a[3],Y=8191&Q,X=Q>>>13,$=0|a[4],Z=8191&$,ee=$>>>13,te=0|a[5],re=8191&te,ne=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ue=8191&ae,le=ae>>>13,ce=0|a[8],de=8191&ce,he=ce>>>13,pe=0|a[9],fe=8191&pe,me=pe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(l+(n=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,H))+Math.imul(h,j)|0))<<13)|0;l=((o=Math.imul(h,H))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,j),i=(i=Math.imul(f,H))+Math.imul(m,j)|0,o=Math.imul(m,H);var ge=(l+(n=n+Math.imul(d,V)|0)|0)+((8191&(i=(i=i+Math.imul(d,z)|0)+Math.imul(h,V)|0))<<13)|0;l=((o=o+Math.imul(h,z)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),i=(i=Math.imul(g,H))+Math.imul(b,j)|0,o=Math.imul(b,H),n=n+Math.imul(f,V)|0,i=(i=i+Math.imul(f,z)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,z)|0;var be=(l+(n=n+Math.imul(d,W)|0)|0)+((8191&(i=(i=i+Math.imul(d,J)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,j),i=(i=Math.imul(A,H))+Math.imul(w,j)|0,o=Math.imul(w,H),n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,z)|0)+Math.imul(b,V)|0,o=o+Math.imul(b,z)|0,n=n+Math.imul(f,W)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,J)|0;var ve=(l+(n=n+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(h,Y)|0))<<13)|0;l=((o=o+Math.imul(h,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(E,j),i=(i=Math.imul(E,H))+Math.imul(S,j)|0,o=Math.imul(S,H),n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,z)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,z)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,J)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,J)|0,n=n+Math.imul(f,Y)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0;var Ae=(l+(n=n+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,Z)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(k,j),i=(i=Math.imul(k,H))+Math.imul(P,j)|0,o=Math.imul(P,H),n=n+Math.imul(E,V)|0,i=(i=i+Math.imul(E,z)|0)+Math.imul(S,V)|0,o=o+Math.imul(S,z)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,J)|0,n=n+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,X)|0,n=n+Math.imul(f,Z)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Z)|0,o=o+Math.imul(m,ee)|0;var we=(l+(n=n+Math.imul(d,re)|0)|0)+((8191&(i=(i=i+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;l=((o=o+Math.imul(h,ne)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(N,j),i=(i=Math.imul(N,H))+Math.imul(x,j)|0,o=Math.imul(x,H),n=n+Math.imul(k,V)|0,i=(i=i+Math.imul(k,z)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(A,Y)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,Y)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,o=o+Math.imul(b,ee)|0,n=n+Math.imul(f,re)|0,i=(i=i+Math.imul(f,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0;var Te=(l+(n=n+Math.imul(d,oe)|0)|0)+((8191&(i=(i=i+Math.imul(d,se)|0)+Math.imul(h,oe)|0))<<13)|0;l=((o=o+Math.imul(h,se)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(R,j),i=(i=Math.imul(R,H))+Math.imul(M,j)|0,o=Math.imul(M,H),n=n+Math.imul(N,V)|0,i=(i=i+Math.imul(N,z)|0)+Math.imul(x,V)|0,o=o+Math.imul(x,z)|0,n=n+Math.imul(k,W)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,J)|0,n=n+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(S,Y)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,Z)|0,o=o+Math.imul(w,ee)|0,n=n+Math.imul(g,re)|0,i=(i=i+Math.imul(g,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0,n=n+Math.imul(f,oe)|0,i=(i=i+Math.imul(f,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0;var Ee=(l+(n=n+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,le)|0)+Math.imul(h,ue)|0))<<13)|0;l=((o=o+Math.imul(h,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(B,j),i=(i=Math.imul(B,H))+Math.imul(D,j)|0,o=Math.imul(D,H),n=n+Math.imul(R,V)|0,i=(i=i+Math.imul(R,z)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,z)|0,n=n+Math.imul(N,W)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,X)|0,n=n+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(w,re)|0,o=o+Math.imul(w,ne)|0,n=n+Math.imul(g,oe)|0,i=(i=i+Math.imul(g,se)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,se)|0,n=n+Math.imul(f,ue)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,le)|0;var Se=(l+(n=n+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;l=((o=o+Math.imul(h,he)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(F,j),i=(i=Math.imul(F,H))+Math.imul(U,j)|0,o=Math.imul(U,H),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,z)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,z)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(M,W)|0,o=o+Math.imul(M,J)|0,n=n+Math.imul(N,Y)|0,i=(i=i+Math.imul(N,X)|0)+Math.imul(x,Y)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(P,Z)|0,o=o+Math.imul(P,ee)|0,n=n+Math.imul(E,re)|0,i=(i=i+Math.imul(E,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(w,oe)|0,o=o+Math.imul(w,se)|0,n=n+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,le)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,le)|0,n=n+Math.imul(f,de)|0,i=(i=i+Math.imul(f,he)|0)+Math.imul(m,de)|0,o=o+Math.imul(m,he)|0;var Ie=(l+(n=n+Math.imul(d,fe)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(h,fe)|0))<<13)|0;l=((o=o+Math.imul(h,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(M,Y)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(N,Z)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(P,re)|0,o=o+Math.imul(P,ne)|0,n=n+Math.imul(E,oe)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,se)|0,n=n+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,le)|0)+Math.imul(w,ue)|0,o=o+Math.imul(w,le)|0,n=n+Math.imul(g,de)|0,i=(i=i+Math.imul(g,he)|0)+Math.imul(b,de)|0,o=o+Math.imul(b,he)|0;var ke=(l+(n=n+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((o=o+Math.imul(m,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(F,W),i=(i=Math.imul(F,J))+Math.imul(U,W)|0,o=Math.imul(U,J),n=n+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,Y)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(M,Z)|0,o=o+Math.imul(M,ee)|0,n=n+Math.imul(N,re)|0,i=(i=i+Math.imul(N,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,n=n+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,le)|0,n=n+Math.imul(A,de)|0,i=(i=i+Math.imul(A,he)|0)+Math.imul(w,de)|0,o=o+Math.imul(w,he)|0;var Pe=(l+(n=n+Math.imul(g,fe)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((o=o+Math.imul(b,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(F,Y),i=(i=Math.imul(F,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(M,re)|0,o=o+Math.imul(M,ne)|0,n=n+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,se)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,se)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,le)|0,n=n+Math.imul(E,de)|0,i=(i=i+Math.imul(E,he)|0)+Math.imul(S,de)|0,o=o+Math.imul(S,he)|0;var Ce=(l+(n=n+Math.imul(A,fe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((o=o+Math.imul(w,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(F,Z),i=(i=Math.imul(F,ee))+Math.imul(U,Z)|0,o=Math.imul(U,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,n=n+Math.imul(N,ue)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(x,ue)|0,o=o+Math.imul(x,le)|0,n=n+Math.imul(k,de)|0,i=(i=i+Math.imul(k,he)|0)+Math.imul(P,de)|0,o=o+Math.imul(P,he)|0;var Ne=(l+(n=n+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(S,fe)|0))<<13)|0;l=((o=o+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(F,re),i=(i=Math.imul(F,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,se)|0,n=n+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(M,ue)|0,o=o+Math.imul(M,le)|0,n=n+Math.imul(N,de)|0,i=(i=i+Math.imul(N,he)|0)+Math.imul(x,de)|0,o=o+Math.imul(x,he)|0;var xe=(l+(n=n+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((o=o+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(F,oe),i=(i=Math.imul(F,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,le)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,le)|0,n=n+Math.imul(R,de)|0,i=(i=i+Math.imul(R,he)|0)+Math.imul(M,de)|0,o=o+Math.imul(M,he)|0;var _e=(l+(n=n+Math.imul(N,fe)|0)|0)+((8191&(i=(i=i+Math.imul(N,me)|0)+Math.imul(x,fe)|0))<<13)|0;l=((o=o+Math.imul(x,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(F,ue),i=(i=Math.imul(F,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(B,de)|0,i=(i=i+Math.imul(B,he)|0)+Math.imul(D,de)|0,o=o+Math.imul(D,he)|0;var Re=(l+(n=n+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(M,fe)|0))<<13)|0;l=((o=o+Math.imul(M,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(F,de),i=(i=Math.imul(F,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Me=(l+(n=n+Math.imul(B,fe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,fe)|0))<<13)|0;l=((o=o+Math.imul(D,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Oe=(l+(n=Math.imul(F,fe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(U,fe)|0))<<13)|0;return l=((o=Math.imul(U,me))+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Ae,u[5]=we,u[6]=Te,u[7]=Ee,u[8]=Se,u[9]=Ie,u[10]=ke,u[11]=Pe,u[12]=Ce,u[13]=Ne,u[14]=xe,u[15]=_e,u[16]=Re,u[17]=Me,u[18]=Oe,0!==l&&(u[19]=l,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var s=i;i=0;for(var a=67108863&n,u=Math.min(o,t.length-1),l=Math.max(0,o-e.length+1);l<=u;l++){var c=(0|e.words[o-l])*(0|t.words[l]),d=67108863&c;a=67108863&(d=d+a|0),i+=(s=(s=s+(c/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}r.words[o]=a,n=s,s=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=f),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?f(this,e,t):r<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++)t[r]=e.words[r/26|0]>>>r%26&1;return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var o=r.sqr();n<t.length;n++,o=o.sqr())0!==t[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o;this.words[t]=(0|this.words[t])-a<<n|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var l=0;l<s;l++)u.words[l]=this.words[l];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,l=0;l<this.length;l++)this.words[l]=this.words[l+s];else this.words[0]=0,this.length=1;var c=0;for(l=this.length-1;l>=0&&(0!==c||l>=i);l--){var d=0|this.words[l];this.words[l]=c<<26-o|d>>>o,c=d&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return!(this.length<=n||!(this.words[n]&1<<t))},i.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==t&&n++,this.length=Math.min(n,this.length),0!==t&&(this.words[this.length-1]&=67108863^67108863>>>t<<t),this._strip())},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,n){var i,o;this._expand(e.length+n);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+s;var a=(0|e.words[i])*t;s=((o-=67108863&a)>>26)-(a/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)s=(o=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&o;if(0===s)return this._strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var r,n=this.clone(),o=e,s=0|o.words[o.length-1];0!=(r=26-this._countBits(s))&&(o=o.ushln(r),n.iushln(r),s=0|o.words[o.length-1]);var a,u=n.length-o.length;if("mod"!==t){(a=new i(null)).length=u+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var c=n.clone()._ishlnsubmul(o,1,u);0===c.negative&&(n=c,a&&(a.words[u]=1));for(var d=u-1;d>=0;d--){var h=67108864*(0|n.words[o.length+d])+(0|n.words[o.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(o,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(o,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(o=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:o,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var o,s,a},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var c=n.clone(),d=t.clone();!t.isZero();){for(var h=0,p=1;0==(t.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(c),s.isub(d)),o.iushrn(1),s.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(d)),a.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a),s.isub(u)):(n.isub(t),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,c=1;0==(t.words[0]&c)&&l<26;++l,c<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var d=0,h=1;0==(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(o=0===t.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(e),o},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,this.words[s]=a&=67108863}return 0!==o&&(this.words[s]=o,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new S(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(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)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(A,v),A.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&r)<<4|o>>>22,o=s}e.words[i-10]=o>>>=22,e.length-=0===o&&e.length>10?10:9},A.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];e.words[r]=67108863&(t+=977*n),t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},n(w,v),n(T,v),n(E,v),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new A;else if("p224"===e)t=new w;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var o=this.m.subn(1),s=0;!o.isZero()&&0===o.andln(1);)s++,o.iushrn(1);r(!o.isZero());var a=new i(1).toRed(this),u=a.redNeg(),l=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new i(2*c*c).toRed(this);0!==this.pow(c,l).cmp(u);)c.redIAdd(u);for(var d=this.pow(c,o),h=this.pow(e,o.addn(1).iushrn(1)),p=this.pow(e,o),f=s;0!==p.cmp(a);){for(var m=p,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<f);var g=this.pow(d,new i(1).iushln(f-y-1));h=h.redMul(g),d=g.redSqr(),p=p.redMul(d),f=y}return h},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var o=r[0],s=0,a=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var l=t.words[n],c=u-1;c>=0;c--){var d=l>>c&1;o!==r[0]&&(o=this.sqr(o)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===c)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},n(I,S),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),s=o;return o.cmp(this.m)>=0?s=o.isub(this.m):o.cmpn(0)<0&&(s=o.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,fr)});let br=!1,vr=!1;const Ar={debug:1,default:2,info:2,warning:3,error:4,off:5};let wr=Ar.default,Tr=null;const Er=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach(t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}}),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Sr,Ir;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Sr||(Sr={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Ir||(Ir={}));const kr="0123456789abcdef";class Pr{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==Ar[r]&&this.throwArgumentError("invalid log level name","logLevel",e),wr>Ar[r]||console.log.apply(console,t)}debug(...e){this._log(Pr.levels.DEBUG,e)}info(...e){this._log(Pr.levels.INFO,e)}warn(...e){this._log(Pr.levels.WARNING,e)}makeError(e,t,r){if(vr)return this.makeError("censored error",t,{});t||(t=Pr.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e<t.length;e++)r+=kr[t[e]>>4],r+=kr[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(t){n.push(e+"="+JSON.stringify(r[e].toString()))}}),n.push(`code=${t}`),n.push(`version=${this.version}`);const i=e;let o="";switch(t){case Ir.NUMERIC_FAULT:{o="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":o+="-"+t;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Ir.CALL_EXCEPTION:case Ir.INSUFFICIENT_FUNDS:case Ir.MISSING_NEW:case Ir.NONCE_EXPIRED:case Ir.REPLACEMENT_UNDERPRICED:case Ir.TRANSACTION_REPLACED:case Ir.UNPREDICTABLE_GAS_LIMIT:o=t}o&&(e+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=i,s.code=t,Object.keys(r).forEach(function(e){s[e]=r[e]}),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,Pr.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){Er&&this.throwError("platform missing String.prototype.normalize",Pr.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Er})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Pr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Pr.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,Pr.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,Pr.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Pr.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Pr.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Pr.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return Tr||(Tr=new Pr("logger/5.8.0")),Tr}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Pr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),br){if(!e)return;this.globalLogger().throwError("error censorship permanent",Pr.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}vr=!!e,br=!!t}static setLogLevel(e){const t=Ar[e.toLowerCase()];null!=t?wr=t:Pr.globalLogger().warn("invalid log level - "+e)}static from(e){return new Pr(e)}}Pr.errors=Ir,Pr.levels=Sr;const Cr=new Pr("bytes/5.8.0");function Nr(e){return!!e.toHexString}function xr(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return xr(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function _r(e){return Lr(e)&&!(e.length%2)||Mr(e)}function Rr(e){return"number"==typeof e&&e==e&&e%1==0}function Mr(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Rr(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Rr(r)||r<0||r>=256)return!1}return!0}function Or(e,t){if(t||(t={}),"number"==typeof e){Cr.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),xr(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nr(e)&&(e=e.toHexString()),Lr(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Cr.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;e<r.length;e+=2)n.push(parseInt(r.substring(e,e+2),16));return xr(new Uint8Array(n))}return Mr(e)?xr(new Uint8Array(e)):Cr.throwArgumentError("invalid arrayify value","value",e)}function Br(e){const t=e.map(e=>Or(e)),r=t.reduce((e,t)=>e+t.length,0),n=new Uint8Array(r);return t.reduce((e,t)=>(n.set(t,e),e+t.length),0),xr(n)}function Dr(e){let t=Or(e);if(0===t.length)return t;let r=0;for(;r<t.length&&0===t[r];)r++;return r&&(t=t.slice(r)),t}function Lr(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const Fr="0123456789abcdef";function Ur(e,t){if(t||(t={}),"number"==typeof e){Cr.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=Fr[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Nr(e))return e.toHexString();if(Lr(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Cr.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Mr(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=Fr[(240&n)>>4]+Fr[15&n]}return t}return Cr.throwArgumentError("invalid hexlify value","value",e)}function Gr(e){if("string"!=typeof e)e=Ur(e);else if(!Lr(e)||e.length%2)return null;return(e.length-2)/2}function jr(e,t,r){return"string"!=typeof e?e=Ur(e):(!Lr(e)||e.length%2)&&Cr.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function Hr(e){let t="0x";return e.forEach(e=>{t+=Ur(e).substring(2)}),t}function qr(e){const t=function(e){"string"!=typeof e&&(e=Ur(e)),Lr(e)||Cr.throwArgumentError("invalid hex string","value",e),e=e.substring(2);let t=0;for(;t<e.length&&"0"===e[t];)t++;return"0x"+e.substring(t)}(Ur(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function Vr(e,t){for("string"!=typeof e?e=Ur(e):Lr(e)||Cr.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Cr.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function zr(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(_r(e)){let r=Or(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=Ur(r.slice(0,32)),t.s=Ur(r.slice(32,64))):65===r.length?(t.r=Ur(r.slice(0,32)),t.s=Ur(r.slice(32,64)),t.v=r[64]):Cr.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Cr.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=Ur(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=function(e,t){(e=Or(e)).length>t&&Cr.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),xr(r)}(Or(t._vs),32);t._vs=Ur(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Cr.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=Ur(r);null==t.s?t.s=i:t.s!==i&&Cr.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Cr.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=0===t.v||1===t.v?t.v:1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==(0===t.v||1===t.v?t.v:1-t.v%2)&&Cr.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&Lr(t.r)?t.r=Vr(t.r,32):Cr.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&Lr(t.s)?t.s=Vr(t.s,32):Cr.throwArgumentError("signature missing or invalid s","signature",e);const r=Or(t.s);r[0]>=128&&Cr.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=Ur(r);t._vs&&(Lr(t._vs)||Cr.throwArgumentError("signature invalid _vs","signature",e),t._vs=Vr(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Cr.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function Kr(e){return Ur(Br([(e=zr(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const Wr="bignumber/5.8.0";var Jr=gr.BN;const Qr=new Pr(Wr),Yr={},Xr=9007199254740991;let $r=!1;class Zr{constructor(e,t){e!==Yr&&Qr.throwError("cannot call constructor directly; use BigNumber.from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return tn(rn(this).fromTwos(e))}toTwos(e){return tn(rn(this).toTwos(e))}abs(){return"-"===this._hex[0]?Zr.from(this._hex.substring(1)):this}add(e){return tn(rn(this).add(rn(e)))}sub(e){return tn(rn(this).sub(rn(e)))}div(e){return Zr.from(e).isZero()&&nn("division-by-zero","div"),tn(rn(this).div(rn(e)))}mul(e){return tn(rn(this).mul(rn(e)))}mod(e){const t=rn(e);return t.isNeg()&&nn("division-by-zero","mod"),tn(rn(this).umod(t))}pow(e){const t=rn(e);return t.isNeg()&&nn("negative-power","pow"),tn(rn(this).pow(t))}and(e){const t=rn(e);return(this.isNegative()||t.isNeg())&&nn("unbound-bitwise-result","and"),tn(rn(this).and(t))}or(e){const t=rn(e);return(this.isNegative()||t.isNeg())&&nn("unbound-bitwise-result","or"),tn(rn(this).or(t))}xor(e){const t=rn(e);return(this.isNegative()||t.isNeg())&&nn("unbound-bitwise-result","xor"),tn(rn(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&nn("negative-width","mask"),tn(rn(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&nn("negative-width","shl"),tn(rn(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&nn("negative-width","shr"),tn(rn(this).shrn(e))}eq(e){return rn(this).eq(rn(e))}lt(e){return rn(this).lt(rn(e))}lte(e){return rn(this).lte(rn(e))}gt(e){return rn(this).gt(rn(e))}gte(e){return rn(this).gte(rn(e))}isNegative(){return"-"===this._hex[0]}isZero(){return rn(this).isZero()}toNumber(){try{return rn(this).toNumber()}catch(e){nn("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return Qr.throwError("this platform does not support BigInt",Pr.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?$r||($r=!0,Qr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):Qr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",Pr.errors.UNEXPECTED_ARGUMENT,{})),rn(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof Zr)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new Zr(Yr,en(e)):e.match(/^-?[0-9]+$/)?new Zr(Yr,en(new Jr(e))):Qr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&nn("underflow","BigNumber.from",e),(e>=Xr||e<=-Xr)&&nn("overflow","BigNumber.from",e),Zr.from(String(e));const t=e;if("bigint"==typeof t)return Zr.from(t.toString());if(Mr(t))return Zr.from(Ur(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return Zr.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(Lr(e)||"-"===e[0]&&Lr(e.substring(1))))return Zr.from(e)}return Qr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function en(e){if("string"!=typeof e)return en(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&Qr.throwArgumentError("invalid hex","value",e),"0x00"===(e=en(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function tn(e){return Zr.from(en(e))}function rn(e){const t=Zr.from(e).toHexString();return new Jr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function nn(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),Qr.throwError(e,Pr.errors.NUMERIC_FAULT,n)}const on=new Pr(Wr),sn={},an=Zr.from(0),un=Zr.from(-1);function ln(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),on.throwError(e,Pr.errors.NUMERIC_FAULT,i)}let cn="0";for(;cn.length<256;)cn+=cn;function dn(e){if("number"!=typeof e)try{e=Zr.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+cn.substring(0,e):on.throwArgumentError("invalid decimal size","decimals",e)}function hn(e,t){null==t&&(t=0);const r=dn(t),n=(e=Zr.from(e)).lt(an);n&&(e=e.mul(un));let i=e.mod(r).toString();for(;i.length<r.length-1;)i="0"+i;i=i.match(/^([0-9]*[1-9]|0)(0*)/)[1];const o=e.div(r).toString();return e=1===r.length?o:o+"."+i,n&&(e="-"+e),e}function pn(e,t){null==t&&(t=0);const r=dn(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||on.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&on.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&on.throwArgumentError("too many decimal points","value",e);let o=i[0],s=i[1];for(o||(o="0"),s||(s="0");"0"===s[s.length-1];)s=s.substring(0,s.length-1);for(s.length>r.length-1&&ln("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=Zr.from(o),u=Zr.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(un)),l}class fn{constructor(e,t,r,n){e!==sn&&on.throwError("cannot use FixedFormat constructor; use FixedFormat.from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=t,this.width=r,this.decimals=n,this.name=(t?"":"u")+"fixed"+String(r)+"x"+String(n),this._multiplier=dn(n),Object.freeze(this)}static from(e){if(e instanceof fn)return e;"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{const i=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);i||on.throwArgumentError("invalid fixed format","format",e),t="u"!==i[1],r=parseInt(i[2]),n=parseInt(i[3])}else if(e){const i=(t,r,n)=>null==e[t]?n:(typeof e[t]!==r&&on.throwArgumentError("invalid fixed format ("+t+" not "+r+")","format."+t,e[t]),e[t]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}return r%8&&on.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&on.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new fn(sn,t,r,n)}}class mn{constructor(e,t,r,n){e!==sn&&on.throwError("cannot use FixedNumber constructor; use FixedNumber.from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=n,this._hex=t,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(e){this.format.name!==e.format.name&&on.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=pn(this._value,this.format.decimals),r=pn(e._value,e.format.decimals);return mn.fromValue(t.mul(this.format._multiplier).div(r),this.format.decimals,this.format)}floor(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=mn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(yn.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=mn.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(yn.toFormat(t.format))),t}round(e){null==e&&(e=0);const t=this.toString().split(".");if(1===t.length&&t.push("0"),(e<0||e>80||e%1)&&on.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=mn.from("1"+cn.substring(0,e),this.format),n=gn.toFormat(this.format);return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(e){return null==e?this._hex:(e%8&&on.throwArgumentError("invalid byte width","width",e),Vr(Zr.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return mn.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&(Zr.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||Lr(e)||"bigint"==typeof e||Mr(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),mn.fromString(hn(e,t),fn.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=fn.from(t),n=pn(e,r.decimals);!r.signed&&n.lt(an)&&ln("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=Vr(i,r.width/8));const o=hn(n,r.decimals);return new mn(sn,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=fn.from(t);if(Or(e).length>r.width/8)throw new Error("overflow");let n=Zr.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=hn(n,r.decimals);return new mn(sn,i,o,r)}static from(e,t){if("string"==typeof e)return mn.fromString(e,t);if(Mr(e))return mn.fromBytes(e,t);try{return mn.fromValue(e,0,t)}catch(e){if(e.code!==Pr.errors.INVALID_ARGUMENT)throw e}return on.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const yn=mn.from(1),gn=mn.from("0.5");var bn=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const vn=new Pr("properties/5.8.0");function An(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function wn(e,t){for(let r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Tn(e){return bn(this,void 0,void 0,function*(){const t=Object.keys(e).map(t=>Promise.resolve(e[t]).then(e=>({key:t,value:e})));return(yield Promise.all(t)).reduce((e,t)=>(e[t.key]=t.value,e),{})})}function En(e,t){e&&"object"==typeof e||vn.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||vn.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function Sn(e){const t={};for(const r in e)t[r]=e[r];return t}const In={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function kn(e){if(null==e||In[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let r=0;r<t.length;r++){let n=null;try{n=e[t[r]]}catch(e){continue}if(!kn(n))return!1}return!0}return vn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Pn(e){if(kn(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Cn(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&An(t,r,Cn(n))}return t}return vn.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cn(e){return Pn(e)}class Nn{constructor(e){for(const t in e)this[t]=Cn(e[t])}}const xn=new Pr("abstract-provider/5.8.0");class _n extends Nn{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Rn{constructor(){xn.checkAbstract(new.target,Rn),An(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield Tn({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(e=>null)});let r=null,n=null,i=null;return e&&e.baseFeePerGas&&(r=e.baseFeePerGas,i=Zr.from("1500000000"),n=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:t}},new((t=void 0)||(t=Promise))(function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(o,s)}a((r=r.apply(e,[])).next())});var e,t,r}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}}const Mn=new Pr("networks/5.8.0");function On(e){const t=function(t,r){null==r&&(r={});const n=[];if(t.InfuraProvider&&"-"!==r.infura)try{n.push(new t.InfuraProvider(e,r.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new t.EtherscanProvider(e,r.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new t.AlchemyProvider(e,r.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new t.PocketProvider(e,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}}if(t.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new t.AnkrProvider(e,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(e){}if(t.QuickNodeProvider&&"-"!==r.quicknode)try{n.push(new t.QuickNodeProvider(e,r.quicknode))}catch(e){}if(0===n.length)return null;if(t.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(n,i)}return n[0]};return t.renetwork=function(e){return On(e)},t}function Bn(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return Bn(e,t)},r}const Dn={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:On("homestead")},Ln={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:On("ropsten")},Fn={chainId:63,name:"classicMordor",_defaultProvider:Bn("https://www.ethercluster.com/mordor","classicMordor")},Un={unspecified:{chainId:0,name:"unspecified"},homestead:Dn,mainnet:Dn,morden:{chainId:2,name:"morden"},ropsten:Ln,testnet:Ln,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:On("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:On("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:On("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:On("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:On("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Bn("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Fn,classicTestnet:Fn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Bn("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:On("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:On("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:On("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},"optimism-sepolia":{chainId:11155420,name:"optimism-sepolia"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},"arbitrum-sepolia":{chainId:421614,name:"arbitrum-sepolia"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Gn(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Or(t)}function jn(e){e=Or(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class Hn{constructor(e){An(this,"alphabet",e),An(this,"base",e.length),An(this,"_alphabetMap",{}),An(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Or(e);if(0===t.length)return"";let r=[0];for(let e=0;e<t.length;++e){let n=t[e];for(let e=0;e<r.length;++e)n+=r[e]<<8,r[e]=n%this.base,n=n/this.base|0;for(;n>0;)r.push(n%this.base),n=n/this.base|0}let n="";for(let e=0;0===t[e]&&e<t.length-1;++e)n+=this._leader;for(let e=r.length-1;e>=0;--e)n+=this.alphabet[r[e]];return n}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let r=0;r<e.length;r++){let n=this._alphabetMap[e[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let r=0;e[r]===this._leader&&r<e.length-1;++r)t.push(0);return Or(new Uint8Array(t.reverse()))}}new Hn("abcdefghijklmnopqrstuvwxyz234567");const qn=new Hn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Vn=/*#__PURE__*/Zr.from(-1),zn=/*#__PURE__*/Zr.from(0),Kn=/*#__PURE__*/Zr.from(1),Wn=/*#__PURE__*/Zr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Jn=mr(function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var i=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?n=fr:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[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],d=[224,256,384,512],h=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],f={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new x(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new x(e,t,i).update(n)[r]()}},g=function(e,t,r){return function(t,n,i,o){return T["cshake"+e].update(t,n,i,o)[r]()}},b=function(e,t,r){return function(t,n,i,o){return T["kmac"+e].update(t,n,i,o)[r]()}},v=function(e,t,r,n){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(r,n,o)}return e},A=function(e,t){var r=m(e,t,"hex");return r.create=function(){return new x(e,t,e)},r.update=function(e){return r.create().update(e)},v(r,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:h,createMethod:function(e,t){var r=y(e,t,"hex");return r.create=function(r){return new x(e,t,r)},r.update=function(e,t){return r.create(t).update(e)},v(r,y,e,t)}},{name:"cshake",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=g(e,0,"hex");return n.create=function(n,i,o){return i||o?new x(e,t,n).bytepad([i,o],r):T["shake"+e].create(n)},n.update=function(e,t,r,i){return n.create(t,r,i).update(e)},v(n,g,e,t)}},{name:"kmac",padding:u,bits:h,createMethod:function(e,t){var r=f[e],n=b(e,0,"hex");return n.create=function(n,i,o){return new _(e,t,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(e,t,r,i){return n.create(e,r,i).update(t)},v(n,b,e,t)}}],T={},E=[],S=0;S<w.length;++S)for(var I=w[S],k=I.bits,P=0;P<k.length;++P){var C=I.name+"_"+k[P];if(E.push(C),T[C]=I.createMethod(k[P],I.padding),"sha3"!==I.name){var N=I.name+k[P];E.push(N),T[N]=T[C]}}function x(e,t,r){this.blocks=[],this.s=[],this.padding=t,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function _(e,t,r){x.call(this,e,t,r)}x.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,h=0,p=this.s;h<c;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<d+1;++i)a[i]=0;if(r)for(i=this.start;h<c&&i<u;++h)a[i>>2]|=e[h]<<l[3&i++];else for(i=this.start;h<c&&i<u;++h)(o=e.charCodeAt(h))<128?a[i>>2]|=o<<l[3&i++]:o<2048?(a[i>>2]|=(192|o>>6)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(a[i>>2]|=(224|o>>12)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++h)),a[i>>2]|=(240|o>>18)<<l[3&i++],a[i>>2]|=(128|o>>12&63)<<l[3&i++],a[i>>2]|=(128|o>>6&63)<<l[3&i++],a[i>>2]|=(128|63&o)<<l[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=a[d],i=0;i<d;++i)p[i]^=a[i];R(p),this.reset=!0}else this.start=i}return this},x.prototype.encode=function(e,t){var r=255&e,n=1,i=[r];for(r=255&(e>>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},x.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var i=0;if(r)i=e.length;else for(var o=0;o<e.length;++o){var a=e.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(e),i},x.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n<e.length;++n)r+=this.encodeString(e[n]);var i=[];return i.length=t-r%t,this.update(i),this},x.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,r=this.blockCount,n=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t<r+1;++t)e[t]=0;for(e[r-1]|=2147483648,t=0;t<r;++t)n[t]^=e[t];R(n)}},x.prototype.toString=x.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<t&&s<n;++o,++s)u+=a[(e=r[o])>>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(R(r),o=0)}return i&&(u+=a[(e=r[o])>>4&15]+a[15&e],i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},x.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(e);s<n;){for(o=0;o<t&&s<n;++o,++s)u[s]=r[o];s%t==0&&R(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},x.prototype.buffer=x.prototype.arrayBuffer,x.prototype.digest=x.prototype.array=function(){this.finalize();for(var e,t,r=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,s=0,a=0,u=[];a<i;){for(s=0;s<r&&a<i;++s,++a)u[e=a<<2]=255&(t=n[s]),u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;a%r==0&&R(n)}return o&&(u[e=a<<2]=255&(t=n[s]),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},(_.prototype=new x).finalize=function(){return this.encode(this.outputBits,!0),x.prototype.finalize.call(this)};var R=function(e){var t,r,n,i,o,s,a,u,l,d,h,p,f,m,y,g,b,v,A,w,T,E,S,I,k,P,C,N,x,_,R,M,O,B,D,L,F,U,G,j,H,q,V,z,K,W,J,Q,Y,X,$,Z,ee,te,re,ne,ie,oe,se,ae,ue,le,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],u=e[4]^e[14]^e[24]^e[34]^e[44],l=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^((a=e[3]^e[13]^e[23]^e[33]^e[43])<<1|(s=e[2]^e[12]^e[22]^e[32]^e[42])>>>31),e[0]^=t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,r=o^(l<<1|u>>>31),e[2]^=t=i^(u<<1|l>>>31),e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,r=a^(h<<1|d>>>31),e[4]^=t=s^(d<<1|h>>>31),e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,r=l^(f<<1|p>>>31),e[6]^=t=u^(p<<1|f>>>31),e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,r=h^(o<<1|i>>>31),e[8]^=t=d^(i<<1|o>>>31),e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[1],W=e[11]<<4|e[10]>>>28,J=e[10]<<4|e[11]>>>28,N=e[20]<<3|e[21]>>>29,x=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,_=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,L=e[14]<<6|e[15]>>>26,F=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,M=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,G=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,T=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,K=e[9]<<27|e[8]>>>5,P=e[18]<<20|e[19]>>>12,C=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=(m=e[0])^~(g=e[13]<<12|e[12]>>>20)&(v=e[25]<<11|e[24]>>>21),e[1]=y^~b&A,e[10]=I^~P&N,e[11]=k^~C&x,e[20]=B^~L&U,e[21]=D^~F&G,e[30]=z^~W&Q,e[31]=K^~J&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=P^~N&_,e[13]=C^~x&R,e[22]=L^~U&j,e[23]=F^~G&H,e[32]=W^~Q&X,e[33]=J^~Y&$,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=N^~_&M,e[15]=x^~R&O,e[24]=U^~j&q,e[25]=G^~H&V,e[34]=Q^~X&Z,e[35]=Y^~$&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~S&y,e[16]=_^~M&I,e[17]=R^~O&k,e[26]=j^~q&B,e[27]=H^~V&D,e[36]=X^~Z&z,e[37]=$^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=M^~I&P,e[19]=O^~k&C,e[28]=q^~B&L,e[29]=V^~D&F,e[38]=Z^~z&W,e[39]=ee^~K&J,e[48]=le^~te&ne,e[49]=ce^~re&ie,e[0]^=c[n],e[1]^=c[n+1]};if(o)e.exports=T;else for(S=0;S<E.length;++S)n[E[S]]=T[E[S]]}()}),Qn=Jn;function Yn(e){return"0x"+Qn.keccak_256(Or(e))}const Xn=new Pr("strings/5.8.0");var $n,Zn;function ei(e,t,r,n,i){if(e===Zn.BAD_PREFIX||e===Zn.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===Zn.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}($n||($n={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(Zn||(Zn={}));const ti=Object.freeze({error:function(e,t,r,n,i){return Xn.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:ei,replace:function(e,t,r,n,i){return e===Zn.OVERLONG?(n.push(i),0):(n.push(65533),ei(e,t,r))}});function ri(e,t){null==t&&(t=ti.error),e=Or(e);const r=[];let n=0;for(;n<e.length;){const i=e[n++];if(i>>7==0){r.push(i);continue}let o=null,s=null;if(192==(224&i))o=1,s=127;else if(224==(240&i))o=2,s=2047;else{if(240!=(248&i)){n+=t(128==(192&i)?Zn.UNEXPECTED_CONTINUE:Zn.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t(Zn.OVERRUN,n-1,e,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[n];if(128!=(192&i)){n+=t(Zn.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t(Zn.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t(Zn.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t(Zn.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function ni(e,t=$n.current){t!=$n.current&&(Xn.checkNormalize(),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if(55296==(64512&n)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const o=65536+((1023&n)<<10)+(1023&i);r.push(o>>18|240),r.push(o>>12&63|128),r.push(o>>6&63|128),r.push(63&o|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Or(r)}function ii(e,t){return ri(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function oi(e){return Yn(ni(e))}const si="hash/5.8.0";function ai(e,t){null==t&&(t=1);const r=[],n=r.forEach,i=function(e,t){n.call(e,function(e){t>0&&Array.isArray(e)?i(e,t-1):r.push(e)})};return i(e,t),r}function ui(e){return 1&e?~e>>1:e>>1}function li(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function ci(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=ui(t());return r}function di(e,t){let r=li(e(),e),n=e(),i=li(n,e),o=function(e,t){let r=Array(e);for(let n=0;n<e;n++)r[n]=1+t();return r}(n,e);for(let e=0;e<n;e++)for(let t=0;t<o[e];t++)r.push(i[e]+t);return t?r.map(e=>t[e]):r}function hi(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)ci(e,r).forEach((e,t)=>n[t].push(e));return n}function pi(e,t){let r=1+t(),n=t(),i=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(r)}return t}(t);return ai(hi(i.length,1+e,t).map((e,t)=>{const o=e[0],s=e.slice(1);return Array(i[t]).fill(void 0).map((e,t)=>{let i=t*n;return[o+t*r,s.map(e=>e+i)]})}))}function fi(e,t){return hi(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const mi=function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),i=1,o=[0,1];for(let e=1;e<n;e++)o.push(i+=r());let s=r(),a=t;t+=s;let u=0,l=0;function c(){return 0==u&&(l=l<<8|e[t++],u=8),l>>--u&1}const d=Math.pow(2,31),h=d>>>1,p=h>>1,f=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|c();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<o[n]?r=n:t=n}if(0==t)break;y.push(t);let s=g+Math.floor(b*o[t]/i),a=g+Math.floor(b*o[t+1]/i)-1;for(;0==((s^a)&h);)m=m<<1&f|c(),s=s<<1&f,a=a<<1&f|1;for(;s&~a&p;)m=m&h|m<<1&f>>>1|c(),s=s<<1^h,a=(a^h)<<1|h|1;g=s,b=1+a-s}let v=n-4;return y.map(t=>{switch(t-v){case 3:return v+65792+(e[a++]<<16|e[a++]<<8|e[a++]);case 2:return v+256+(e[a++]<<8|e[a++]);case 1:return v+e[a++];default:return t-1}})}(Gn("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=="))),yi=new Set(di(mi)),gi=new Set(di(mi)),bi=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(pi(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(fi(r,e))}return function(e){const t={};for(let r=0;r<e.length;r++){const n=e[r];t[n[0]]=n[1]}return t}(ai(t))}(mi),vi=function(e){let t=di(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=di(e,t);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((e,t)=>t.set.size-e.set.size);let i=e(),o=i%3;i=i/3|0;let s=!!(1&i);return i>>=1,{branches:n,valid:o,fe0f:s,save:1==i,check:2==i}}()}(mi),Ai=45,wi=95;function Ti(e){return function(e,t=$n.current){return ri(ni(e,t))}(e)}function Ei(e){return e.filter(e=>65039!=e)}function Si(e){for(let t of e.split(".")){let e=Ti(t);try{for(let t=e.lastIndexOf(wi)-1;t>=0;t--)if(e[t]!==wi)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===Ai&&e[3]===Ai)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function Ii(e,t){var r;let n,i,o=vi,s=[],a=e.length;for(t&&(t.length=0);a;){let u=e[--a];if(o=null===(r=o.branches.find(e=>e.set.has(u)))||void 0===r?void 0:r.node,!o)break;if(o.save)i=u;else if(o.check&&u===i)break;s.push(u),o.fe0f&&(s.push(65039),a>0&&65039==e[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),t&&t.push(...e.slice(a).reverse()),e.length=a)}return n}const ki=new Pr(si),Pi=new Uint8Array(32);function Ci(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Ni(e){const t=ni(function(e){return Si(function(e,t){let r=Ti(e).reverse(),n=[];for(;r.length;){let e=Ii(r);if(e){n.push(...t(e));continue}let i=r.pop();if(yi.has(i)){n.push(i);continue}if(gi.has(i))continue;let o=bi[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return Si(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,Ei))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Ci(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Ci(t.slice(n))),r}function xi(e){"string"!=typeof e&&ki.throwArgumentError("invalid ENS name; not a string","name",e);let t=Pi;const r=Ni(e);for(;r.length;)t=Yn(Br([t,Yn(r.pop())]));return Ur(t)}Pi.fill(0);const _i=new Pr("rlp/5.8.0");function Ri(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Mi(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Oi(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Oi(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=Ri(t.length);return r.unshift(247+r.length),r.concat(t)}_r(e)||_i.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Or(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Ri(t.length);return r.unshift(183+r.length),r.concat(t)}function Bi(e){return Ur(Oi(e))}function Di(e,t,r,n){const i=[];for(;r<t+1+n;){const o=Li(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&_i.throwError("child data too short",Pr.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function Li(e,t){if(0===e.length&&_i.throwError("data too short",Pr.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&_i.throwError("data short segment too short",Pr.errors.BUFFER_OVERRUN,{});const n=Mi(e,t+1,r);return t+1+r+n>e.length&&_i.throwError("data long segment too short",Pr.errors.BUFFER_OVERRUN,{}),Di(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&_i.throwError("data array too short",Pr.errors.BUFFER_OVERRUN,{}),Di(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&_i.throwError("data array too short",Pr.errors.BUFFER_OVERRUN,{});const n=Mi(e,t+1,r);return t+1+r+n>e.length&&_i.throwError("data array too short",Pr.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Ur(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&_i.throwError("data too short",Pr.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Ur(e.slice(t+1,t+1+r))}}return{consumed:1,result:Ur(e[t])}}function Fi(e){const t=Or(e),r=Li(t,0);return r.consumed!==t.length&&_i.throwArgumentError("invalid rlp data","data",e),r.result}const Ui=new Pr("address/5.8.0");function Gi(e){Lr(e,20)||Ui.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);const n=Or(Yn(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const ji={};for(let e=0;e<10;e++)ji[String(e)]=String(e);for(let e=0;e<26;e++)ji[String.fromCharCode(65+e)]=String(10+e);const Hi=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function qi(e){let t=null;if("string"!=typeof e&&Ui.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Gi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ui.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>ji[e]).join("");for(;t.length>=Hi;){let e=t.substring(0,Hi);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}(e)&&Ui.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new Jr(r,36).toString(16);t.length<40;)t="0"+t;t=Gi("0x"+t)}else Ui.throwArgumentError("invalid address","address",e);var r;return t}function Vi(e){let t=null;try{t=qi(e.from)}catch(t){Ui.throwArgumentError("missing from address","transaction",e)}return qi(jr(Yn(Bi([t,Dr(Or(Zr.from(e.nonce).toHexString()))])),12))}const zi=new Pr(si),Ki=new Uint8Array(32);Ki.fill(0);const Wi=Zr.from(-1),Ji=Zr.from(0),Qi=Zr.from(1),Yi=Zr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Xi=Vr(Qi.toHexString(),32),$i=Vr(Ji.toHexString(),32),Zi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},eo=["name","version","chainId","verifyingContract","salt"];function to(e){return function(t){return"string"!=typeof t&&zi.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const ro={name:to("name"),version:to("version"),chainId:function(e){try{return Zr.from(e).toString()}catch(e){}return zi.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return qi(e).toLowerCase()}catch(e){}return zi.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Or(e);if(32!==t.length)throw new Error("bad length");return Ur(t)}catch(e){}return zi.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function no(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const r=""===t[1],n=parseInt(t[2]||"256");(n%8!=0||n>256||t[2]&&t[2]!==String(n))&&zi.throwArgumentError("invalid numeric width","type",e);const i=Yi.mask(r?n-1:n),o=r?i.add(Qi).mul(Wi):Ji;return function(t){const r=Zr.from(t);return(r.lt(o)||r.gt(i))&&zi.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Vr(r.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const r=parseInt(t[1]);return(0===r||r>32||t[1]!==String(r))&&zi.throwArgumentError("invalid bytes width","type",e),function(t){return Or(t).length!==r&&zi.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Or(e),r=t.length%32;return r?Hr([t,Ki.slice(r)]):Ur(t)}(t)}}}switch(e){case"address":return function(e){return Vr(qi(e),32)};case"bool":return function(e){return e?Xi:$i};case"bytes":return function(e){return Yn(e)};case"string":return function(e){return oi(e)}}return null}function io(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class oo{constructor(e){An(this,"types",Object.freeze(Cn(e))),An(this,"_encoderCache",{}),An(this,"_types",{});const t={},r={},n={};Object.keys(e).forEach(e=>{t[e]={},r[e]=[],n[e]={}});for(const n in e){const i={};e[n].forEach(o=>{i[o.name]&&zi.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",e),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&zi.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),no(s)||(r[s]||zi.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",e),r[s].push(n),t[n][s]=!0)})}const i=Object.keys(r).filter(e=>0===r[e].length);0===i.length?zi.throwArgumentError("missing primary type","types",e):i.length>1&&zi.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),An(this,"primaryType",i[0]),function i(o,s){s[o]&&zi.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e),s[o]=!0,Object.keys(t[o]).forEach(e=>{r[e]&&(i(e,s),Object.keys(s).forEach(t=>{n[t][e]=!0}))}),delete s[o]}(this.primaryType,{});for(const t in n){const r=Object.keys(n[t]);r.sort(),this._types[t]=io(t,e[t])+r.map(t=>io(t,e[t])).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=no(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],r=this.getEncoder(e),n=parseInt(t[3]);return t=>{n>=0&&t.length!==n&&zi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(Yn)),Yn(Hr(i))}}const r=this.types[e];if(r){const t=oi(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?Yn(n):n});return n.unshift(t),Hr(n)}}return zi.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||zi.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Yn(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(no(e))return r(e,t);const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],i=parseInt(n[3]);return i>=0&&t.length!==i&&zi.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map(t=>this._visit(e,t,r))}const i=this.types[e];return i?i.reduce((e,{name:n,type:i})=>(e[n]=this._visit(i,t[n],r),e),{}):zi.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new oo(e)}static getPrimaryType(e){return oo.from(e).primaryType}static hashStruct(e,t,r){return oo.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=Zi[r];n||zi.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>eo.indexOf(e.name)-eo.indexOf(t.name)),oo.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return Hr(["0x1901",oo.hashDomain(e),oo.from(t).hash(r)])}static hash(e,t,r){return Yn(oo.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=Sn(e);const i={};e.verifyingContract&&!Lr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=oo.from(t);o.visit(r,(e,t)=>("address"!==e||Lr(t,20)||(i[t]="0x"),t));for(const e in i)i[e]=yield n(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),r=o.visit(r,(e,t)=>"address"===e&&i[t]?i[t]:t),{domain:e,value:r}},new((o=void 0)||(o=Promise))(function(e,t){function r(e){try{a(s.next(e))}catch(e){t(e)}}function n(e){try{a(s.throw(e))}catch(e){t(e)}}function a(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(e,t,r){oo.hashDomain(e);const n={},i=[];eo.forEach(t=>{const r=e[t];null!=r&&(n[t]=ro[t](r),i.push({name:t,type:Zi[t]}))});const o=oo.from(t),s=Sn(t);return s.EIP712Domain?zi.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return Ur(Or(t));if(e.match(/^u?int/))return Zr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&zi.throwArgumentError("invalid string","value",t),t}return zi.throwArgumentError("unsupported type","type",e)})}}}var so=ao;function ao(e,t){if(!e)throw new Error(t||"Assertion failed")}function uo(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function lo(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function co(e){return 1===e.length?"0"+e:e}function ho(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}ao.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var po={inherits:mr(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):uo(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=63&o|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=63&o|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},toHex:function(e){for(var t="",r=0;r<e.length;r++)t+=co(e[r].toString(16));return t},htonl:lo,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=lo(i)),r+=ho(i.toString(16))}return r},zero2:co,zero8:ho,join32:function(e,t,r,n){var i=r-t;so(i%4==0);for(var o=new Array(i/4),s=0,a=t;s<o.length;s++,a+=4)o[s]=("big"===n?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a])>>>0;return o},split32:function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,r){return e+t+r>>>0},sum32_4:function(e,t,r,n){return e+t+r+n>>>0},sum32_5:function(e,t,r,n,i){return e+t+r+n+i>>>0},sum64:function(e,t,r,n){var i=n+e[t+1]>>>0;e[t]=(i<n?1:0)+r+e[t]>>>0,e[t+1]=i},sum64_hi:function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},sum64_lo:function(e,t,r,n){return t+n>>>0},sum64_4_hi:function(e,t,r,n,i,o,s,a){var u=0,l=t;return u+=(l=l+n>>>0)<t?1:0,u+=(l=l+o>>>0)<o?1:0,e+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(e,t,r,n,i,o,s,a){return t+n+o+a>>>0},sum64_5_hi:function(e,t,r,n,i,o,s,a,u,l){var c=0,d=t;return c+=(d=d+n>>>0)<t?1:0,c+=(d=d+o>>>0)<o?1:0,c+=(d=d+a>>>0)<a?1:0,e+r+i+s+u+(c+=(d=d+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,r,n,i,o,s,a,u,l){return t+n+o+a+l>>>0},rotr64_hi:function(e,t,r){return(t<<32-r|e>>>r)>>>0},rotr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0},shr64_hi:function(e,t,r){return e>>>r},shr64_lo:function(e,t,r){return(e<<32-r|t>>>r)>>>0}};function fo(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var mo=fo;fo.prototype.update=function(e,t){if(e=po.toArray(e,t),this.pending=this.pending?this.pending.concat(e):e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=po.join32(e,0,e.length-r,this.endian);for(var n=0;n<e.length;n+=this._delta32)this._update(e,n,n+this._delta32)}return this},fo.prototype.digest=function(e){return this.update(this._pad()),so(null===this.pending),this._digest(e)},fo.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n};var yo={BlockHash:mo},go=po.rotr32;function bo(e,t,r){return e&t^~e&r}function vo(e,t,r){return e&t^e&r^t&r}var Ao=bo,wo=vo,To=po.rotl32,Eo=po.sum32,So=po.sum32_5,Io=function(e,t,r,n){return 0===e?bo(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?vo(t,r,n):void 0},ko=yo.BlockHash,Po=[1518500249,1859775393,2400959708,3395469782];function Co(){if(!(this instanceof Co))return new Co;ko.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}po.inherits(Co,ko);var No=Co;Co.blockSize=512,Co.outSize=160,Co.hmacStrength=80,Co.padLength=64,Co.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=To(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4];for(n=0;n<r.length;n++){var l=~~(n/20),c=So(To(i,5),Io(l,o,s,a),u,r[n],Po[l]);u=a,a=s,s=To(o,30),o=i,i=c}this.h[0]=Eo(this.h[0],i),this.h[1]=Eo(this.h[1],o),this.h[2]=Eo(this.h[2],s),this.h[3]=Eo(this.h[3],a),this.h[4]=Eo(this.h[4],u)},Co.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"big"):po.split32(this.h,"big")};var xo=po.sum32,_o=po.sum32_4,Ro=po.sum32_5,Mo=Ao,Oo=wo,Bo=function(e){return go(e,2)^go(e,13)^go(e,22)},Do=function(e){return go(e,6)^go(e,11)^go(e,25)},Lo=function(e){return go(e,7)^go(e,18)^e>>>3},Fo=function(e){return go(e,17)^go(e,19)^e>>>10},Uo=yo.BlockHash,Go=[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];function jo(){if(!(this instanceof jo))return new jo;Uo.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Go,this.W=new Array(64)}po.inherits(jo,Uo);var Ho=jo;function qo(){if(!(this instanceof qo))return new qo;Ho.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}jo.blockSize=512,jo.outSize=256,jo.hmacStrength=192,jo.padLength=64,jo.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=_o(Fo(r[n-2]),r[n-7],Lo(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],l=this.h[5],c=this.h[6],d=this.h[7];for(so(this.k.length===r.length),n=0;n<r.length;n++){var h=Ro(d,Do(u),Mo(u,l,c),this.k[n],r[n]),p=xo(Bo(i),Oo(i,o,s));d=c,c=l,l=u,u=xo(a,h),a=s,s=o,o=i,i=xo(h,p)}this.h[0]=xo(this.h[0],i),this.h[1]=xo(this.h[1],o),this.h[2]=xo(this.h[2],s),this.h[3]=xo(this.h[3],a),this.h[4]=xo(this.h[4],u),this.h[5]=xo(this.h[5],l),this.h[6]=xo(this.h[6],c),this.h[7]=xo(this.h[7],d)},jo.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"big"):po.split32(this.h,"big")},po.inherits(qo,Ho);var Vo=qo;qo.blockSize=512,qo.outSize=224,qo.hmacStrength=192,qo.padLength=64,qo.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h.slice(0,7),"big"):po.split32(this.h.slice(0,7),"big")};var zo=po.rotr64_hi,Ko=po.rotr64_lo,Wo=po.shr64_hi,Jo=po.shr64_lo,Qo=po.sum64,Yo=po.sum64_hi,Xo=po.sum64_lo,$o=po.sum64_4_hi,Zo=po.sum64_4_lo,es=po.sum64_5_hi,ts=po.sum64_5_lo,rs=yo.BlockHash,ns=[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];function is(){if(!(this instanceof is))return new is;rs.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=ns,this.W=new Array(160)}po.inherits(is,rs);var os=is;function ss(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function as(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function us(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function ls(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function cs(e,t){var r=zo(e,t,28)^zo(t,e,2)^zo(t,e,7);return r<0&&(r+=4294967296),r}function ds(e,t){var r=Ko(e,t,28)^Ko(t,e,2)^Ko(t,e,7);return r<0&&(r+=4294967296),r}function hs(e,t){var r=zo(e,t,14)^zo(e,t,18)^zo(t,e,9);return r<0&&(r+=4294967296),r}function ps(e,t){var r=Ko(e,t,14)^Ko(e,t,18)^Ko(t,e,9);return r<0&&(r+=4294967296),r}function fs(e,t){var r=zo(e,t,1)^zo(e,t,8)^Wo(e,t,7);return r<0&&(r+=4294967296),r}function ms(e,t){var r=Ko(e,t,1)^Ko(e,t,8)^Jo(e,t,7);return r<0&&(r+=4294967296),r}function ys(e,t){var r=zo(e,t,19)^zo(t,e,29)^Wo(e,t,6);return r<0&&(r+=4294967296),r}function gs(e,t){var r=Ko(e,t,19)^Ko(t,e,29)^Jo(e,t,6);return r<0&&(r+=4294967296),r}function bs(){if(!(this instanceof bs))return new bs;os.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}is.blockSize=1024,is.outSize=512,is.hmacStrength=192,is.padLength=128,is.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=ys(r[n-4],r[n-3]),o=gs(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=fs(r[n-30],r[n-29]),l=ms(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=$o(i,o,s,a,u,l,c,d),r[n+1]=Zo(i,o,s,a,u,l,c,d)}},is.prototype._update=function(e,t){this._prepareBlock(e,t);var r=this.W,n=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],a=this.h[4],u=this.h[5],l=this.h[6],c=this.h[7],d=this.h[8],h=this.h[9],p=this.h[10],f=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];so(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=hs(d,h),E=ps(d,h),S=ss(d,0,p,0,m),I=as(0,h,0,f,0,y),k=this.k[v],P=this.k[v+1],C=r[v],N=r[v+1],x=es(A,w,T,E,S,I,k,P,C,N),_=ts(A,w,T,E,S,I,k,P,C,N);A=cs(n,i),w=ds(n,i),T=us(n,0,o,0,a),E=ls(0,i,0,s,0,u);var R=Yo(A,w,T,E),M=Xo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=Yo(l,c,x,_),h=Xo(c,c,x,_),l=a,c=u,a=o,u=s,o=n,s=i,n=Yo(x,_,R,M),i=Xo(x,_,R,M)}Qo(this.h,0,n,i),Qo(this.h,2,o,s),Qo(this.h,4,a,u),Qo(this.h,6,l,c),Qo(this.h,8,d,h),Qo(this.h,10,p,f),Qo(this.h,12,m,y),Qo(this.h,14,g,b)},is.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"big"):po.split32(this.h,"big")},po.inherits(bs,os);var vs=bs;bs.blockSize=1024,bs.outSize=384,bs.hmacStrength=192,bs.padLength=128,bs.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h.slice(0,12),"big"):po.split32(this.h.slice(0,12),"big")};var As={sha1:No,sha224:Vo,sha256:Ho,sha384:vs,sha512:os},ws=po.rotl32,Ts=po.sum32,Es=po.sum32_3,Ss=po.sum32_4,Is=yo.BlockHash;function ks(){if(!(this instanceof ks))return new ks;Is.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}po.inherits(ks,Is);var Ps=ks;function Cs(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function Ns(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function xs(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}ks.blockSize=512,ks.outSize=160,ks.hmacStrength=192,ks.padLength=64,ks.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],o=this.h[3],s=this.h[4],a=r,u=n,l=i,c=o,d=s,h=0;h<80;h++){var p=Ts(ws(Ss(r,Cs(h,n,i,o),e[_s[h]+t],Ns(h)),Ms[h]),s);r=s,s=o,o=ws(i,10),i=n,n=p,p=Ts(ws(Ss(a,Cs(79-h,u,l,c),e[Rs[h]+t],xs(h)),Os[h]),d),a=d,d=c,c=ws(l,10),l=u,u=p}p=Es(this.h[1],i,c),this.h[1]=Es(this.h[2],o,d),this.h[2]=Es(this.h[3],s,a),this.h[3]=Es(this.h[4],r,u),this.h[4]=Es(this.h[0],n,l),this.h[0]=p},ks.prototype._digest=function(e){return"hex"===e?po.toHex32(this.h,"little"):po.split32(this.h,"little")};var _s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Rs=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Ms=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Os=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Bs={ripemd160:Ps};function Ds(e,t,r){if(!(this instanceof Ds))return new Ds(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(po.toArray(t,r))}var Ls=Ds;Ds.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),so(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},Ds.prototype.update=function(e,t){return this.inner.update(e,t),this},Ds.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var Fs,Us=mr(function(e,t){var r=t;r.utils=po,r.common=yo,r.sha=As,r.ripemd=Bs,r.hmac=Ls,r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160}),Gs=Us;!function(e){e.sha256="sha256",e.sha512="sha512"}(Fs||(Fs={}));const js=new Pr("sha2/5.8.0");function Hs(e){return"0x"+Gs.sha256().update(Or(e)).digest("hex")}function qs(e,t,r){return Fs[e]||js.throwError("unsupported algorithm "+e,Pr.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+Gs.hmac(Gs[e],Or(t)).update(Or(r)).digest("hex")}var Vs=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};function zs(e,t){return Vs(this,void 0,void 0,function*(){null==t&&(t={});const r={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(r.mode=e.mode),e.cache&&(r.cache=e.cache),e.credentials&&(r.credentials=e.credentials),e.redirect&&(r.redirect=e.redirect),e.referrer&&(r.referrer=e.referrer)}const n=yield fetch(e,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((e,t)=>{o[t.toLowerCase()]=e}):n.headers.keys().forEach(e=>{o[e.toLowerCase()]=n.headers.get(e)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Or(new Uint8Array(i))}})}var Ks=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ws=new Pr("web/5.8.0");function Js(e){return new Promise(t=>{setTimeout(t,e)})}function Qs(e,t){if(null==e)return null;if("string"==typeof e)return e;if(_r(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ii(e)}catch(e){}return Ur(e)}return e}function Ys(e,t,r){let n=null;if(null!=t){n=ni(t);const r="string"==typeof e?{url:e}:Sn(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=Sn(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},e=r}return function(e,t,r){const n="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;Ws.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof e?e.throttleCallback:null,o="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;Ws.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof e&&!!e.errorPassThrough,a={};let u=null;const l={method:"GET"};let c=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||Ws.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)a[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(c=!0);l.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password&&("https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&Ws.throwError("basic authentication requires a secure https url",Pr.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+jn(ni(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=Sn(e.fetchOptions))}const h=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(h):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?Gn(p[3]):(f=p[3],ni(f.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))))};let t=e.body;return r&&(t=r(e.body,e)),Promise.resolve(t)}catch(e){Ws.throwError("processing response error",Pr.errors.SERVER_ERROR,{body:Qs(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var f;t&&(l.method="POST",l.body=t,null==a["content-type"]&&(a["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==a["content-length"]&&(a["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(a).forEach(e=>{const t=a[e];m[t.key]=t.value}),l.headers=m;const y=function(){let e=null;return{promise:new Promise(function(t,r){d&&(e=setTimeout(()=>{null!=e&&(e=null,r(Ws.makeError("timeout",Pr.errors.TIMEOUT,{requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return Ks(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield zs(u,l),e<n)if(301===t.statusCode||302===t.statusCode){if("GET"===l.method&&(t.headers.location||"").match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let r=!0;if(i&&(r=yield i(e,u)),r){let r=0;const n=t.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,e))),yield Js(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),Ws.throwError("missing response",Pr.errors.SERVER_ERROR,{requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,serverError:e,url:u}))}let a=t.body;if(c&&304===t.statusCode?a=null:!s&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),Ws.throwError("bad response",Pr.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:Qs(a,t.headers?t.headers["content-type"]:null),requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const e=yield r(a,t);return y.cancel(),e}catch(r){if(r.throttleRetry&&e<n){let t=!0;if(i&&(t=yield i(e,u)),t){const t=o*parseInt(String(Math.random()*Math.pow(2,e)));yield Js(t);continue}}y.cancel(),Ws.throwError("processing response error",Pr.errors.SERVER_ERROR,{body:Qs(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return Ws.throwError("failed response",Pr.errors.SERVER_ERROR,{requestBody:Qs(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(e,n,(e,t)=>{let n=null;if(null!=e)try{n=JSON.parse(ii(e))}catch(t){Ws.throwError("invalid JSON",Pr.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function Xs(e,t){return t||(t={}),null==(t=Sn(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},t.timeout));const a=t.retryLimit;let u=0;!function i(){return e().then(function(e){if(void 0!==e)s()&&r(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null},function(e){s()&&n(e)})}()})}for(var $s="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Zs={},ea=0;ea<$s.length;ea++){var ta=$s.charAt(ea);if(void 0!==Zs[ta])throw new TypeError(ta+" is ambiguous");Zs[ta]=ea}function ra(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}const na="providers/5.8.0";function ia(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var oa=sa;function sa(e,t){if(!e)throw new Error(t||"Assertion failed")}sa.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var aa=ia(function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,s=255&i;o?r.push(o,s):r.push(s)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}}),ua=ia(function(e,t){var r=t;r.assert=oa,r.toArray=aa.toArray,r.zero2=aa.zero2,r.toHex=aa.toHex,r.encode=aa.encode,r.getNAF=function(e,t,r){var n,i=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n<i.length;n+=1)i[n]=0;var o=1<<t+1,s=e.clone();for(n=0;n<i.length;n++){var a,u=s.andln(o-1);s.isOdd()?s.isubn(a=u>(o>>1)-1?(o>>1)-u:u):a=0,i[n]=a,s.iushrn(1)}return i},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,u=e.andln(3)+i&3,l=t.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?l:-l,r[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new gr(e,"hex","le")}}),la=ua.getNAF,ca=ua.getJSF,da=ua.assert;function ha(e,t){this.type=e,this.p=new gr(t.p,16),this.red=t.prime?gr.red(t.prime):gr.mont(this.p),this.zero=new gr(0).toRed(this.red),this.one=new gr(1).toRed(this.red),this.two=new gr(2).toRed(this.red),this.n=t.n&&new gr(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var pa=ha;function fa(e,t){this.curve=e,this.type=t,this.precomputed=null}ha.prototype.point=function(){throw new Error("Not implemented")},ha.prototype.validate=function(){throw new Error("Not implemented")},ha.prototype._fixedNafMul=function(e,t){da(e.precomputed);var r=e._getDoubles(),n=la(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var o,s,a=[];for(o=0;o<n.length;o+=r.step){s=0;for(var u=o+r.step-1;u>=o;u--)s=(s<<1)+n[u];a.push(s)}for(var l=this.jpoint(null,null,null),c=this.jpoint(null,null,null),d=i;d>0;d--){for(o=0;o<a.length;o++)(s=a[o])===d?c=c.mixedAdd(r.points[o]):s===-d&&(c=c.mixedAdd(r.points[o].neg()));l=l.add(c)}return l.toP()},ha.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=la(t,r=n.wnd,this._bitLength),s=this.jpoint(null,null,null),a=o.length-1;a>=0;a--){for(var u=0;a>=0&&0===o[a];a--)u++;if(a>=0&&u++,s=s.dblp(u),a<0)break;var l=o[a];da(0!==l),s="affine"===e.type?s.mixedAdd(l>0?i[l-1>>1]:i[-l-1>>1].neg()):s.add(l>0?i[l-1>>1]:i[-l-1>>1].neg())}return"affine"===e.type?s.toP():s},ha.prototype._wnafMulAdd=function(e,t,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,c=this._wnafT3,d=0;for(o=0;o<n;o++){var h=(a=t[o])._getNAFPoints(e);u[o]=h.wnd,l[o]=h.points}for(o=n-1;o>=1;o-=2){var p=o-1,f=o;if(1===u[p]&&1===u[f]){var m=[t[p],null,null,t[f]];0===t[p].y.cmp(t[f].y)?(m[1]=t[p].add(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg())):0===t[p].y.cmp(t[f].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].add(t[f].neg())):(m[1]=t[p].toJ().mixedAdd(t[f]),m[2]=t[p].toJ().mixedAdd(t[f].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=ca(r[p],r[f]);for(d=Math.max(g[0].length,d),c[p]=new Array(d),c[f]=new Array(d),s=0;s<d;s++)c[p][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],c[f][s]=0,l[p]=m}else c[p]=la(r[p],u[p],this._bitLength),c[f]=la(r[f],u[f],this._bitLength),d=Math.max(c[p].length,d),d=Math.max(c[f].length,d)}var b=this.jpoint(null,null,null),v=this._wnafT4;for(o=d;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)v[s]=0|c[s][o],0!==v[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,b=b.dblp(A),o<0)break;for(s=0;s<n;s++){var T=v[s];0!==T&&(T>0?a=l[s][T-1>>1]:T<0&&(a=l[s][-T-1>>1].neg()),b="affine"===a.type?b.mixedAdd(a):b.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?b:b.toP()},ha.BasePoint=fa,fa.prototype.eq=function(){throw new Error("Not implemented")},fa.prototype.validate=function(){return this.curve.validate(this)},ha.prototype.decodePoint=function(e,t){e=ua.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?da(e[e.length-1]%2==0):7===e[0]&&da(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},fa.prototype.encodeCompressed=function(e){return this.encode(e,!0)},fa.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},fa.prototype.encode=function(e,t){return ua.encode(this._encode(t),e)},fa.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},fa.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},fa.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},fa.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},fa.prototype._getBeta=function(){return null},fa.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var ma=ia(function(e){e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}}),ya=ua.assert;function ga(e){pa.call(this,"short",e),this.a=new gr(e.a,16).toRed(this.red),this.b=new gr(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}ma(ga,pa);var ba=ga;function va(e,t,r,n){pa.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new gr(t,16),this.y=new gr(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function Aa(e,t,r,n){pa.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new gr(0)):(this.x=new gr(t,16),this.y=new gr(r,16),this.z=new gr(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}ga.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new gr(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new gr(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?r=i[0]:ya(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(t)))}return{beta:t,lambda:r,basis:e.basis?e.basis.map(function(e){return{a:new gr(e.a,16),b:new gr(e.b,16)}}):this._getEndoBasis(r)}}},ga.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:gr.mont(e),r=new gr(2).toRed(t).redInvm(),n=r.redNeg(),i=new gr(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},ga.prototype._getEndoBasis=function(e){for(var t,r,n,i,o,s,a,u,l,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new gr(1),f=new gr(0),m=new gr(0),y=new gr(1),g=0;0!==d.cmpn(0);){var b=h.div(d);u=h.sub(b.mul(d)),l=m.sub(b.mul(p));var v=y.sub(b.mul(f));if(!n&&u.cmp(c)<0)t=a.neg(),r=p,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,h=d,d=u,m=p,p=l,y=f,f=v}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=t,s=r),n.negative&&(n=n.neg(),i=i.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:n,b:i},{a:o,b:s}]},ga.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),s=i.mul(r.a),a=o.mul(n.a),u=i.mul(r.b),l=o.mul(n.b);return{k1:e.sub(s).sub(a),k2:u.add(l).neg()}},ga.prototype.pointFromX=function(e,t){(e=new gr(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},ga.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},ga.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),n[2*o]=a,n[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var l=this._wnafMulAdd(1,n,i,2*o,r),c=0;c<2*o;c++)n[c]=null,i[c]=null;return l},ma(va,pa.BasePoint),ga.prototype.point=function(e,t,r){return new va(this,e,t,r)},ga.prototype.pointFromJSON=function(e,t){return va.fromJSON(this,e,t)},va.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},va.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},va.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},va.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},va.prototype.isInfinity=function(){return this.inf},va.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},va.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},va.prototype.getX=function(){return this.x.fromRed()},va.prototype.getY=function(){return this.y.fromRed()},va.prototype.mul=function(e){return e=new gr(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},va.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},va.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},va.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},va.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},va.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},ma(Aa,pa.BasePoint),ga.prototype.jpoint=function(e,t,r){return new Aa(this,e,t,r)},Aa.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},Aa.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Aa.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),c=l.redMul(a),d=n.redMul(l),h=u.redSqr().redIAdd(c).redISub(d).redISub(d),p=u.redMul(d.redISub(h)).redISub(o.redMul(c)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,p,f)},Aa.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),c=r.redMul(u),d=a.redSqr().redIAdd(l).redISub(c).redISub(c),h=a.redMul(c.redISub(d)).redISub(i.redMul(l)),p=this.z.redMul(s);return this.curve.jpoint(d,h,p)},Aa.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),l=s.redAdd(s);for(t=0;t<e;t++){var c=o.redSqr(),d=l.redSqr(),h=d.redSqr(),p=c.redAdd(c).redIAdd(c).redIAdd(n.redMul(u)),f=o.redMul(d),m=p.redSqr().redISub(f.redAdd(f)),y=f.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(h);var b=l.redMul(a);t+1<e&&(u=u.redMul(h)),o=m,a=b,l=g}return this.curve.jpoint(o,l.redMul(i),a)},Aa.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Aa.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n),u=a.redSqr().redISub(s).redISub(s),l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=u,t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),d=this.y.redSqr(),h=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(c).redISub(h);p=p.redIAdd(p);var f=c.redAdd(c).redIAdd(c),m=f.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=f.redMul(p.redISub(e)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},Aa.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(n).redISub(o);s=s.redIAdd(s);var a=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);e=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),d=this.y.redSqr(),h=this.x.redMul(d),p=this.x.redSub(c).redMul(this.x.redAdd(c));p=p.redAdd(p).redIAdd(p);var f=h.redIAdd(h),m=(f=f.redIAdd(f)).redAdd(f);e=p.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(d).redISub(c);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(f.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,r)},Aa.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),l=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(l.redAdd(l)),d=l.redISub(c),h=s.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=a.redMul(d).redISub(h),f=r.redAdd(r).redMul(n);return this.curve.jpoint(c,p,f)},Aa.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(n),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var l=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=t.redMul(l);c=(c=c.redIAdd(c)).redIAdd(c);var d=this.x.redMul(a).redISub(c);d=(d=d.redIAdd(d)).redIAdd(d);var h=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var p=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(d,h,p)},Aa.prototype.mul=function(e,t){return e=new gr(e,t),this.curve._wnafMul(this,e)},Aa.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},Aa.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},Aa.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},Aa.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var wa=ia(function(e,t){var r=t;r.base=pa,r.short=ba,r.mont=null,r.edwards=null}),Ta=ia(function(e,t){var r,n=t,i=ua.assert;function o(e){this.curve="short"===e.type?new wa.short(e):"edwards"===e.type?new wa.edwards(e):new wa.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Gs.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Gs.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Gs.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Gs.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Gs.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Gs.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Gs.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Gs.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Ea(e){if(!(this instanceof Ea))return new Ea(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=aa.toArray(e.entropy,e.entropyEnc||"hex"),r=aa.toArray(e.nonce,e.nonceEnc||"hex"),n=aa.toArray(e.pers,e.persEnc||"hex");oa(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var Sa=Ea;Ea.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},Ea.prototype._hmac=function(){return new Gs.hmac(this.hash,this.K)},Ea.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Ea.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=aa.toArray(e,t),r=aa.toArray(r,n),oa(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},Ea.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=aa.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,e);return this._update(r),this._reseed++,aa.encode(o,t)};var Ia=ua.assert;function ka(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Pa=ka;ka.fromPublic=function(e,t,r){return t instanceof ka?t:new ka(e,{pub:t,pubEnc:r})},ka.fromPrivate=function(e,t,r){return t instanceof ka?t:new ka(e,{priv:t,privEnc:r})},ka.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},ka.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},ka.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},ka.prototype._importPrivate=function(e,t){this.priv=new gr(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},ka.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Ia(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Ia(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},ka.prototype.derive=function(e){return e.validate()||Ia(e.validate(),"public point not validated"),e.mul(this.priv).getX()},ka.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},ka.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},ka.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ca=ua.assert;function Na(e,t){if(e instanceof Na)return e;this._importDER(e,t)||(Ca(e.r&&e.s,"Signature without r or s"),this.r=new gr(e.r,16),this.s=new gr(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var xa=Na;function _a(){this.place=0}function Ra(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var i=0,o=0,s=t.place;o<n;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function Ma(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function Oa(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Na.prototype._importDER=function(e,t){e=ua.toArray(e,t);var r=new _a;if(48!==e[r.place++])return!1;var n=Ra(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=Ra(e,r);if(!1===i)return!1;if(0!=(128&e[r.place]))return!1;var o=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=Ra(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(0!=(128&e[r.place]))return!1;var a=e.slice(r.place,s+r.place);if(0===o[0]){if(!(128&o[1]))return!1;o=o.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new gr(o),this.s=new gr(a),this.recoveryParam=null,!0},Na.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=Ma(t),r=Ma(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Oa(n,t.length),(n=n.concat(t)).push(2),Oa(n,r.length);var i=n.concat(r),o=[48];return Oa(o,i.length),o=o.concat(i),ua.encode(o,e)};var Ba=function(){throw new Error("unsupported")},Da=ua.assert;function La(e){if(!(this instanceof La))return new La(e);"string"==typeof e&&(Da(Object.prototype.hasOwnProperty.call(Ta,e),"Unknown curve "+e),e=Ta[e]),e instanceof Ta.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Fa=La;La.prototype.keyPair=function(e){return new Pa(this,e)},La.prototype.keyFromPrivate=function(e,t){return Pa.fromPrivate(this,e,t)},La.prototype.keyFromPublic=function(e,t){return Pa.fromPublic(this,e,t)},La.prototype.genKeyPair=function(e){e||(e={});for(var t=new Sa({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Ba(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new gr(2));;){var i=new gr(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},La.prototype._truncateToN=function(e,t,r){var n;if(gr.isBN(e)||"number"==typeof e)n=(e=new gr(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new gr(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new gr(i,16)}"number"!=typeof r&&(r=8*n);var o=r-this.n.bitLength();return o>0&&(e=e.ushrn(o)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},La.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!gr.isBN(e)){Da("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),Da(e.length>>>0===e.length);for(var i=0;i<e.length;i++)Da((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),Da(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);Da(new gr(a).eq(e),"Can not sign message");for(var u=new Sa({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new gr(1)),c=0;;c++){var d=n.k?n.k(c):new gr(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var h=this.g.mul(d);if(!h.isInfinity()){var p=h.getX(),f=p.umod(this.n);if(0!==f.cmpn(0)){var m=d.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==p.cmp(f)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new xa({r:f,s:m,recoveryParam:y})}}}}}},La.prototype.verify=function(e,t,r,n,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),r=this.keyFromPublic(r,n);var o=(t=new xa(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),l=u.mul(e).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,r.getPublic(),c)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,r.getPublic(),c)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},La.prototype.recoverPubKey=function(e,t,r,n){Da((3&r)===r,"The recovery param is more than two bits"),t=new xa(t,n);var i=this.n,o=new gr(e),s=t.r,a=t.s,u=1&r,l=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");s=this.curve.pointFromX(l?s.add(this.curve.n):s,u);var c=t.r.invm(i),d=i.sub(o).mul(c).umod(i),h=a.mul(c).umod(i);return this.g.mulAdd(d,s,h)},La.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new xa(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var Ua=ia(function(e,t){var r=t;r.version="6.6.1",r.utils=ua,r.rand=function(){throw new Error("unsupported")},r.curve=wa,r.curves=Ta,r.ec=Fa,r.eddsa=null}).ec;const Ga=new Pr("signing-key/5.8.0");let ja=null;function Ha(){return ja||(ja=new Ua("secp256k1")),ja}class qa{constructor(e){An(this,"curve","secp256k1"),An(this,"privateKey",Ur(e)),32!==Gr(this.privateKey)&&Ga.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Ha().keyFromPrivate(Or(this.privateKey));An(this,"publicKey","0x"+t.getPublic(!1,"hex")),An(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),An(this,"_isSigningKey",!0)}_addPoint(e){const t=Ha().keyFromPublic(Or(this.publicKey)),r=Ha().keyFromPublic(Or(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=Ha().keyFromPrivate(Or(this.privateKey)),r=Or(e);32!==r.length&&Ga.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return zr({recoveryParam:n.recoveryParam,r:Vr("0x"+n.r.toString(16),32),s:Vr("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=Ha().keyFromPrivate(Or(this.privateKey)),r=Ha().keyFromPublic(Or(Va(e)));return Vr("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Va(e,t){const r=Or(e);if(32===r.length){const e=new qa(r);return t?"0x"+Ha().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?Ur(r):"0x"+Ha().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+Ha().keyFromPublic(r).getPublic(!0,"hex"):Ur(r):Ga.throwArgumentError("invalid public or private key","key","[REDACTED]")}const za=new Pr("transactions/5.8.0");var Ka;function Wa(e){return"0x"===e?null:qi(e)}function Ja(e){return"0x"===e?zn:Zr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Ka||(Ka={}));const Qa=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],Ya={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Xa(e){return qi(jr(Yn(jr(Va(e),1)),12))}function $a(e,t){return Xa(function(e,t){const r=zr(t),n={r:Or(r.r),s:Or(r.s)};return"0x"+Ha().recoverPubKey(Or(e),n,r.recoveryParam).encode("hex",!1)}(Or(e),t))}function Za(e,t){const r=Dr(Zr.from(e).toHexString());return r.length>32&&za.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function eu(e,t){return{address:qi(e),storageKeys:(t||[]).map((t,r)=>(32!==Gr(t)&&za.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function tu(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&za.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),eu(e[0],e[1])):eu(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return eu(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function ru(e){return tu(e).map(e=>[e.address,e.storageKeys])}function nu(e,t){if(null!=e.gasPrice){const t=Zr.from(e.gasPrice),r=Zr.from(e.maxFeePerGas||0);t.eq(r)||za.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[Za(e.chainId||0,"chainId"),Za(e.nonce||0,"nonce"),Za(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Za(e.maxFeePerGas||0,"maxFeePerGas"),Za(e.gasLimit||0,"gasLimit"),null!=e.to?qi(e.to):"0x",Za(e.value||0,"value"),e.data||"0x",ru(e.accessList||[])];if(t){const e=zr(t);r.push(Za(e.recoveryParam,"recoveryParam")),r.push(Dr(e.r)),r.push(Dr(e.s))}return Hr(["0x02",Bi(r)])}function iu(e,t){const r=[Za(e.chainId||0,"chainId"),Za(e.nonce||0,"nonce"),Za(e.gasPrice||0,"gasPrice"),Za(e.gasLimit||0,"gasLimit"),null!=e.to?qi(e.to):"0x",Za(e.value||0,"value"),e.data||"0x",ru(e.accessList||[])];if(t){const e=zr(t);r.push(Za(e.recoveryParam,"recoveryParam")),r.push(Dr(e.r)),r.push(Dr(e.s))}return Hr(["0x01",Bi(r)])}function ou(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&za.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){En(e,Ya);const r=[];Qa.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Or(Ur(n,i)),t.length&&n.length!==t.length&&n.length>0&&za.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=Dr(n),n.length>t.maxLength&&za.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(Ur(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&za.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!_r(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(Ur(n)),r.push("0x"),r.push("0x")),!t)return Bi(r);const i=zr(t);let o=27+i.recoveryParam;return 0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&za.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&za.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(Ur(o)),r.push(Dr(Or(i.r))),r.push(Dr(Or(i.s))),Bi(r)}(e,t);switch(e.type){case 1:return iu(e,t);case 2:return nu(e,t)}return za.throwError(`unsupported transaction type: ${e.type}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function su(e,t,r){try{const r=Ja(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){za.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Vr(t[1],32),e.s=Vr(t[2],32);try{const t=Yn(r(e));e.from=$a(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const au=new Pr(na);class uu{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),r=this.bigNumber.bind(this),n=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:o,type:u,accessList:uu.allowNull(this.accessList.bind(this),null),blockHash:uu.allowNull(o,null),blockNumber:uu.allowNull(a,null),transactionIndex:uu.allowNull(a,null),confirmations:uu.allowNull(a,null),from:t,gasPrice:uu.allowNull(r),maxPriorityFeePerGas:uu.allowNull(r),maxFeePerGas:uu.allowNull(r),gasLimit:r,to:uu.allowNull(t,null),value:r,nonce:a,data:i,r:uu.allowNull(this.uint256),s:uu.allowNull(this.uint256),v:uu.allowNull(a),creates:uu.allowNull(t,null),raw:uu.allowNull(i)},e.transactionRequest={from:uu.allowNull(t),nonce:uu.allowNull(a),gasLimit:uu.allowNull(r),gasPrice:uu.allowNull(r),maxPriorityFeePerGas:uu.allowNull(r),maxFeePerGas:uu.allowNull(r),to:uu.allowNull(t),value:uu.allowNull(r),data:uu.allowNull(e=>this.data(e,!0)),type:uu.allowNull(a),accessList:uu.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:uu.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:uu.allowNull(this.address,null),from:uu.allowNull(this.address,null),contractAddress:uu.allowNull(t,null),transactionIndex:a,root:uu.allowNull(s),gasUsed:r,logsBloom:uu.allowNull(i),blockHash:o,transactionHash:o,logs:uu.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:uu.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:uu.allowNull(r),status:uu.allowNull(a),type:u},e.block={hash:uu.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:uu.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:uu.allowNull(t),extraData:i,transactions:uu.allowNull(uu.arrayOf(o)),baseFeePerGas:uu.allowNull(r)},e.blockWithTransactions=Sn(e.block),e.blockWithTransactions.transactions=uu.allowNull(uu.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:uu.allowNull(n,void 0),toBlock:uu.allowNull(n,void 0),blockHash:uu.allowNull(o,void 0),address:uu.allowNull(t,void 0),topics:uu.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:uu.allowNull(a),blockHash:uu.allowNull(o),transactionIndex:a,removed:uu.allowNull(this.boolean.bind(this)),address:t,data:uu.allowFalsish(i,"0x"),topics:uu.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return tu(e||[])}number(e){return"0x"===e?0:Zr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:Zr.from(e).toNumber()}bigNumber(e){return Zr.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),Lr(e))?e.toLowerCase():au.throwArgumentError("invalid hash","value",e)}data(e,t){const r=this.hex(e,t);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+e);return r}address(e){return qi(e)}callAddress(e){if(!Lr(e,32))return null;const t=qi(jr(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return Vi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||Lr(e))return qr(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==Gr(r)?au.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=Zr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Lr(e))throw new Error("invalid uint256");return Vr(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const r=null!=e._difficulty?e._difficulty:e.difficulty,n=uu.check(t,e);return n._difficulty=null==r?null:Zr.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return uu.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&Zr.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=uu.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;Lr(r)&&(r=Zr.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),Lr(r)&&(r=Zr.from(r).toNumber()),"number"!=typeof r&&null!=t.v&&(r=(t.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),t.chainId=r}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return function(e){const t=Or(e);if(t[0]>127)return function(e){const t=Fi(e);9!==t.length&&6!==t.length&&za.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:Ja(t[0]).toNumber(),gasPrice:Ja(t[1]),gasLimit:Ja(t[2]),to:Wa(t[3]),value:Ja(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=Zr.from(t[6]).toNumber()}catch(e){return r}if(r.r=Vr(t[7],32),r.s=Vr(t[8],32),Zr.from(r.r).isZero()&&Zr.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const i=t.slice(0,6);0!==r.chainId&&(i.push(Ur(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=Yn(Bi(i));try{r.from=$a(o,{r:Ur(r.r),s:Ur(r.s),recoveryParam:n})}catch(e){}r.hash=Yn(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=Fi(e.slice(1));8!==t.length&&11!==t.length&&za.throwArgumentError("invalid component count for transaction type: 1","payload",Ur(e));const r={type:1,chainId:Ja(t[0]).toNumber(),nonce:Ja(t[1]).toNumber(),gasPrice:Ja(t[2]),gasLimit:Ja(t[3]),to:Wa(t[4]),value:Ja(t[5]),data:t[6],accessList:tu(t[7])};return 8===t.length||(r.hash=Yn(e),su(r,t.slice(8),iu)),r}(t);case 2:return function(e){const t=Fi(e.slice(1));9!==t.length&&12!==t.length&&za.throwArgumentError("invalid component count for transaction type: 2","payload",Ur(e));const r=Ja(t[2]),n=Ja(t[3]),i={type:2,chainId:Ja(t[0]).toNumber(),nonce:Ja(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:Ja(t[4]),to:Wa(t[5]),value:Ja(t[6]),data:t[7],accessList:tu(t[8])};return 9===t.length||(i.hash=Yn(e),su(i,t.slice(9),nu)),i}(t)}return za.throwError(`unsupported transaction type: ${t[0]}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return uu.check(this.formats.receiptLog,e)}receipt(e){const t=uu.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=Zr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&au.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):au.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&au.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map(e=>this.topics(e)):null!=e?this.hash(e,!0):null}filter(e){return uu.check(this.formats.filter,e)}filterLog(e){return uu.check(this.formats.filterLog,e)}static check(e,t){const r={};for(const n in e)try{const i=e[n](t[n]);void 0!==i&&(r[n]=i)}catch(e){throw e.checkKey=n,e.checkValue=t[n],e}return r}static allowNull(e,t){return function(r){return null==r?t:e(r)}}static allowFalsish(e,t){return function(r){return r?e(r):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const r=[];return t.forEach(function(t){r.push(e(t))}),r}}}var lu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const cu=new Pr(na);function du(e){return null==e?"null":(32!==Gr(e)&&cu.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function hu(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map(e=>{if(Array.isArray(e)){const t={};e.forEach(e=>{t[du(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return du(e)}).join("&")}function pu(e){if("string"==typeof e){if(32===Gr(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+hu(e);if(_n.isForkEvent(e))throw cu.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+hu(e.topics||[])}throw new Error("invalid event - "+e)}function fu(){return(new Date).getTime()}function mu(e){return new Promise(t=>{setTimeout(t,e)})}const yu=["block","network","pending","poll"];class gu{constructor(e,t,r){An(this,"tag",e),An(this,"listener",t),An(this,"once",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],r=""===(n=e[2])?[]:n.split(/&/g).map(e=>{if(""===e)return[];const t=e.split("|").map(e=>"null"===e?null:e);return 1===t.length?t[0]:t});var n;const i={};return r.length>0&&(i.topics=r),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||yu.indexOf(this.tag)>=0}}const bu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function vu(e){return Vr(Zr.from(e).toHexString(),32)}function Au(e){return qn.encode(Br([e,jr(Hs(Hs(e)),0,4)]))}const wu=new RegExp("^(ipfs)://(.*)$","i"),Tu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),wu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Eu(e,t){try{return ii(Su(e,t))}catch(e){}return null}function Su(e,t){if("0x"===e)return null;const r=Zr.from(jr(e,t,t+32)).toNumber(),n=Zr.from(jr(e,r,r+32)).toNumber();return jr(e,r+32,r+32+n)}function Iu(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):cu.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function ku(e){const t=Or(e);if(t.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(t,32-t.length),r}function Pu(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Cu(e){const t=[];let r=0;for(let n=0;n<e.length;n++)t.push(null),r+=32;for(let n=0;n<e.length;n++){const i=Or(e[n]);t[n]=ku(r),t.push(ku(i.length)),t.push(Pu(i)),r+=32+32*Math.ceil(i.length/32)}return Hr(t)}class Nu{constructor(e,t,r,n){An(this,"provider",e),An(this,"name",r),An(this,"address",e.formatter.address(t)),An(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>Zr.from(e).eq(1)).catch(e=>{if(e.code===Pr.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return lu(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:Hr([e,xi(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=Hr(["0x9061b923",Cu([(i=this.name,Ur(Br(Ni(i).map(e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"),r.data])]));try{let e=yield this.provider.call(r);return Or(e).length%32==4&&cu.throwError("resolver threw error",Pr.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=Su(e,0)),e}catch(e){if(e.code===Pr.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return lu(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?Su(r,0):null})}_getAddress(e,t){const r=bu[String(e)];if(null==r&&cu.throwError(`unsupported coin type: ${e}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Or(t);if(null!=r.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Au(Br([[r.p2pkh],"0x"+e[2]]))}}if(null!=r.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return Au(Br([[r.p2sh],"0x"+e[2]]))}}if(null!=r.prefix){const e=n[1];let t=n[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&n.length===2+e&&e>=1&&e<=75){const e=function(e){var t=function(e,t,r,n){for(var i=0,o=0,s=[],a=0;a<e.length;++a)for(i=i<<8|e[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(e);if(Array.isArray(t))return t;throw new Error(t)}(n.slice(2));return e.unshift(t),function(e,t,r){if(e.length+7+t.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(e){for(var t=1,r=0;r<e.length;++r){var n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=ra(t)^n>>5}for(t=ra(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=ra(t)^31&i}return t}(e=e.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=e+"1",o=0;o<t.length;++o){var s=t[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=ra(n)^s,i+=$s.charAt(s)}for(o=0;o<6;++o)n=ra(n);for(n^=1,o=0;o<6;++o)i+=$s.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return lu(this,void 0,void 0,function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||"0x0000000000000000000000000000000000000000000000000000000000000000"===e?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Pr.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",vu(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&cu.throwError("invalid or unsupported coin data",Pr.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return lu(this,void 0,void 0,function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let r=0;r<Tu.length;r++){const n=t.match(Tu[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Iu(t)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const o=this._resolvedAddress||(yield this.getAddress()),s=(n[2]||"").split("/");if(2!==s.length)return null;const a=yield this.provider.formatter.address(s[0]),u=Vr(Zr.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:Hr(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=Zr.from(yield this.provider.call({to:a,data:Hr(["0x00fdd58e",Vr(o,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const l={to:this.provider.formatter.address(s[0]),data:Hr([r,u])};let c=Eu(yield this.provider.call(l),0);if(null==c)return null;e.push({type:"metadata-url-base",content:c}),"erc1155"===i&&(c=c.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:c})),c.match(/^ipfs:/i)&&(c=Iu(c)),e.push({type:"metadata-url",content:c});const d=yield Ys(c);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let h=d.image;if("string"!=typeof h)return null;if(h.match(/^(https:\/\/|data:)/i));else{if(null==h.match(wu))return null;e.push({type:"url-ipfs",content:h}),h=Iu(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return lu(this,void 0,void 0,function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+qn.encode("0x"+t[1])}const r=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const e=parseInt(r[3],16);if(r[4].length===2*e)return"ipns://"+qn.encode("0x"+r[1])}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+jn("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return cu.throwError("invalid or unsupported content hash data",Pr.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return lu(this,void 0,void 0,function*(){let t=ni(e);t=Br([vu(64),vu(t.length),t]),t.length%32!=0&&(t=Br([t,Vr("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Ur(t));return null==r||"0x"===r?null:ii(r)})}}let xu=null,_u=1;class Ru extends Rn{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),An(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch(e=>{}),this._ready().catch(e=>{});else{const t=wn(new.target,"getNetwork")(e);t?(An(this,"_network",t),this.emit("network",t,null)):cu.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return lu(this,void 0,void 0,function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||cu.throwError("no network detected",Pr.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:An(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return Xs(()=>this._ready().then(e=>e,e=>{if(e.code!==Pr.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==xu&&(xu=new uu),xu}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in Un){const r=Un[t];if(r.chainId===e)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=Un[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=Un[e.name];if(!t)return"number"!=typeof e.chainId&&Mn.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Mn.throwArgumentError("network chainId mismatch","network",e);let r=e._defaultProvider||null;var n;return null==r&&t._defaultProvider&&(r=(n=t._defaultProvider)&&"function"==typeof n.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:r}}(null==e?"homestead":e)}ccipReadFetch(e,t,r){return lu(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=e.to.toLowerCase(),i=t.toLowerCase(),o=[];for(let e=0;e<r.length;e++){const t=r[e],s=t.replace("{sender}",n).replace("{data}",i),a=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield Ys({url:s,errorPassThrough:!0},a,(e,t)=>(e.status=t.statusCode,e));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return cu.throwError(`response not found during CCIP fetch: ${l}`,Pr.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return cu.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,Pr.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return lu(this,void 0,void 0,function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const r=yield t;if(fu()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=fu(),r=Tn({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(e=>null,e=>e)}).then(({blockNumber:e,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=fu();return(e=Zr.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}});return this._internalBlockNumber=r,r.catch(e=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return lu(this,void 0,void 0,function*(){const e=_u++,t=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(r),this.emit("poll",e,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)cu.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",cu.makeError("network block skew detected",Pr.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let e=this._emitted.block+1;e<=r;e++)this.emit("block",e);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&r-t>12&&delete this._emitted[e]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(e=>{switch(e.type){case"tx":{const r=e.hash;let n=this.getTransactionReceipt(r).then(e=>e&&null!=e.blockNumber?(this._emitted["t:"+r]=e.blockNumber,this.emit(r,e),null):null).catch(e=>{this.emit("error",e)});t.push(n);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=r-1);const n=e.filter;n.fromBlock=e._lastBlockNumber+1,n.toBlock=r;const i=n.toBlock-this._maxFilterBlockRange;i>n.fromBlock&&(n.fromBlock=i),n.fromBlock<0&&(n.fromBlock=0);const o=this.getLogs(n).then(t=>{e._inflight=!1,0!==t.length&&t.forEach(t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(n,t)})}).catch(t=>{this.emit("error",t),e._inflight=!1});t.push(o)}}}),this._lastBlockNumber=r,Promise.all(t).then(()=>{this.emit("didPoll",e)}).catch(e=>{this.emit("error",e)})}else this.emit("didPoll",e)})}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return lu(this,void 0,void 0,function*(){return cu.throwError("provider does not support network detection",Pr.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return lu(this,void 0,void 0,function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield mu(0),this._network;const r=cu.makeError("underlying network changed",Pr.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",r),r}return e})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(e=>{this._setFastBlockNumber(e)},e=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval(()=>{this.poll()},this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout(()=>{this.poll(),this._bootstrapPoll=setTimeout(()=>{this._poller||this.poll(),this._bootstrapPoll=null},this.pollingInterval)},0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const e=fu();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then(e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=fu(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return lu(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return lu(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(e=>{e()}),!1)},l=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,l),s.push(()=>{this.removeListener(e,l)}),n){let r=n.startBlock,i=null;const l=s=>lu(this,void 0,void 0,function*(){a||(yield mu(1e3),this.getTransactionCount(n.from).then(c=>lu(this,void 0,void 0,function*(){if(!a){if(c<=n.nonce)r=s;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=r-3,i<n.startBlock&&(i=n.startBlock));i<=s;){if(a)return;const r=yield this.getBlockWithTransactions(i);for(let i=0;i<r.transactions.length;i++){const s=r.transactions[i];if(s.hash===e)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,t);if(u())return;let i="replaced";return s.data===n.data&&s.to===n.to&&s.value.eq(n.value)?i="repriced":"0x"===s.data&&s.from===s.to&&s.value.isZero()&&(i="cancelled"),void o(cu.makeError("transaction was replaced",Pr.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:e,receipt:r}))}}i++}}a||this.once("block",l)}}),e=>{a||this.once("block",l)}))});if(a)return;this.once("block",l),s.push(()=>{this.removeListener("block",l)})}if("number"==typeof r&&r>0){const e=setTimeout(()=>{u()||o(cu.makeError("timeout exceeded",Pr.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return lu(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return Zr.from(e)}catch(t){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return Zr.from(n)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return Zr.from(n).toNumber()}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return Ur(n)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Tn({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>qr(e))}),i=yield this.perform("getStorageAt",n);try{return Ur(i)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==Gr(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&cu.throwError("Transaction hash mismatch from Provider.sendTransaction.",Pr.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>lu(this,void 0,void 0,function*(){let i;null==t&&(t=1),null==n&&(n=0),0!==t&&null!=r&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:r});const o=yield this._waitForTransaction(e.hash,t,n,i);return null==o&&0===t?null:(this._emitted["t:"+e.hash]=o.blockNumber,0===o.status&&cu.throwError("transaction failed",Pr.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>Ur(e)),r=this.formatter.transaction(e);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(r,e,n)}catch(e){throw e.transaction=r,e.transactionHash=r.hash,e}})}_getTransactionRequest(e){return lu(this,void 0,void 0,function*(){const t=yield e,r={};return["from","to"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?this._getAddress(e):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Zr.from(e):null))}),["type"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>null!=e?e:null))}),t.accessList&&(r.accessList=this.formatter.accessList(t.accessList)),["data"].forEach(e=>{null!=t[e]&&(r[e]=Promise.resolve(t[e]).then(e=>e?Ur(e):null))}),this.formatter.transactionRequest(yield Tn(r))})}_getFilter(e){return lu(this,void 0,void 0,function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach(r=>{null!=e[r]&&(t[r]=e[r])}),["fromBlock","toBlock"].forEach(r=>{null!=e[r]&&(t[r]=this._getBlockTag(e[r]))}),this.formatter.filter(yield Tn(t))})}_call(e,t,r){return lu(this,void 0,void 0,function*(){r>=10&&cu.throwError("CCIP read exceeded maximum redirections",Pr.errors.SERVER_ERROR,{redirects:r,transaction:e});const n=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(r>=0&&"latest"===t&&null!=n&&"0x556f1830"===i.substring(0,10)&&Gr(i)%32==4)try{const o=jr(i,4),s=jr(o,0,32);Zr.from(s).eq(n)||cu.throwError("CCIP Read sender did not match",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=Zr.from(jr(o,32,64)).toNumber(),l=Zr.from(jr(o,u,u+32)).toNumber(),c=jr(o,u+32);for(let t=0;t<l;t++){const r=Eu(c,32*t);null==r&&cu.throwError("CCIP Read contained corrupt URL string",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=Su(o,64);Zr.from(jr(o,100,128)).isZero()||cu.throwError("CCIP Read callback selector included junk",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=jr(o,96,100),p=Su(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&cu.throwError("CCIP Read disabled or provided no URLs",Pr.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:Hr([h,Cu([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===Pr.errors.SERVER_ERROR)throw e}try{return Ur(i)}catch(r){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Tn({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Tn({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return Zr.from(r)}catch(e){return cu.throwError("bad result from backend",Pr.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return lu(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&cu.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&cu.throwError("ENS name not configured",Pr.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(Lr(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),Lr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){cu.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return Xs(()=>lu(this,void 0,void 0,function*(){const e=yield this.perform("getBlock",n);if(null==e)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(t){let t=null;for(let r=0;r<e.transactions.length;r++){const n=e.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}}const r=this.formatter.blockWithTransactions(e);return r.transactions=r.transactions.map(e=>this._wrapTransaction(e)),r}return this.formatter.block(e)}),{oncePoll:this})})}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Xs(()=>lu(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return Xs(()=>lu(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",t);if(null==r)return null==this._emitted["t:"+e]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;e<=0&&(e=1),n.confirmations=e}return n}),{oncePoll:this})})}getLogs(e){return lu(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Tn({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),uu.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return lu(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return lu(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&cu.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)})}getResolver(e){return lu(this,void 0,void 0,function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const r=yield this._getResolver(t,"getResolver");if(null!=r){const n=new Nu(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return lu(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||cu.throwError("network does not support ENS",Pr.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+xi(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return lu(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Lr(e))throw t}"string"!=typeof e&&cu.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return lu(this,void 0,void 0,function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(t,"lookupAddress");if(null==r)return null;const n=Eu(yield this.call({to:r,data:"0x691f3431"+xi(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return lu(this,void 0,void 0,function*(){let t=null;if(Lr(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Nu(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Pr.errors.CALL_EXCEPTION)throw e}try{const e=Eu(yield this.call({to:n,data:"0x691f3431"+xi(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Pr.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const r=yield t.getAvatar();return null==r?null:r.url})}perform(e,t){return cu.throwError(e+" not implemented",Pr.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_stopEvent(e){this.polling=this._events.filter(e=>e.pollable()).length>0}_addEventListener(e,t,r){const n=new gu(pu(e),t,r);return this._events.push(n),this._startEvent(n),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let r=!1,n=[],i=pu(e);return this._events=this._events.filter(e=>e.tag!==i||(setTimeout(()=>{e.listener.apply(this,t)},0),r=!0,!e.once||(n.push(e),!1))),n.forEach(e=>{this._stopEvent(e)}),r}listenerCount(e){if(!e)return this._events.length;let t=pu(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=pu(e);return this._events.filter(e=>e.tag===t).map(e=>e.listener)}off(e,t){if(null==t)return this.removeAllListeners(e);const r=[];let n=!1,i=pu(e);return this._events=this._events.filter(e=>e.tag!==i||e.listener!=t||!!n||(n=!0,r.push(e),!1)),r.forEach(e=>{this._stopEvent(e)}),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const r=pu(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Mu=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Ou=new Pr(na),Bu=["call","estimateGas"];function Du(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=Lr(e.data)?e.data:null;if(!t||r)return{message:e.message,data:r}}if("object"==typeof e){for(const r in e){const n=Du(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return Du(JSON.parse(e),t)}catch(e){}return null}function Lu(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=Du(t,!0);if(e)return e.data;Ou.throwError("missing revert data in call exception; Transaction reverted without a reason string",Pr.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=Du(t.body,!1);null==r&&(r=Du(t,!1)),r&&Ou.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pr.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===Pr.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Ou.throwError("insufficient funds for intrinsic transaction cost",Pr.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Ou.throwError("nonce has already been used",Pr.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Ou.throwError("replacement fee too low",Pr.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Ou.throwError("legacy pre-eip-155 transactions not supported",Pr.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),Bu.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Ou.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pr.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function Fu(e){return new Promise(function(t){setTimeout(t,e)})}function Uu(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function Gu(e){return e?e.toLowerCase():e}const ju={};class Hu extends a{constructor(e,t,r){if(super(),e!==ju)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");An(this,"provider",t),null==r&&(r=0),"string"==typeof r?(An(this,"_address",this.provider.formatter.address(r)),An(this,"_index",null)):"number"==typeof r?(An(this,"_index",r),An(this,"_address",null)):Ou.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Ou.throwError("cannot alter JSON-RPC Signer connection",Pr.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new qu(ju,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(e=>(e.length<=this._index&&Ou.throwError("unknown account #"+this._index,Pr.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=Sn(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=Sn(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Mu(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Ou.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),Tn({tx:Tn(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Ou.throwArgumentError("from address mismatch","transaction",e):t.from=r;const n=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(e=>e,e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&Ou.throwError("user rejected transaction",Pr.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),Lu("sendTransaction",e,n)))})}signTransaction(e){return Ou.throwError("signing transactions is unsupported",Pr.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Mu(this,void 0,void 0,function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(e);try{return yield Xs(()=>Mu(this,void 0,void 0,function*(){const e=yield this.provider.getTransaction(r);if(null!==e)return this.provider._wrapTransaction(e,r,t)}),{oncePoll:this.provider})}catch(e){throw e.transactionHash=r,e}})}signMessage(e){return Mu(this,void 0,void 0,function*(){const t="string"==typeof e?ni(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Ur(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Pr.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return Mu(this,void 0,void 0,function*(){const t="string"==typeof e?ni(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Ur(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Pr.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return Mu(this,void 0,void 0,function*(){const n=yield oo.resolveNames(e,t,r,e=>this.provider.resolveName(e)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(oo.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Ou.throwError("user rejected signing",Pr.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return Mu(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class qu extends Hu{sendTransaction(e){return this.sendUncheckedTransaction(e).then(e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)}))}}const Vu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class zu extends Ru{constructor(e,t){let r=t;null==r&&(r=new Promise((e,t)=>{setTimeout(()=>{this.detectNetwork().then(t=>{e(t)},e=>{t(e)})},0)})),super(r),e||(e=wn(this.constructor,"defaultUrl")()),An(this,"connection",Object.freeze("string"==typeof e?{url:e}:Sn(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout(()=>{this._cache.detectNetwork=null},0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return Mu(this,void 0,void 0,function*(){yield Fu(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=wn(this.constructor,"getNetwork");try{return t(Zr.from(e).toNumber())}catch(t){return Ou.throwError("could not detect network",Pr.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Ou.throwError("could not detect network",Pr.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new Hu(ju,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(e=>e.map(e=>this.formatter.address(e)))}send(e,t){const r={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Cn(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=Ys(this.connection,JSON.stringify(r),Uu).then(e=>(this.emit("debug",{action:"response",request:r,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:r,provider:this}),e});return n&&(this._cache[e]=i,setTimeout(()=>{this._cache[e]=null},0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Gu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Gu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[Gu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Gu(t.address),Vr(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[wn(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[wn(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=Gu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Mu(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&Zr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=Sn(t)).transaction=Sn(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Ou.throwError(e+" not implemented",Pr.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return Lu(e,r,t)}})}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then(function(r){return function n(){e.send("eth_getFilterChanges",[r]).then(function(r){if(e._pendingFilter!=t)return null;let n=Promise.resolve();return r.forEach(function(t){e._emitted["t:"+t.toLowerCase()]="pending",n=n.then(function(){return e.getTransaction(t).then(function(t){return e.emit("pending",t),null})})}),n.then(function(){return Fu(1e3)})}).then(function(){if(e._pendingFilter==t)return setTimeout(function(){n()},0),null;e.send("eth_uninstallFilter",[r])}).catch(e=>{})}(),r}).catch(e=>{})}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const r=Sn(Vu);if(t)for(const e in t)t[e]&&(r[e]=!0);En(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=qr(Zr.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=Ur(e[t]))}),e.accessList&&(n.accessList=tu(e.accessList)),n}}const Ku=new Pr("random/5.8.0"),Wu=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let Ju=Wu.crypto||Wu.msCrypto;function Qu(e){(e<=0||e>1024||e%1||e!=e)&&Ku.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return Ju.getRandomValues(t),Or(t)}Ju&&Ju.getRandomValues||(Ku.warn("WARNING: Missing strong random number source"),Ju={getRandomValues:function(e){return Ku.throwError("no secure random source avaialble",Pr.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const Yu=new Pr(na);let Xu=1;function $u(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:Xu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:Cn(i),provider:this}),t(i,(t,o)=>{if(t)return this.emit("debug",{action:"response",fetcher:r,error:t,request:i,provider:this}),n(t);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const e=new Error(o.error.message);return e.code=o.error.code,e.data=o.error.data,n(e)}e(o.result)})})}}class Zu extends zu{constructor(e,t){null==e&&Yu.throwArgumentError("missing provider","provider",e);let r=null,n=null,i=null;"function"==typeof e?(r="unknown:",n=e):(r=e.host||e.path||"",!r&&e.isMetaMask&&(r="metamask"),i=e,e.request?(""===r&&(r="eip-1193:"),n=function(e){return function(t,r){null==r&&(r=[]);const n={method:t,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Cn(n),provider:this}),e.request(n).then(e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:e,provider:this}),e})}}(e)):e.sendAsync?n=$u(0,e.sendAsync.bind(e)):e.send?n=$u(0,e.send.bind(e)):Yu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),An(this,"jsonRpcFetchFunc",n),An(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function el(e,t,r,n,i){let o;e=Or(e),t=Or(t);let s=1;const a=new Uint8Array(n),u=new Uint8Array(t.length+4);let l,c;u.set(t);for(let d=1;d<=s;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let h=Or(qs(i,e,u));o||(o=h.length,c=new Uint8Array(o),s=Math.ceil(n/o),l=n-(s-1)*o),c.set(h);for(let t=1;t<r;t++){h=Or(qs(i,e,h));for(let e=0;e<o;e++)c[e]^=h[e]}const p=(d-1)*o,f=d===s?l:o;a.set(Or(c).slice(0,f),p)}return Ur(a)}new Pr(na);const tl=new Pr("wordlists/5.8.0");class rl{constructor(e){tl.checkAbstract(new.target,rl),An(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let r=0;r<2048;r++){const n=e.getWord(r);if(r!==e.getWordIndex(n))return"0x";t.push(n)}return oi(t.join("\n")+"\n")}static register(e,t){}}const nl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let il=null;function ol(e){if(null==il&&(il=nl.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==rl.check(e)))throw il=null,new Error("BIP39 Wordlist for en (English) FAILED")}const sl=new class extends rl{constructor(){super("en")}getWord(e){return ol(this),il[e]}getWordIndex(e){return ol(this),il.indexOf(e)}};rl.register(sl);const al={en:sl},ul=new Pr("hdnode/5.8.0"),ll=Zr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),cl=ni("Bitcoin seed"),dl=2147483648;function hl(e){return(1<<e)-1<<8-e}function pl(e){return Vr(Ur(e),32)}function fl(e){return qn.encode(Br([e,jr(Hs(Hs(e)),0,4)]))}function ml(e){if(null==e)return al.en;if("string"==typeof e){const t=al[e];return null==t&&ul.throwArgumentError("unknown locale","wordlist",e),t}return e}const yl={},gl="m/44'/60'/0'/0/0";class bl{constructor(e,t,r,n,i,o,s,a){if(e!==yl)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new qa(t);An(this,"privateKey",e.privateKey),An(this,"publicKey",e.compressedPublicKey)}else An(this,"privateKey",null),An(this,"publicKey",Ur(r));var u;An(this,"parentFingerprint",n),An(this,"fingerprint",jr((u=Hs(this.publicKey),"0x"+Gs.ripemd160().update(Or(u)).digest("hex")),0,4)),An(this,"address",Xa(this.publicKey)),An(this,"chainCode",i),An(this,"index",o),An(this,"depth",s),null==a?(An(this,"mnemonic",null),An(this,"path",null)):"string"==typeof a?(An(this,"mnemonic",null),An(this,"path",a)):(An(this,"mnemonic",a),An(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return fl(Br([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Ur(this.depth),this.parentFingerprint,Vr(Ur(this.index),4),this.chainCode,null!=this.privateKey?Br(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new bl(yl,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const r=new Uint8Array(37);if(e&dl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Or(this.privateKey),1),t&&(t+="'")}else r.set(Or(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Or(qs(Fs.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=pl(Zr.from(i).add(this.privateKey).mod(ll)):a=new qa(Ur(i))._addPoint(this.publicKey);let u=t;const l=this.mnemonic;return l&&(u=Object.freeze({phrase:l.phrase,path:t,locale:l.locale||"en"})),new bl(yl,s,a,this.fingerprint,pl(o),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let r=this;for(let e=0;e<t.length;e++){const n=t[e];if(n.match(/^[0-9]+'$/)){const e=parseInt(n.substring(0,n.length-1));if(e>=dl)throw new Error("invalid path index - "+n);r=r._derive(dl+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=dl)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Or(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Or(qs(Fs.sha512,cl,r));return new bl(yl,pl(n.slice(0,32)),null,"0x00000000",pl(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=Al(vl(e,r=ml(r)),r),bl._fromSeed(function(e,t){t||(t="");const r=ni("mnemonic"+t,$n.NFKD);return el(ni(e,$n.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return bl._fromSeed(e,null)}static fromExtendedKey(e){const t=qn.decode(e);82===t.length&&fl(t.slice(0,78))===e||ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=Ur(t.slice(5,9)),i=parseInt(Ur(t.slice(9,13)).substring(2),16),o=Ur(t.slice(13,45)),s=t.slice(45,78);switch(Ur(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new bl(yl,null,Ur(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new bl(yl,Ur(s.slice(1)),null,n,o,i,r,null)}return ul.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function vl(e,t){t=ml(t),ul.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Or(new Uint8Array(Math.ceil(11*r.length/8)));let i=0;for(let e=0;e<r.length;e++){let o=t.getWordIndex(r[e].normalize("NFKD"));if(-1===o)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)o&1<<10-e&&(n[i>>3]|=1<<7-i%8),i++}const o=32*r.length/3,s=hl(r.length/3);if((Or(Hs(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return Ur(n.slice(0,o/8))}function Al(e,t){if(t=ml(t),(e=Or(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const r=[0];let n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&(1<<8-n)-1),n+=3);const i=e.length/4,o=Or(Hs(e))[0]&hl(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var wl=mr(function(e,t){!function(t){function r(e){return parseInt(e)===e}function n(e){if(!r(e.length))return!1;for(var t=0;t<e.length;t++)if(!r(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(r(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function o(e){return new Uint8Array(e)}function s(e,t,r,n,i){null==n&&null==i||(e=e.slice?e.slice(n,i):Array.prototype.slice.call(e,n,i)),t.set(e,r)}var a,u={toBytes:function(e){var t=[],r=0;for(e=encodeURI(e);r<e.length;){var n=e.charCodeAt(r++);37===n?(t.push(parseInt(e.substr(r,2),16)),r+=2):t.push(n)}return i(t)},fromBytes:function(e){for(var t=[],r=0;r<e.length;){var n=e[r];n<128?(t.push(String.fromCharCode(n)),r++):n>191&&n<224?(t.push(String.fromCharCode((31&n)<<6|63&e[r+1])),r+=2):(t.push(String.fromCharCode((15&n)<<12|(63&e[r+1])<<6|63&e[r+2])),r+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},fromBytes:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];t.push(a[(240&n)>>4]+a[15&n])}return t.join("")}}),c={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],h=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],A=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],T=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],S=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function k(e){for(var t=[],r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}var P=function(e){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};P.prototype._prepare=function(){var e=c[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var r,n=4*(e+1),i=this.key.length/4,o=k(this.key);for(t=0;t<i;t++)this._Ke[r=t>>2][t%4]=o[t],this._Kd[e-r][t%4]=o[t];for(var s,a=0,u=i;u<n;){if(o[0]^=h[(s=o[i-1])>>16&255]<<24^h[s>>8&255]<<16^h[255&s]<<8^h[s>>24&255]^d[a]<<24,a+=1,8!=i)for(t=1;t<i;t++)o[t]^=o[t-1];else{for(t=1;t<i/2;t++)o[t]^=o[t-1];for(o[i/2]^=h[255&(s=o[i/2-1])]^h[s>>8&255]<<8^h[s>>16&255]<<16^h[s>>24&255]<<24,t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(t=0;t<i&&u<n;)this._Ke[l=u>>2][p=u%4]=o[t],this._Kd[e-l][p]=o[t++],u++}for(var l=1;l<e;l++)for(var p=0;p<4;p++)this._Kd[l][p]=T[(s=this._Kd[l][p])>>24&255]^E[s>>16&255]^S[s>>8&255]^I[255&s]},P.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Ke[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=f[n[i]>>24&255]^m[n[(i+1)%4]>>16&255]^y[n[(i+2)%4]>>8&255]^g[255&n[(i+3)%4]]^this._Ke[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(h[n[i]>>24&255]^(a=this._Ke[t][i])>>24),u[4*i+1]=255&(h[n[(i+1)%4]>>16&255]^a>>16),u[4*i+2]=255&(h[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(h[255&n[(i+3)%4]]^a);return u},P.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],n=k(e),i=0;i<4;i++)n[i]^=this._Kd[0][i];for(var s=1;s<t;s++){for(i=0;i<4;i++)r[i]=b[n[i]>>24&255]^v[n[(i+3)%4]>>16&255]^A[n[(i+2)%4]>>8&255]^w[255&n[(i+1)%4]]^this._Kd[s][i];n=r.slice()}var a,u=o(16);for(i=0;i<4;i++)u[4*i]=255&(p[n[i]>>24&255]^(a=this._Kd[t][i])>>24),u[4*i+1]=255&(p[n[(i+3)%4]>>16&255]^a>>16),u[4*i+2]=255&(p[n[(i+2)%4]>>8&255]^a>>8),u[4*i+3]=255&(p[255&n[(i+1)%4]]^a);return u};var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new P(e)};C.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.encrypt(r),t,n);return t},C.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16)s(e,r,0,n,n+16),s(r=this._aes.decrypt(r),t,n);return t};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastCipherblock=i(t,!0),this._aes=new P(e)};N.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16);for(var a=0;a<16;a++)r[a]^=this._lastCipherblock[a];this._lastCipherblock=this._aes.encrypt(r),s(this._lastCipherblock,t,n)}return t},N.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=o(e.length),r=o(16),n=0;n<e.length;n+=16){s(e,r,0,n,n+16),r=this._aes.decrypt(r);for(var a=0;a<16;a++)t[n+a]=r[a]^this._lastCipherblock[a];s(e,this._lastCipherblock,0,n,n+16)}return t};var x=function(e,t,r){if(!(this instanceof x))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=o(16);r||(r=1),this.segmentSize=r,this._shiftRegister=i(t,!0),this._aes=new P(e)};x.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(r,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r},x.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,r=i(e,!0),n=0;n<r.length;n+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var o=0;o<this.segmentSize;o++)r[n+o]^=t[o];s(this._shiftRegister,this._shiftRegister,0,this.segmentSize),s(e,this._shiftRegister,16-this.segmentSize,n,n+this.segmentSize)}return r};var _=function(e,t){if(!(this instanceof _))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=o(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new P(e)};_.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[r]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},_.prototype.decrypt=_.prototype.encrypt;var R=function(e){if(!(this instanceof R))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=o(16),this.setValue(e)):this.setBytes(e)};R.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},R.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},R.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var M=function(e,t){if(!(this instanceof M))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof R||(t=new R(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new P(e)};M.prototype.encrypt=function(e){for(var t=i(e,!0),r=0;r<t.length;r++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[r]^=this._remainingCounter[this._remainingCounterIndex++];return t},M.prototype.decrypt=M.prototype.encrypt,e.exports={AES:P,Counter:R,ModeOfOperation:{ecb:C,cbc:N,cfb:x,ofb:_,ctr:M},utils:{hex:l,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,r=o(e.length+t);s(e,r);for(var n=e.length;n<r.length;n++)r[n]=t;return r},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var r=e.length-t,n=0;n<t;n++)if(e[r+n]!==t)throw new Error("PKCS#7 invalid padding byte");var a=o(r);return s(e,a,0,0,r),a}}},_arrayTest:{coerceArray:i,createArray:o,copyArray:s}}}()});const Tl="json-wallets/5.8.0";function El(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Or(e)}function Sl(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Il(e){return"string"==typeof e?ni(e,$n.NFKC):Or(e)}function kl(e,t){let r=e;const n=t.toLowerCase().split("/");for(let e=0;e<n.length;e++){let t=null;for(const i in r)if(i.toLowerCase()===n[e]){t=r[i];break}if(null===t)return null;r=t}return r}function Pl(e){const t=Or(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=Ur(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Cl=new Pr(Tl);class Nl extends Nn{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function xl(e,t){const r=JSON.parse(e);t=Il(t);const n=qi(kl(r,"ethaddr")),i=El(kl(r,"encseed"));i&&i.length%16==0||Cl.throwArgumentError("invalid encseed","json",e);const o=Or(el(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new wl.ModeOfOperation.cbc(o,s),l=wl.padding.pkcs7.strip(Or(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=Yn(ni(c));return new Nl({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function _l(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Rl(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}var Ml=mr(function(e,t){!function(t){const r=2147483647;function n(e){const t=new Uint32Array([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]);let r=1779033703,n=3144134277,i=1013904242,o=2773480762,s=1359893119,a=2600822924,u=528734635,l=1541459225;const c=new Uint32Array(64);function d(e){let d=0,h=e.length;for(;h>=64;){let p,f,m,y,g,b=r,v=n,A=i,w=o,T=s,E=a,S=u,I=l;for(f=0;f<16;f++)m=d+4*f,c[f]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(f=16;f<64;f++)p=c[f-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=c[f-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,c[f]=(y+c[f-7]|0)+(g+c[f-16]|0)|0;for(f=0;f<64;f++)y=(((T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7))+(T&E^~T&S)|0)+(I+(t[f]+c[f]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&A^v&A)|0,I=S,S=E,E=T,T=w+y|0,w=A,A=v,v=b,b=y+g|0;r=r+b|0,n=n+v|0,i=i+A|0,o=o+w|0,s=s+T|0,a=a+E|0,u=u+S|0,l=l+I|0,d+=64,h-=64}}d(e);let h,p=e.length%64,f=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),h=p+1;h<y;h++)g.push(0);return g.push(f>>>24&255),g.push(f>>>16&255),g.push(f>>>8&255),g.push(f>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);const i=64+t.length+4,o=new Array(i),s=new Array(64);let a,u=[];for(a=0;a<64;a++)o[a]=54;for(a=0;a<e.length;a++)o[a]^=e[a];for(a=0;a<t.length;a++)o[64+a]=t[a];for(a=i-4;a<i;a++)o[a]=0;for(a=0;a<64;a++)s[a]=92;for(a=0;a<e.length;a++)s[a]^=e[a];function l(){for(let e=i-1;e>=i-4;e--){if(o[e]++,o[e]<=255)return;o[e]=0}}for(;r>=32;)l(),u=u.concat(n(s.concat(n(o)))),r-=32;return r>0&&(l(),u=u.concat(n(s.concat(n(o))).slice(0,r))),u}function o(e,t,r,n,i){let o;for(l(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),a(i,n),l(i,0,e,t+16*o,16);for(o=0;o<r;o++)l(e,t+2*o*16,e,16*o,16);for(o=0;o<r;o++)l(e,t+16*(2*o+1),e,16*(o+r),16)}function s(e,t){return e<<t|e>>>32-t}function a(e,t){l(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=s(t[0]+t[12],7),t[8]^=s(t[4]+t[0],9),t[12]^=s(t[8]+t[4],13),t[0]^=s(t[12]+t[8],18),t[9]^=s(t[5]+t[1],7),t[13]^=s(t[9]+t[5],9),t[1]^=s(t[13]+t[9],13),t[5]^=s(t[1]+t[13],18),t[14]^=s(t[10]+t[6],7),t[2]^=s(t[14]+t[10],9),t[6]^=s(t[2]+t[14],13),t[10]^=s(t[6]+t[2],18),t[3]^=s(t[15]+t[11],7),t[7]^=s(t[3]+t[15],9),t[11]^=s(t[7]+t[3],13),t[15]^=s(t[11]+t[7],18),t[1]^=s(t[0]+t[3],7),t[2]^=s(t[1]+t[0],9),t[3]^=s(t[2]+t[1],13),t[0]^=s(t[3]+t[2],18),t[6]^=s(t[5]+t[4],7),t[7]^=s(t[6]+t[5],9),t[4]^=s(t[7]+t[6],13),t[5]^=s(t[4]+t[7],18),t[11]^=s(t[10]+t[9],7),t[8]^=s(t[11]+t[10],9),t[9]^=s(t[8]+t[11],13),t[10]^=s(t[9]+t[8],18),t[12]^=s(t[15]+t[14],7),t[13]^=s(t[12]+t[15],9),t[14]^=s(t[13]+t[12],13),t[15]^=s(t[14]+t[13],18);for(let r=0;r<16;++r)e[r]+=t[r]}function u(e,t,r,n){for(let i=0;i<n;i++)r[i]^=e[t+i]}function l(e,t,r,n,i){for(;i--;)r[n++]=e[t++]}function c(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const r=e[t];if("number"!=typeof r||r%1||r<0||r>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function h(e,t,n,s,a,h,p){if(n=d(n,"N"),s=d(s,"r"),a=d(a,"p"),h=d(h,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>r/128/s)throw new Error("N too large");if(s>r/128/a)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let f=i(e,t,128*a*s);const m=new Uint32Array(32*a*s);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&f[t+3])<<24|(255&f[t+2])<<16|(255&f[t+1])<<8|(255&f[t+0])<<0}const y=new Uint32Array(64*s),g=new Uint32Array(32*s*n),b=32*s,v=new Uint32Array(16),A=new Uint32Array(16),w=a*n*2;let T,E,S=0,I=null,k=!1,P=0,C=0;const N=p?parseInt(1e3/s):4294967295,x="undefined"!=typeof setImmediate?setImmediate:setTimeout,_=function(){if(k)return p(new Error("cancelled"),S/w);let t;switch(P){case 0:E=32*C*s,l(m,E,y,0,b),P=1,T=0;case 1:t=n-T,t>N&&(t=N);for(let e=0;e<t;e++)l(y,0,g,(T+e)*b,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(k=p(null,S/w),k)break;I=e}}if(T<n)break;T=0,P=2;case 2:t=n-T,t>N&&(t=N);for(let e=0;e<t;e++)u(g,(y[16*(2*s-1)]&n-1)*b,y,b),o(y,b,s,v,A);if(T+=t,S+=t,p){const e=parseInt(1e3*S/w);if(e!==I){if(k=p(null,S/w),k)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),C++,C<a){P=0;break}f=[];for(let e=0;e<m.length;e++)f.push(m[e]>>0&255),f.push(m[e]>>8&255),f.push(m[e]>>16&255),f.push(m[e]>>24&255);const r=i(e,f,h);return p&&p(null,1,r),r}p&&x(_)};if(!p)for(;;){const e=_();if(null!=e)return e}_()}const p={scrypt:function(e,t,r,n,i,o,s){return new Promise(function(a,u){let l=0;s&&s(0),h(e,t,r,n,i,o,function(e,t,r){if(e)u(e);else if(r)s&&1!==l&&s(1),a(new Uint8Array(r));else if(s&&t!==l)return l=t,s(t)})})},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(h(e,t,r,n,i,o))}};e.exports=p}()}),Ol=Ml;const Bl=new Pr(Tl);function Dl(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Ll extends Nn{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Fl(e,t){const r=El(kl(e,"crypto/ciphertext"));if(Ur(Yn(Br([t.slice(16,32),r]))).substring(2)!==kl(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===kl(e,"crypto/cipher")){const n=El(kl(e,"crypto/cipherparams/iv")),i=new wl.Counter(n);return Or(new wl.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||Bl.throwError("unsupported cipher",Pr.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=Xa(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),qi(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:Ur(n)};if("0.1"===kl(e,"x-ethers/version")){const t=El(kl(e,"x-ethers/mnemonicCiphertext")),r=El(kl(e,"x-ethers/mnemonicCounter")),n=new wl.Counter(r),o=new wl.ModeOfOperation.ctr(i,n),a=kl(e,"x-ethers/path")||gl,u=kl(e,"x-ethers/locale")||"en",l=Or(o.decrypt(t));try{const e=Al(l,u),t=bl.fromMnemonic(e,null,u).derivePath(a);if(t.privateKey!=s.privateKey)throw new Error("mnemonic mismatch");s.mnemonic=t.mnemonic}catch(e){if(e.code!==Pr.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Ll(s)}function Ul(e,t,r,n,i){return Or(el(e,t,r,n,i))}function Gl(e,t,r,n,i){return Promise.resolve(Ul(e,t,r,n,i))}function jl(e,t,r,n,i){const o=Il(t),s=kl(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return Bl.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=El(kl(e,"crypto/kdfparams/salt")),a=parseInt(kl(e,"crypto/kdfparams/n")),u=parseInt(kl(e,"crypto/kdfparams/r")),l=parseInt(kl(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(kl(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=El(kl(e,"crypto/kdfparams/salt"));let i=null;const s=kl(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(kl(e,"crypto/kdfparams/c")),u=parseInt(kl(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return Bl.throwArgumentError("unsupported key-derivation function","kdf",s)}var Hl=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const ql=new Pr("wallet/5.8.0");class Vl extends a{constructor(e,t){if(super(),null!=(r=e)&&Lr(r.privateKey,32)&&null!=r.address){const t=new qa(e.privateKey);if(An(this,"_signingKey",()=>t),An(this,"address",Xa(this.publicKey)),this.address!==qi(e.address)&&ql.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;An(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||gl,locale:t.locale||"en"}));const r=this.mnemonic;Xa(bl.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&ql.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else An(this,"_mnemonic",()=>null)}else{if(qa.isSigningKey(e))"secp256k1"!==e.curve&&ql.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),An(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new qa(e);An(this,"_signingKey",()=>t)}An(this,"_mnemonic",()=>null),An(this,"address",Xa(this.publicKey))}var r;t&&!Rn.isProvider(t)&&ql.throwArgumentError("invalid provider","provider",t),An(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Vl(this,e)}signTransaction(e){return Tn(e).then(t=>{null!=t.from&&(qi(t.from)!==this.address&&ql.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(Yn(ou(t)));return ou(t,r)})}signMessage(e){return Hl(this,void 0,void 0,function*(){return Kr(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=ni(e)),Yn(Br([ni("Ethereum Signed Message:\n"),ni(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return Hl(this,void 0,void 0,function*(){const n=yield oo.resolveNames(e,t,r,e=>(null==this.provider&&ql.throwError("cannot resolve ENS names without a provider",Pr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return Kr(this._signingKey().signDigest(oo.hash(n.domain,t,n.value)))})}encrypt(e,t,r){if("function"!=typeof t||r||(r=t,t={}),r&&"function"!=typeof r)throw new Error("invalid callback");return t||(t={}),function(e,t,r,n){try{if(qi(e.address)!==Xa(e.privateKey))throw new Error("address/privateKey mismatch");if(Dl(e)){const t=e.mnemonic;if(bl.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||gl).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof r||n||(n=r,r={}),r||(r={});const i=Or(e.privateKey),o=Il(t);let s=null,a=null,u=null;if(Dl(e)){const t=e.mnemonic;s=Or(vl(t.phrase,t.locale||"en")),a=t.path||gl,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Or(r.salt):Qu(32);let d=null;if(r.iv){if(d=Or(r.iv),16!==d.length)throw new Error("invalid iv")}else d=Qu(16);let h=null;if(r.uuid){if(h=Or(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=Qu(16);let p=1<<17,f=8,m=1;return r.scrypt&&(r.scrypt.N&&(p=r.scrypt.N),r.scrypt.r&&(f=r.scrypt.r),r.scrypt.p&&(m=r.scrypt.p)),Ol.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Or(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new wl.Counter(d),g=Or(new wl.ModeOfOperation.ctr(r,y).encrypt(i)),b=Yn(Br([n,g])),v={address:e.address.substring(2).toLowerCase(),id:Pl(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Ur(d).substring(2)},ciphertext:Ur(g).substring(2),kdf:"scrypt",kdfparams:{salt:Ur(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=Qu(16),t=new wl.Counter(e),r=Or(new wl.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+Sl(n.getUTCMonth()+1,2)+"-"+Sl(n.getUTCDate(),2)+"T"+Sl(n.getUTCHours(),2)+"-"+Sl(n.getUTCMinutes(),2)+"-"+Sl(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Ur(e).substring(2),mnemonicCiphertext:Ur(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=Qu(16);e||(e={}),e.extraEntropy&&(t=Or(jr(Yn(Br([t,e.extraEntropy])),0,16)));const r=Al(t,e.locale);return Vl.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(_l(e)){r&&r(0);const n=xl(e,t);return r&&r(1),Promise.resolve(n)}return Rl(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return Fl(n,yield jl(n,t,Gl,Ol.scrypt,r))},new((i=void 0)||(i=Promise))(function(e,t){function r(e){try{a(o.next(e))}catch(e){t(e)}}function s(e){try{a(o.throw(e))}catch(e){t(e)}}function a(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(r,s)}a((o=o.apply(n,[])).next())});var n,i,o}(e,t,r):Promise.reject(new Error("invalid JSON wallet"))}(e,t,r).then(e=>new Vl(e))}static fromEncryptedJsonSync(e,t){return new Vl(function(e,t){if(_l(e))return xl(e,t);if(Rl(e))return function(e,t){const r=JSON.parse(e);return Fl(r,jl(r,t,Ul,Ol.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=gl),new Vl(bl.fromMnemonic(e,null,r).derivePath(t))}}function zl(e){return"string"==typeof e?new Vl(e):"request"in e||"send"in e?new Zu(e).getSigner():e}const Kl=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?w(r,t):r;return Promise.resolve(Wl(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},Wl=function(e){try{return Promise.resolve(c(e)).then(function(e){return{fullAppData:e,appDataKeccak256:d(h(e))}})}catch(e){return Promise.reject(e)}},Jl=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(Ql.generateAppDataDoc(w({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(Wl(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},Ql=new l,Yl="Order",Xl=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],$l=1e6,Zl=BigInt($l),ec=10000n;function tc(e,t){const r=e*BigInt(Math.floor(t*$l))/Zl;return r/100n+(r%100n>=50n?1n:0n)}const rc=1e4,nc=50,ic=.5;function oc(e){const{quote:t,tradeParameters:r,trader:n,isEthFlow:i}=e,{sellTokenDecimals:o,buyTokenDecimals:s}=r,{isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l}=Pt({sellDecimals:o,buyDecimals:s,orderParams:t.quote}),{feeAmount:c}=t.quote,d=function(e){const{feeAmount:t,multiplyingFactorPercent:r}=e;if(t<0n)throw new Error("Fee amount must be non-negative: "+t);if(r<0)throw new Error("multiplyingFactorPercent must be non-negative: "+r);return tc(t,r)}({feeAmount:BigInt(c),multiplyingFactorPercent:nc}),h=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,isSell:n,slippagePercent:i}=e,o=n?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(i<0)throw new Error("slippagePercent must be non-negative: "+i);return tc(o,i)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippagePercent:ic}),p=function(e){const{sellAmountBeforeNetworkCosts:t,sellAmountAfterNetworkCosts:r,slippage:n,isSell:i}=e,o=i?r:t;if(o<=0n)throw new Error("sellAmount must be greater than 0: "+o);if(n<0n)throw new Error("slippage must be non-negative: "+n);return i?Number(jt-jt*(o-n)/o)/Number(jt):Number(jt*(o+n)/o-jt)/Number(jt)}({isSell:a,sellAmountBeforeNetworkCosts:u,sellAmountAfterNetworkCosts:l,slippage:d+h}),f=function(e){const t="bigint"==typeof e?Number(e*ec):e*Number(ec);return Math.round(t)}(p);return Math.max(Math.min(f,rc),Vt(n.chainId,i))}const sc=function(e,t,r){try{const n=zl(e.signer);return Promise.resolve(ac(n,e)).then(function(i){return Promise.resolve(uc(e,i,t,r)).then(function(e){return{result:{...e.result,signer:n},orderBookApi:e.orderBookApi}})})}catch(e){return Promise.reject(e)}},ac=function(e,t){try{function r(e){return{chainId:t.chainId,appCode:t.appCode,account:e}}const n=t.owner;return Promise.resolve(n?r(n):Promise.resolve(e.getAddress()).then(r))}catch(i){return Promise.reject(i)}},uc=function(e,t,r,n){return Promise.resolve(lc(e,t,r,n)).then(function({quote:e,orderBookApi:r,tradeParameters:n,slippageBps:i,suggestedSlippageBps:o,appDataInfo:s,isEthFlow:a}){const{partnerFee:u,sellTokenDecimals:l,buyTokenDecimals:c}=n,{chainId:d,account:h}=t,p=Nt({orderParams:e.quote,slippagePercentBps:i,partnerFeeBps:Bt(u),sellDecimals:l,buyDecimals:c}),f=Wt({chainId:d,from:h,networkCostsAmount:e.quote.feeAmount,isEthFlow:a},or(n,e),s.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(Ot.getDomain(e)).then(function(e){return{domain:e,primaryType:Yl,types:{[Yl]:T,EIP712Domain:Xl},message:t}})}catch(e){return Promise.reject(e)}}(d,f)).then(function(t){return{result:{tradeParameters:n,suggestedSlippageBps:o,amountsAndCosts:p,orderToSign:f,quoteResponse:e,appDataInfo:s,orderTypedData:t},orderBookApi:r}})})},lc=function(e,t,r,n){try{const{appCode:i,chainId:o,account:s}=t,a=sr(e),u=a?cr(o,e):e,{sellToken:l,buyToken:c,amount:d,kind:h,partnerFee:p,validFor:f=Kt,slippageBps:m,env:y="prod"}=u;J(`getQuote for: Swap ${d} ${l} for ${c} on chain ${o} with ${void 0!==m?`${m} BPS`:"AUTO"} slippage`);const g=n||new ct({chainId:o,env:y}),b=u.receiver||s,v="sell"===h;J("Building app data...");const A=Vt(o,a),w=null!=m?m:A,T={slippageBps:w,orderClass:"market",appCode:i,partnerFee:p};return Promise.resolve(Jl(T,r?.appData)).then(function(n){const{appDataKeccak256:i,fullAppData:o}=n;J(`App data: appDataKeccak256=${i} fullAppData=${o}`);const h={from:s,sellToken:l,buyToken:c,receiver:b,validFor:f,appData:o,appDataHash:i,priceQuality:Et.OPTIMAL,signingScheme:It.EIP712,...a?cc:{},...v?{kind:At.SELL,sellAmountBeforeFee:d}:{kind:vt.BUY,buyAmountAfterFee:d},...r?.quoteRequest};return J("Getting quote..."),Promise.resolve(g.getQuote(h)).then(function(i){let o;function s(t){return o?t:{...c,appDataInfo:n,tradeParameters:e,slippageBps:w}}const l=oc({isEthFlow:a,quote:i,tradeParameters:u,trader:t,advancedSettings:r}),c={isEthFlow:a,quote:i,orderBookApi:g,suggestedSlippageBps:l},d=function(){if(void 0===m)return function(){if(l>A)return J(`Suggested slippage is greater than ${A} BPS (default), using the suggested slippage (${l} BPS)`),Promise.resolve(Jl({...T,slippageBps:l},r?.appData)).then(function(t){J(`App data with new suggested slippage: appDataKeccak256=${t.appDataKeccak256} fullAppData=${t.fullAppData}`);const r={...c,appDataInfo:t,tradeParameters:{...e,slippageBps:l},slippageBps:l};return o=1,r});J(`Suggested slippage is only ${l} BPS. Using the default slippage (${A} BPS)`)}()}();return d&&d.then?d.then(s):s(d)})})}catch(e){return Promise.reject(e)}},cc={signingScheme:It.EIP1271,onchainOrder:!0,verificationGasLimit:0},dc=function({orderBookApi:e,result:{signer:t,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{function s(r){const i=u?.metadata?.quote?.slippageBips,s=u?.metadata?.partnerFee;if(void 0!==i&&(a.slippageBps=i),s&&(a.partnerFee=s),o?.quoteRequest){const{receiver:e,validTo:t,sellToken:r,buyToken:n}=o.quoteRequest;e&&(a.receiver=e),t&&(a.validTo=t),r&&(a.sellToken=r),n&&(a.buyToken=n)}return pr(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=or(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(Kl(r.doc,u)).then(s):s(r))}catch(l){return Promise.reject(l)}},hc=function(e,t,r){try{return Promise.resolve(sc(e,t,r)).then(function(e){return dc(e,t)})}catch(e){return Promise.reject(e)}},pc=function(e,t,r){try{const n=t?.appData?.metadata?.quote?.slippageBips,i=t?.appData?.metadata?.partnerFee;void 0!==n&&(e.slippageBps=n),i&&(e.partnerFee=i),e.slippageBps||(e.slippageBps=0),e.env||(e.env="prod");const{appCode:o,chainId:s,sellToken:a,buyToken:u,sellAmount:l,buyAmount:c,partnerFee:d}=e;J(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=zl(e.signer),p=r||new ct({chainId:s,env:e.env});return J("Building app data..."),Promise.resolve(Jl({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return pr(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},fc=function(e,t,r,n){try{const i=nr.connect(r,e),o=Ve[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(()=>Rt)).then(function(e){return{data:s,gasLimit:"0x"+ar(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class mc{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Q(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(sc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:function(r,n){try{return Promise.resolve(n?.beforeOrderSign?.()).then(function(){return dc({...t,result:{...t.result,tradeParameters:lr({quoteParameters:t.result.tradeParameters,sellToken:e.sellToken})}},r).catch(e=>{throw n?.onOrderSignError?.(),e}).then(e=>(n?.afterOrderSign?.(),e))})}catch(e){return Promise.reject(e)}}}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(sc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(hc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(pc(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(sc(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return hr(r.orderBookApi,r.result.signer,r.result.appDataInfo,or(lr({quoteParameters:n,sellToken:e.sellToken}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=zl(t.signer);return Promise.resolve(fc(r,t.chainId,e.account,e.orderId))}catch(e){return Promise.reject(e)}}mergeParams(e){const{chainId:t,signer:r,appCode:n,env:i}=e,o={chainId:t||this.traderParams.chainId,signer:r||this.traderParams.signer,appCode:n||this.traderParams.appCode,env:i||this.traderParams.env};return function(e){if(!function(e){return 0===yc(e).length}(e))throw new Error("Missing trader parameters: "+yc(e).join(", "))}(o),{...e,...o}}}function yc(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}const gc=`${re}/src/bridging/providers`,bc=24e4,vc=1e5,Ac=36e4,wc="cow-sdk://bridging/providers";function Tc(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000",dappId:wc}}function Ec(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const Sc=new Pr("units/5.8.0"),Ic=["wei","kwei","mwei","gwei","szabo","finney","ether"];function kc(e,t){const r=V(e).find(e=>e.dappId?.startsWith(wc));if(!r)return;const n=r.dappId;return t.find(e=>e.info.dappId===n)}const Pc=function(e){try{const{chainId:t,orderId:r,orderBookApi:n,providers:i,env:o}=e,s={chainId:t,env:o};return Promise.resolve(n.getOrder(r,s)).then(function(e){const o=e.fullAppData&&kc(e.fullAppData,i);if(!o)throw new U(`Unknown Bridge provider in order ${e.uid}. Add provider to the SDK config to be able to decode the order`);return Promise.resolve(n.getTrades({orderUid:e.uid},s)).then(function(n){let i;const s=function(){if(n.length>0){const s=n[0],a=s.txHash;if(!a)throw new U(`No tx hash found for order ${r} . First trade, with log index ${s.logIndex}`);return Promise.resolve(o.getBridgingParams(t,r,a)).then(function({params:r,status:n}){if(!r||!n)throw new U(`Bridging params cannot be derived from transaction: ${a}`);const s={provider:o,chainId:t,order:e,statusResult:{status:M.UNKNOWN},bridgingParams:r,tradeTxHash:a};try{const e=o.getExplorerUrl(r.bridgingId),t={...s,statusResult:n,explorerUrl:e};return i=1,t}catch(e){return console.error("Cannot get bridging status",e),i=1,s}})}}();return s&&s.then?s.then(function(e){return i?e:null}):i?s:null})})}catch(e){return Promise.reject(e)}};class Cc{constructor(e){var t,r;this.options=void 0,this.config=void 0,this.options=e;const{providers:n,...i}=e;if(!n||1!==n.length)throw new Error("Current implementation only supports a single bridge provider");void 0!==e.enableLogging&&Q(e.enableLogging);const o=null!==(t=e.tradingSdk)&&void 0!==t?t:new mc,s=null!==(r=o?.options.orderBookApi)&&void 0!==r?r:new ct;this.config={...i,providers:n,tradingSdk:o,orderBookApi:s}}get provider(){const{providers:e}=this.config;return e[0]}getProviders(){return this.config.providers}getSourceNetworks(){return Promise.resolve(ke)}getTargetNetworks(){try{return Promise.resolve(this.provider.getNetworks())}catch(e){return Promise.reject(e)}}getBuyTokens(e){try{return Promise.resolve(this.provider.getBuyTokens(e))}catch(e){return Promise.reject(e)}}getQuote(e,t){try{const r=this,{sellTokenChainId:n,buyTokenChainId:i}=e,o=r.config.tradingSdk;return Promise.resolve(n!==i?function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,tradingSdk:i,bridgeHookSigner:o}=e,{kind:s,sellTokenChainId:a,sellTokenAddress:u,buyTokenChainId:l,buyTokenAddress:c,amount:d,signer:h,...f}=r,m=zl(h);if(s!==gt.SELL)throw new Error("Bridging only support SELL orders");return J(`Cross-chain ${s} ${d} ${u} (source chain ${a}) for ${c} (target chain ${l})`),Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r}=e;return Promise.resolve(t.getIntermediateTokens(r)).then(function(e){if(0===e.length)throw new L(O.NO_INTERMEDIATE_TOKENS);const t=e[0];return J(`Using ${t} as intermediate tokens`),{...r,sellTokenAddress:t.address,sellTokenDecimals:t.decimals}})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t})).then(function(e){return Promise.resolve(t.getGasLimitEstimationForHook(e)).then(function(h){const y=Tc(h);J(`Using mocked hook for swap gas estimation: ${JSON.stringify(y)}`);const{sellTokenAddress:g,sellTokenDecimals:b}=e,v={...f,kind:s,chainId:a,sellToken:u,buyToken:g,buyTokenDecimals:b,amount:d.toString(),signer:m},{signer:A,...w}=v;J(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(w,Ze)}`);const T=n?.appData?.metadata?.hooks;return Promise.resolve(i.getQuoteResults(v,{...n,appData:{...n?.appData,metadata:{hooks:{pre:T?.pre,post:[...T?.post||[],y]},bridging:{destinationChainId:l.toString(),destinationTokenAddress:c}}}})).then(function({result:n,orderBookApi:i}){const s=function(i,o,s){try{const u=s?.appData,l=s?.quoteRequest?.receiver,c=s?.quoteRequest?.validTo;return Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:i,appDataOverride:o}=e,s={...r,amount:i};return Promise.resolve(function(e,{provider:t,signer:r,hookGasLimit:n,swapResult:i,validToOverride:o}){try{return Promise.resolve(t.getQuote(e)).then(function(s){return Promise.resolve(t.getUnsignedBridgeCall(e,s)).then(function(a){const u=BigInt(o||i.orderToSign.validTo),l=p(["bytes","uint256"],[a.data,u]);return Promise.resolve(t.getSignedHook(e.sellTokenChainId,a,r,l,u,n)).then(function(e){return{hook:e,unsignedBridgeCall:a,bridgingQuote:s}})})})}catch(e){return Promise.reject(e)}}(s,e)).then(function({hook:e,unsignedBridgeCall:r,bridgingQuote:i}){return Promise.resolve(Kl(t.appDataInfo.doc,o||{})).then(function(t){const o=t.doc.metadata.hooks,a=(o?.post||[]).filter(e=>!e.dappId?.startsWith(wc));return Promise.resolve(Kl(t.doc,{metadata:{hooks:{pre:o?.pre,post:[...a,e.postHook]}}})).then(function(t){return{bridgeResult:{providerInfo:n.info,tradeParameters:s,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:e},isSell:i.isSell,expectedFillTimeSeconds:i.expectedFillTimeSeconds,fees:i.fees,limits:i.limits,quoteTimestamp:i.quoteTimestamp,amountsAndCosts:i.amountsAndCosts},bridgeHook:e,appDataInfo:t}})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:{...r,kind:gt.SELL},swapResult:n,bridgeRequestWithoutAmount:{...e,receiver:l||e.receiver},provider:t,intermediateTokenAmount:a,signer:i,appDataOverride:u,validToOverride:c,hookGasLimit:o})).then(function({bridgeHook:e,appDataInfo:{doc:t,fullAppData:r,appDataKeccak256:i},bridgeResult:o}){return J(`Bridge hook for swap: ${JSON.stringify(e)}`),n.tradeParameters.receiver=e.recipient,J(`App data for swap: appDataKeccak256=${i}, fullAppData="${r}"`),n.appDataInfo={fullAppData:r,appDataKeccak256:i,doc:t},{bridgeResult:o,swapResult:{...n,tradeParameters:{...n.tradeParameters,receiver:e.recipient}}}})}catch(e){return Promise.reject(e)}},a=n.amountsAndCosts.afterSlippage.buyAmount;return J(`Expected to receive ${a} of the intermediate token (${function(e,t){if("string"!=typeof e&&Sc.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Ic.indexOf(t);-1!==e&&(t=3*e)}return pn(e,null!=t?t:18)}(a.toString(),b).toString()})`),J(`Using gas limit: ${h}`),Promise.resolve(s(o?zl(o):m,h)).then(function(e){return{swap:e.swapResult,bridge:e.bridgeResult,postSwapOrderFromQuote:function(e,t){try{return Promise.resolve(t?.beforeBridgingSign?.()).then(function(){return Promise.resolve(s(m,h,e).catch(e=>{throw t?.onBridgingSignError?.(),e})).then(function({swapResult:r}){return Promise.resolve(t?.afterBridgingSign?.()).then(function(){const n={result:{...r,tradeParameters:lr({quoteParameters:r.tradeParameters,sellToken:u}),signer:m},orderBookApi:i};return Promise.resolve(t?.beforeOrderSign?.()).then(function(){return dc(n,{...e,appData:r.appDataInfo.doc,quoteRequest:{...e?.quoteRequest,receiver:r.tradeParameters.receiver}}).catch(e=>{throw t?.onOrderSignError?.(),e}).then(function(e){try{return Promise.resolve(t?.afterOrderSign?.()).then(function(){return e})}catch(e){return Promise.reject(e)}})})})})})}catch(e){return Promise.reject(e)}}}})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:o,provider:r.provider,bridgeHookSigner:t?.quoteSigner}):function(e){const{quoteBridgeRequest:t,advancedSettings:r,tradingSdk:n}=e,{sellTokenAddress:i,buyTokenAddress:o,amount:s,...a}=t,u={...a,chainId:t.sellTokenChainId,sellToken:i,buyToken:o,amount:s.toString()},{signer:l,...c}=u;return J(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(c,Ze)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:o}))}catch(e){return Promise.reject(e)}}getOrder(e){try{const t=this,{orderBookApi:r}=t.config,{chainId:n,orderId:i,env:o=r.context.env}=e;return Promise.resolve(Pc({chainId:n,orderId:i,orderBookApi:r,env:o,providers:t.config.providers}))}catch(e){return Promise.reject(e)}}getOrderBridgingStatus(e,t){try{return Promise.resolve(this.provider.getStatus(e,t))}catch(e){return Promise.reject(e)}}getProviderFromAppData(e){return kc(e,this.getProviders())}}class Nc{constructor(e={}){this.options=void 0,this.options=e}getAvailableRoutes({originChainId:e,originToken:t,destinationChainId:r,destinationToken:n}){try{const i=this,o={};return e&&(o.originChainId=e),t&&(o.originToken=t),r&&(o.destinationChainId=r),n&&(o.destinationToken=n),Promise.resolve(i.fetchApi("/available-routes",o,Rc))}catch(e){return Promise.reject(e)}}getSuggestedFees(e){try{const t=this,r={token:e.token,originChainId:e.originChainId.toString(),destinationChainId:e.destinationChainId.toString(),amount:e.amount.toString()};return e.recipient&&(r.recipient=e.recipient),Promise.resolve(t.fetchApi("/suggested-fees",r,xc))}catch(e){return Promise.reject(e)}}getSupportedTokens(){try{return Promise.resolve(this.fetchApi("/token-list",{}).then(e=>e.map(e=>({...e,logoUrl:e.logoURI}))))}catch(e){return Promise.reject(e)}}getDepositStatus(e){try{return Promise.resolve(this.fetchApi("/deposit/status",{originChainId:e.originChainId,depositId:e.depositId}))}catch(e){return Promise.reject(e)}}fetchApi(e,t,r){try{const n=`${this.options.apiBaseUrl||"https://app.across.to/api"}${e}?${new URLSearchParams(t).toString()}`;return J(`Fetching Across API: GET ${n}. Params: ${JSON.stringify(t)}`),Promise.resolve(fetch(n,{method:"GET"})).then(function(t){let n;function i(i){return n?i:Promise.resolve(t.json()).then(function(t){if(r){if(r(t))return t;throw new L(O.INVALID_API_JSON_RESPONSE,{path:e,json:t})}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(e){throw new L(O.API_ERROR,e)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function xc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&_c(e.totalRelayFee)&&"relayerCapitalFee"in e&&_c(e.relayerCapitalFee)&&"relayerGasFee"in e&&_c(e.relayerGasFee)&&"lpFee"in e&&_c(e.lpFee)&&"timestamp"in e&&"isAmountTooLow"in e&&"quoteBlock"in e&&"spokePoolAddress"in e&&"exclusiveRelayer"in e&&"exclusivityDeadline"in e&&"estimatedFillTimeSec"in e&&"fillDeadline"in e&&"limits"in e&&"object"==typeof(t=e.limits)&&null!==t&&"minDeposit"in t&&"maxDeposit"in t&&"maxDepositInstant"in t&&"maxDepositShortDelay"in t&&"recommendedDepositInstant"in t;var t}function _c(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Rc(e){return!!Array.isArray(e)&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&"originChainId"in e&&"originToken"in e&&"destinationChainId"in e&&"destinationToken"in e&&"originTokenSymbol"in e&&"destinationTokenSymbol"in e}(e))}const Mc=new f(["event FundsDeposited(bytes32 inputToken, bytes32 outputToken, uint256 inputAmount, uint256 outputAmount, uint256 indexed destinationChainId, uint256 indexed depositId, uint32 quoteTimestamp, uint32 fillDeadline, uint32 exclusivityDeadline, bytes32 indexed depositor, bytes32 recipient, bytes32 exclusiveRelayer, bytes message)"]),Oc=new f(["event Trade(address owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)"]);[{chainId:B.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:B.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:B.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:B.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:D.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});const Bc=Mc.getEventTopic("FundsDeposited"),Dc=Oc.getEventTopic("Trade"),Lc={[B.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[B.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[B.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[B.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[B.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[B.LENS]:"0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12",[B.BNB]:"0x4e8E101924eDE233C13e2D8622DC8aED2872d505",[B.GNOSIS_CHAIN]:void 0,[B.AVALANCHE]:void 0,[D.OPTIMISM]:void 0},Fc={[B.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[B.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[B.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[B.GNOSIS_CHAIN]:void 0,[B.SEPOLIA]:void 0,[B.POLYGON]:void 0,[D.OPTIMISM]:void 0,[B.AVALANCHE]:void 0,[B.LENS]:void 0,[B.BNB]:void 0},Uc=10n**18n;function Gc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=xt(n,i),a=s.big,u=xt(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=qc(u,l),d=a-qc(a,l),h=u-c,p=function(e,t){return e*BigInt(1e4-t)/10000n}(c,t);return{beforeFee:{sellAmount:a,buyAmount:u},afterFee:{sellAmount:a,buyAmount:c},afterSlippage:{sellAmount:a,buyAmount:p},costs:{bridgingFee:{feeBps:(f=l,Hc(f),Number(10000n*f/Uc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function jc(e){return m.decode(["address"],e).toString()}function Hc(e){if(e>Uc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function qc(e,t){return Hc(t),e*(Uc-t)/Uc}const Vc={filled:M.EXECUTED,slowFillRequested:M.EXECUTED,pending:M.IN_PROGRESS,expired:M.EXPIRED,refunded:M.REFUND};let zc;function Kc(e,t,r){if(!e.s){if(r instanceof Wc){if(!r.s)return void(r.o=Kc.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(Kc.bind(null,e,t),Kc.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const Wc=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,r){const n=new e,i=this.s;if(i){const e=1&i?t:r;if(e){try{Kc(n,1,e(this.v))}catch(e){Kc(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?Kc(n,1,t?t(i):i):r?Kc(n,1,r(i)):Kc(n,2,i)}catch(e){Kc(n,2,e)}},n},e}(),Jc={ExecuteHooks:[{type:"Call[]",name:"calls"},{type:"bytes32",name:"nonce"},{type:"uint256",name:"deadline"}],Call:[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"},{type:"bool",name:"allowFailure"},{type:"bool",name:"isDelegateCall"}]};class Qc{constructor(e,t,r=Ge){this.chainId=void 0,this.customOptions=void 0,this.version=void 0,this.chainId=e,this.customOptions=t,this.version=r}proxyOf(e){const t=m.encode(["address"],[e]),r=p(["bytes","bytes"],[this.proxyCreationCode(),m.encode(["address","address"],[this.getImplementationAddress(),e])]);return y(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return(zc||(zc=Qt.createInterface()),zc).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,i){try{const o=this;return Promise.resolve(n.getAddress()).then(function(s){const a=o.proxyOf(s),{domain:u,types:l,message:c}=o.infoToSign(e,t,r,a);return Promise.resolve(function(e,t,r,n,i){try{let o,s;function a(e){return o?e:g(b(u))}let u=null;const l=function(e,t){var r,n=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var s=o();if(s&&s.then)break e;if(s===e){n=i;break}}else n=i}if(-1!==n){do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then){r=!0;break e}var l=t[n][2];n++}while(l&&!l());return u}}const c=new Wc,d=Kc.bind(null,c,2);return(r?u.then(h):s.then(function r(s){for(;;){if(s===e){n=i;break}if(++i===t.length){if(-1!==n)break;return void Kc(c,1,u)}if(o=t[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,d)}else n=i}do{for(var a=t[n][1];!a;)n++,a=t[n][1];var u=a();if(u&&u.then)return void u.then(h).then(void 0,d);var l=t[n][2];n++}while(l&&!l());Kc(c,1,u)})).then(void 0,d),c;function h(e){for(;;){var r=t[n][2];if(!r||r())break;n++;for(var i=t[n][1];!i;)n++,i=t[n][1];if((e=i())&&e.then)return void e.then(h).then(void 0,d)}Kc(c,1,e)}}(e,[[function(){return S.EIP712},function(){if(!I(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,i)).then(function(e){u=e,s=1})}],[function(){return S.ETHSIGN},function(){return Promise.resolve(t.signMessage(v(k(r,n,i)))).then(function(e){u=e,s=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(l&&l.then?l.then(a):a(l))}catch(c){return Promise.reject(c)}}(i,n,u,l,c))})}catch(e){return Promise.reject(e)}}infoToSign(e,t,r,n){const i={calls:e,nonce:t,deadline:r};return{domain:this.getDomain(n),types:Jc,message:i}}getDomain(e){return{name:"COWShed",version:this.version,chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:qe[this.version]}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:je[this.version]}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:He[this.version]}}const Yc=Wn.toBigInt();class Xc{constructor(e={},t=Ge){this.options=void 0,this.version=void 0,this.hooksCache=new Map,this.options=e,this.version=t}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=Xc.getNonce(),deadline:i=Yc,gasLimit:o,defaultGasLimit:s,signingScheme:a=S.EIP712}){try{const u=this,l=u.getCowShedHooks(r),c=t||u.options?.signer;if(!c)throw new Error("Signer is required");const d=zl(c);return Promise.resolve(d.getAddress()).then(function(t){const r=l.proxyOf(t);return Promise.resolve(l.signCalls(e,n,i,d,a)).then(function(a){function u(e){return{cowShedAccount:r,signedMulticall:h,gasLimit:BigInt(e.toString())}}const c=l.encodeExecuteHooksForFactory(e,n,i,t,a),h={to:l.getFactoryAddress(),data:c,value:BigInt(0)};return o?u(o):Promise.resolve(d.estimateGas(h).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(h,Ze,2)}. Review the factory call`;if(s)return J(`${t}, using the default gas limit.`),s;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(u)})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new Qc(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return A(Date.now().toString())}}const $c="abi/5.8.0",Zc=new Pr($c),ed={};let td={calldata:!0,memory:!0,storage:!0},rd={calldata:!0,memory:!0};function nd(e,t){if("bytes"===e||"string"===e){if(td[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&rd[t])return!0;return(td[t]||"payable"===t)&&Zc.throwArgumentError("invalid modifier","name",t),!1}function id(e,t){for(let r in t)An(e,r,t[r])}const od=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),sd=new RegExp(/^(.*)\[([0-9]*)\]$/);class ad{constructor(e,t){e!==ed&&Zc.throwError("use fromString",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),id(this,t);let r=this.type.match(sd);id(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:ad.fromObject({type:r[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=od.sighash),od[e]||Zc.throwArgumentError("invalid format type","format",e),e===od.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==od.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===od.full?", ":",")+")"):t+=this.type,e!==od.sighash&&(!0===this.indexed&&(t+=" indexed"),e===od.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?ad.fromString(e,t):ad.fromObject(e)}static fromObject(e){return ad.isParamType(e)?e:new ad(ed,{name:e.name||null,type:bd(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(ad.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){Zc.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let o={type:"",name:"",state:{allowType:!0}},s=o;for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"(":s.state.allowType&&""===s.type?s.type="tuple":s.state.allowParams||n(r),s.state.allowType=!1,s.type=bd(s.type),s.components=[i(s)],s=s.components[0];break;case")":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),nd(s.type,s.name)&&(s.name=""),s.type=bd(s.type);let e=s;s=s.parent,s||n(r),delete e.parent,s.state.allowParams=!1,s.state.allowName=!0,s.state.allowArray=!0;break;case",":delete s.state,"indexed"===s.name&&(t||n(r),s.indexed=!0,s.name=""),nd(s.type,s.name)&&(s.name=""),s.type=bd(s.type);let a=i(s.parent);s.parent.components.push(a),delete s.parent,s=a;break;case" ":s.state.allowType&&""!==s.type&&(s.type=bd(s.type),delete s.state.allowType,s.state.allowName=!0,s.state.allowParams=!0),s.state.allowName&&""!==s.name&&("indexed"===s.name?(t||n(r),s.indexed&&n(r),s.indexed=!0,s.name=""):nd(s.type,s.name)?s.name="":s.state.allowName=!1);break;case"[":s.state.allowArray||n(r),s.type+=o,s.state.allowArray=!1,s.state.allowName=!1,s.state.readArray=!0;break;case"]":s.state.readArray||n(r),s.type+=o,s.state.readArray=!1,s.state.allowArray=!0,s.state.allowName=!0;break;default:s.state.allowType?(s.type+=o,s.state.allowParams=!0,s.state.allowArray=!0):s.state.allowName?(s.name+=o,delete s.state.allowArray):s.state.readArray?s.type+=o:n(r)}}return s.parent&&Zc.throwArgumentError("unexpected eof","param",e),delete o.state,"indexed"===s.name?(t||n(r.length-7),s.indexed&&n(r.length-7),s.indexed=!0,s.name=""):nd(s.type,s.name)&&(s.name=""),o.type=bd(o.type),o}(e,!!t),ad.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function ud(e,t){return function(e){e=e.trim();let t=[],r="",n=0;for(let i=0;i<e.length;i++){let o=e[i];","===o&&0===n?(t.push(r),r=""):(r+=o,"("===o?n++:")"===o&&(n--,-1===n&&Zc.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>ad.fromString(e,t))}class ld{constructor(e,t){e!==ed&&Zc.throwError("use a static from method",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),id(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return ld.isFragment(e)?e:"string"==typeof e?ld.fromString(e):ld.fromObject(e)}static fromObject(e){if(ld.isFragment(e))return e;switch(e.type){case"function":return md.fromObject(e);case"event":return cd.fromObject(e);case"constructor":return fd.fromObject(e);case"error":return gd.fromObject(e);case"fallback":case"receive":return null}return Zc.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?cd.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?md.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?fd.fromString(e.trim()):"error"===e.split(" ")[0]?gd.fromString(e.substring(5).trim()):Zc.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class cd extends ld{format(e){if(e||(e=od.sighash),od[e]||Zc.throwArgumentError("invalid format type","format",e),e===od.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==od.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===od.full?", ":",")+") ",e!==od.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?cd.fromString(e):cd.fromObject(e)}static fromObject(e){if(cd.isEventFragment(e))return e;"event"!==e.type&&Zc.throwArgumentError("invalid event object","value",e);const t={name:Ad(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(ad.fromObject):[],type:"event"};return new cd(ed,t)}static fromString(e){let t=e.match(wd);t||Zc.throwArgumentError("invalid event string","value",e);let r=!1;return t[3].split(" ").forEach(e=>{switch(e.trim()){case"anonymous":r=!0;break;case"":break;default:Zc.warn("unknown modifier: "+e)}}),cd.fromObject({name:t[1].trim(),anonymous:r,inputs:ud(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function dd(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&Zc.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||Zc.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=Zr.from(r[1]),r[0]):e}function hd(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach(e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}})}function pd(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Zc.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Zc.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Zc.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Zc.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Zc.throwArgumentError("unable to determine stateMutability","value",e),t}class fd extends ld{format(e){if(e||(e=od.sighash),od[e]||Zc.throwArgumentError("invalid format type","format",e),e===od.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});e===od.sighash&&Zc.throwError("cannot format a constructor for sighash",Pr.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===od.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?fd.fromString(e):fd.fromObject(e)}static fromObject(e){if(fd.isConstructorFragment(e))return e;"constructor"!==e.type&&Zc.throwArgumentError("invalid constructor object","value",e);let t=pd(e);t.constant&&Zc.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(ad.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Zr.from(e.gas):null};return new fd(ed,r)}static fromString(e){let t={type:"constructor"},r=(e=dd(e,t)).match(wd);return r&&"constructor"===r[1].trim()||Zc.throwArgumentError("invalid constructor string","value",e),t.inputs=ud(r[2].trim(),!1),hd(r[3].trim(),t),fd.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class md extends fd{format(e){if(e||(e=od.sighash),od[e]||Zc.throwArgumentError("invalid format type","format",e),e===od.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==od.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===od.full?", ":",")+") ",e!==od.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map(t=>t.format(e)).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?md.fromString(e):md.fromObject(e)}static fromObject(e){if(md.isFunctionFragment(e))return e;"function"!==e.type&&Zc.throwArgumentError("invalid function object","value",e);let t=pd(e);const r={type:e.type,name:Ad(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(ad.fromObject):[],outputs:e.outputs?e.outputs.map(ad.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?Zr.from(e.gas):null};return new md(ed,r)}static fromString(e){let t={type:"function"},r=(e=dd(e,t)).split(" returns ");r.length>2&&Zc.throwArgumentError("invalid function string","value",e);let n=r[0].match(wd);if(n||Zc.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&Ad(t.name),t.inputs=ud(n[2],!1),hd(n[3].trim(),t),r.length>1){let n=r[1].match(wd);""==n[1].trim()&&""==n[3].trim()||Zc.throwArgumentError("unexpected tokens","value",e),t.outputs=ud(n[2],!1)}else t.outputs=[];return md.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function yd(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Zc.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class gd extends ld{format(e){if(e||(e=od.sighash),od[e]||Zc.throwArgumentError("invalid format type","format",e),e===od.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==od.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===od.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?gd.fromString(e):gd.fromObject(e)}static fromObject(e){if(gd.isErrorFragment(e))return e;"error"!==e.type&&Zc.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Ad(e.name),inputs:e.inputs?e.inputs.map(ad.fromObject):[]};return yd(new gd(ed,t))}static fromString(e){let t={type:"error"},r=e.match(wd);return r||Zc.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&Ad(t.name),t.inputs=ud(r[2],!1),yd(gd.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function bd(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const vd=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Ad(e){return e&&e.match(vd)||Zc.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const wd=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),Td=new Pr($c);class Ed{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){Td.throwArgumentError(e,this.localName,t)}}class Sd{constructor(e){An(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return Hr(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(Br(e._data))}writeBytes(e){let t=Or(e);const r=t.length%this.wordSize;return r&&(t=Br([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Or(Zr.from(e));return t.length>this.wordSize&&Td.throwError("value out-of-bounds",Pr.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=Br([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Id{constructor(e,t,r,n){An(this,"_data",Or(e)),An(this,"wordSize",t||32),An(this,"_coerceFunc",r),An(this,"allowLoose",n),this._offset=0}get data(){return Ur(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Id.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:Td.throwError("data out-of-bounds",Pr.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Id(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return Zr.from(this.readBytes(this.wordSize))}}class kd extends Ed{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=qi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return qi(Vr(e.readValue().toHexString(),20))}}class Pd extends Ed{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const Cd=new Pr($c);function Nd(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{const n=t.localName;return n||Cd.throwError("cannot encode object for signature with missing names",Pr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&Cd.throwError("cannot encode object for signature with duplicate names",Pr.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else Cd.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&Cd.throwArgumentError("types/value length mismatch","tuple",r);let i=new Sd(e.wordSize),o=new Sd(e.wordSize),s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=o.length;e.encode(o,r);let n=i.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(i,r)}),s.forEach(e=>{e(i.length)});let a=e.appendWriter(i);return a+=e.appendWriter(o),a}function xd(e,t){let r=[],n=e.subReader(0);t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readValue(),o=n.subReader(r.toNumber());try{i=t.decode(o)}catch(e){if(e.code===Pr.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===Pr.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)});const i=t.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});t.forEach((e,t)=>{let n=e.localName;if(!n||1!==i[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const o=r[t];o instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw o}}):r[n]=o});for(let e=0;e<r.length;e++){const t=r[e];t instanceof Error&&Object.defineProperty(r,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(r)}class _d extends Ed{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),Cd.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));let n=[];for(let e=0;e<t.length;e++)n.push(this.coder);return Nd(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Cd.throwError("insufficient data length",Pr.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new Pd(this.coder));return e.coerce(this.name,xd(e,r))}}class Rd extends Ed{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}}class Md extends Ed{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Or(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class Od extends Md{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Ur(super.decode(e)))}}class Bd extends Ed{constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=Or(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,Ur(e.readBytes(this.size)))}}class Dd extends Ed{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}}class Ld extends Ed{constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let r=Zr.from(t),n=Wn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(Kn).mul(Vn)))&&this._throwError("value out-of-bounds",t)}else(r.lt(zn)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}class Fd extends Md{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,ni(t))}decode(e){return ii(super.decode(e))}}class Ud extends Ed{constructor(e,t){let r=!1;const n=[];e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});const t=this.coders.reduce((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let i=r.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[n]))}),Object.freeze(e)}encode(e,t){return Nd(e,this.coders,t)}decode(e){return e.coerce(this.name,xd(e,this.coders))}}const Gd=new Pr($c),jd=new RegExp(/^bytes([0-9]*)$/),Hd=new RegExp(/^(u?int)([0-9]*)$/),qd=new class{constructor(e){An(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new kd(e.name);case"bool":return new Rd(e.name);case"string":return new Fd(e.name);case"bytes":return new Od(e.name);case"array":return new _d(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Ud((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new Dd(e.name)}let t=e.type.match(Hd);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&Gd.throwArgumentError("invalid "+t[1]+" bit length","param",e),new Ld(r/8,"int"===t[1],e.name)}if(t=e.type.match(jd),t){let r=parseInt(t[1]);return(0===r||r>32)&&Gd.throwArgumentError("invalid bytes length","param",e),new Bd(r,e.name)}return Gd.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Id(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Sd(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(ad.from(e)));return new Ud(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Gd.throwError("types/values length mismatch",Pr.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(ad.from(e))),n=new Ud(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(ad.from(e)));return new Ud(n,"_").decode(this._getReader(Or(t),r))}},Vd=new Pr($c);class zd extends Nn{}class Kd extends Nn{}class Wd extends Nn{}class Jd extends Nn{static isIndexed(e){return!(!e||!e._isIndexed)}}const Qd={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Yd(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class Xd{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,An(this,"fragments",t.map(e=>ld.from(e)).filter(e=>null!=e)),An(this,"_abiCoder",wn(new.target,"getAbiCoder")()),An(this,"functions",{}),An(this,"errors",{}),An(this,"events",{}),An(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Vd.warn("duplicate definition - constructor"):void An(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let r=e.format();t[r]?Vd.warn("duplicate definition - "+r):t[r]=e}),this.deploy||An(this,"deploy",fd.from({payable:!1,type:"constructor"})),An(this,"_isInterface",!0)}format(e){e||(e=od.full),e===od.sighash&&Vd.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===od.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return qd}static getAddress(e){return qi(e)}static getSighash(e){return jr(oi(e.format()),0,4)}static getEventTopic(e){return oi(e.format())}getFunction(e){if(Lr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Vd.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.functions).filter(e=>e.split("(")[0]===t);return 0===r.length?Vd.throwArgumentError("no matching function","name",t):r.length>1&&Vd.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[md.fromString(e).format()];return t||Vd.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Lr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Vd.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.events).filter(e=>e.split("(")[0]===t);return 0===r.length?Vd.throwArgumentError("no matching event","name",t):r.length>1&&Vd.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[cd.fromString(e).format()];return t||Vd.throwArgumentError("no matching event","signature",e),t}getError(e){if(Lr(e)){const t=wn(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];Vd.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),r=Object.keys(this.errors).filter(e=>e.split("(")[0]===t);return 0===r.length?Vd.throwArgumentError("no matching error","name",t):r.length>1&&Vd.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[md.fromString(e).format()];return t||Vd.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return wn(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),wn(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const r=Or(t);return Ur(r.slice(0,4))!==this.getSighash(e)&&Vd.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Ur(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Ur(Br([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Or(t);return Ur(r.slice(0,4))!==this.getSighash(e)&&Vd.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Ur(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Ur(Br([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Or(t),n=null,i="",o=null,s=null,a=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:{const e=Ur(r.slice(0,4)),t=Qd[e];if(t)o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.signature,t.reason&&(n=o[0]),"Error"===s?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===s&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,r.slice(4)),s=t.name,a=t.format()}catch(e){}break}}return Vd.throwError("call revert exception"+i,Pr.errors.CALL_EXCEPTION,{method:e.format(),data:Ur(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Ur(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Vd.throwError("too many arguments for "+e.format(),Pr.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?oi(t):"bytes"===e.type?Yn(Ur(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=Zr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Vr(Ur(t),32));for(t.forEach((t,i)=>{let o=e.inputs[i];o.indexed?null==t?r.push(null):"array"===o.baseType||"tuple"===o.baseType?Vd.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?r.push(t.map(e=>n(o,e))):r.push(n(o,t)):null!=t&&Vd.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const r=[],n=[],i=[];return e.anonymous||r.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Vd.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((e,o)=>{const s=t[o];if(e.indexed)if("string"===e.type)r.push(oi(s));else if("bytes"===e.type)r.push(Yn(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");r.push(this._abiCoder.encode([e.type],[s]))}else n.push(e),i.push(s)}),{data:this._abiCoder.encode(n,i),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){let t=this.getEventTopic(e);Lr(r[0],32)&&r[0].toLowerCase()===t||Vd.throwError("fragment/topic mismatch",Pr.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:r[0]}),r=r.slice(1)}let n=[],i=[],o=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(ad.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(n.push(e),o.push(!1)):(i.push(e),o.push(!1))});let s=null!=r?this._abiCoder.decode(n,Br(r)):null,a=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach((e,t)=>{if(e.indexed)if(null==s)u[t]=new Jd({_isIndexed:!0,hash:null});else if(o[t])u[t]=new Jd({_isIndexed:!0,hash:s[c++]});else try{u[t]=s[c++]}catch(e){u[t]=e}else try{u[t]=a[l++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw Yd(`property ${JSON.stringify(e.name)}`,r)}}):u[e.name]=r}});for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw Yd(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new Kd({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:Zr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new zd({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Ur(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new Wd({args:this._abiCoder.decode(r.inputs,"0x"+t.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(e){return!(!e||!e._isInterface)}}var $d=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{u(n.next(e))}catch(e){o(e)}}function a(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(s,a)}u((n=n.apply(e,t||[])).next())})};const Zd=new Pr("contracts/5.8.0");function eh(e,t){return $d(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&Zd.throwArgumentError("invalid address or ENS name","name",r);try{return qi(r)}catch(e){}e||Zd.throwError("a provider or signer is needed to resolve ENS names",Pr.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&Zd.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function th(e,t,r){return $d(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>th(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield eh(e,t):"tuple"===r.type?yield th(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>th(e,t,r.arrayChildren))):Promise.reject(Zd.makeError("invalid value for array",Pr.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function rh(e,t,r){return $d(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=Sn(r.pop())),Zd.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?Tn({override:eh(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>$d(this,void 0,void 0,function*(){return qi(e.signer)!==e.override&&Zd.throwError("Contract with a Signer cannot override from",Pr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=eh(e.provider,n.from));const i=yield Tn({args:th(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:Tn(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=Zr.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=Zr.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=Zr.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=Zr.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=Zr.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=tu(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Or(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=Zr.from(t.gas).add(e)}if(a.value){const e=Zr.from(a.value);e.isZero()||t.payable||Zd.throwError("non-payable method cannot override value",Pr.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=Sn(a.customData)),a.ccipReadEnabled&&(s.ccipReadEnabled=!!a.ccipReadEnabled),delete n.nonce,delete n.gasLimit,delete n.gasPrice,delete n.from,delete n.value,delete n.type,delete n.accessList,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.customData,delete n.ccipReadEnabled;const u=Object.keys(n).filter(e=>null!=n[e]);return u.length&&Zd.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,Pr.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function nh(e,t,r){const n=e.signer||e.provider;return function(...i){return $d(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Sn(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const s=yield rh(e,t,i),a=yield n.call(s,o);try{let n=e.interface.decodeFunctionResult(t,a);return r&&1===t.outputs.length&&(n=n[0]),n}catch(t){throw t.code===Pr.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function ih(e,t,r){return t.constant?nh(e,t,r):function(e,t){return function(...r){return $d(this,void 0,void 0,function*(){e.signer||Zd.throwError("sending a transaction requires a signer",Pr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield rh(e,t,r),i=yield e.signer.sendTransaction(n);return function(e,t){const r=t.wait.bind(t);t.wait=t=>r(t).then(t=>(t.events=t.logs.map(r=>{let n=Cn(r),i=null;try{i=e.interface.parseLog(r)}catch(e){}return i&&(n.args=i.args,n.decode=(t,r)=>e.interface.decodeEventLog(i.eventFragment,t,r),n.event=i.name,n.eventSignature=i.signature),n.removeListener=()=>e.provider,n.getBlock=()=>e.provider.getBlock(t.blockHash),n.getTransaction=()=>e.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(t),n}),t))}(e,i),i})}}(e,t)}function oh(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map(e=>Array.isArray(e)?e.join("|"):e).join(":"):""):"*"}class sh{constructor(e,t){An(this,"tag",e),An(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter(r=>!(!t&&r.listener===e&&(t=!0,1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map(e=>e.listener)}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter(t=>{const r=e.slice();return setTimeout(()=>{t.listener.apply(this,r)},0),!t.once}),t}prepareEvent(e){}getEmit(e){return[e]}}class ah extends sh{constructor(){super("error",null)}}class uh extends sh{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&Zd.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(oh(i),i),An(this,"address",e),An(this,"interface",t),An(this,"fragment",r)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=function(e){const t=[],r=function(e,n){if(Array.isArray(n))for(let i in n){const o=e.slice();o.push(i);try{r(o,n[i])}catch(e){t.push({path:o,error:e})}}};return r([],e),t}(e.args);if(t.length)throw t[0].error;const r=(e.args||[]).slice();return r.push(e),r}}class lh extends sh{constructor(e,t){super("*",{address:e}),An(this,"address",e),An(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,r)=>this.interface.decodeEventLog(t.eventFragment,e,r),e.args=t.args}catch(e){}}}class ch{constructor(e,t,r){An(this,"interface",wn(new.target,"getInterface")(t)),null==r?(An(this,"provider",null),An(this,"signer",null)):a.isSigner(r)?(An(this,"provider",r.provider||null),An(this,"signer",r)):Rn.isProvider(r)?(An(this,"provider",r),An(this,"signer",null)):Zd.throwArgumentError("invalid signer or provider","signerOrProvider",r),An(this,"callStatic",{}),An(this,"estimateGas",{}),An(this,"functions",{}),An(this,"populateTransaction",{}),An(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];An(this.filters,t,(...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,e)})),e[r.name]||(e[r.name]=[]),e[r.name].push(t)}),Object.keys(e).forEach(t=>{const r=e[t];1===r.length?An(this.filters,t,this.filters[r[0]]):Zd.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(An(this,"_runningEvents",{}),An(this,"_wrappedEmits",{}),null==e&&Zd.throwArgumentError("invalid contract address or ENS name","addressOrName",e),An(this,"address",e),this.provider)An(this,"resolvedAddress",eh(this.provider,e));else try{An(this,"resolvedAddress",Promise.resolve(qi(e)))}catch(e){Zd.throwError("provider is required to use ENS name as contract address",Pr.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch(e=>{});const n={},i={};Object.keys(this.interface.functions).forEach(e=>{const t=this.interface.functions[e];if(i[e])Zd.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const r=t.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(e)}null==this[e]&&An(this,e,ih(this,t,!0)),null==this.functions[e]&&An(this.functions,e,ih(this,t,!1)),null==this.callStatic[e]&&An(this.callStatic,e,nh(this,t,!0)),null==this.populateTransaction[e]&&An(this.populateTransaction,e,function(e,t){return function(...r){return rh(e,t,r)}}(this,t)),null==this.estimateGas[e]&&An(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return $d(this,void 0,void 0,function*(){r||Zd.throwError("estimate require a provider or signer",Pr.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield rh(e,t,n);return yield r.estimateGas(i)})}}(this,t))}}),Object.keys(n).forEach(e=>{const t=n[e];if(t.length>1)return;e=e.substring(1);const r=t[0];try{null==this[e]&&An(this,e,this[r])}catch(e){}null==this.functions[e]&&An(this.functions,e,this.functions[r]),null==this.callStatic[e]&&An(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&An(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&An(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return Vi(e)}static getInterface(e){return Xd.isInterface(e)?e:new Xd(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this._deployedPromise=this.deployTransaction?this.deployTransaction.wait().then(()=>this):this.provider.getCode(this.address,e).then(e=>("0x"===e&&Zd.throwError("contract not deployed",Pr.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Zd.throwError("sending a transactions require a signer",Pr.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Sn(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Zd.throwError("cannot override "+e,Pr.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new u(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&An(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Jd.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new ah);if("event"===e)return this._normalizeRunningEvent(new sh("event",null));if("*"===e)return this._normalizeRunningEvent(new lh(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new uh(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const r=this.interface.getEvent(t);return this._normalizeRunningEvent(new uh(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new sh(oh(t),t))}return this._normalizeRunningEvent(new lh(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,r){const n=Cn(t);return n.removeListener=()=>{r&&(e.removeListener(r),this._checkRunningEvents(e))},n.getBlock=()=>this.provider.getBlock(t.blockHash),n.getTransaction=()=>this.provider.getTransaction(t.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(n),n}_addEventListener(e,t,r){if(this.provider||Zd.throwError("events require a provider or a signer with a provider",Pr.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,r),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const r=r=>{let n=this._wrapEvent(e,r,t);if(null==n.decodeError)try{const t=e.getEmit(n);this.emit(e.filter,...t)}catch(e){n.decodeError=e.error}null!=e.filter&&this.emit("event",n),null!=n.decodeError&&this.emit("error",n.decodeError,n)};this._wrappedEmits[e.tag]=r,null!=e.filter&&this.provider.on(e.filter,r)}}queryFilter(e,t,r){const n=this._getRunningEvent(e),i=Sn(n.filter);return"string"==typeof t&&Lr(t,32)?(null!=r&&Zd.throwArgumentError("cannot specify toBlock with blockhash","toBlock",r),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=r?r:"latest"),this.provider.getLogs(i).then(e=>e.map(e=>this._wrapEvent(n,e,null)))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const r=this._getRunningEvent(e),n=r.run(t)>0;return this._checkRunningEvents(r),n}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce((e,t)=>e+this._runningEvents[t].listenerCount(),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach(t=>{e.push(t)});return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const r=this._getRunningEvent(e);return r.removeListener(t),this._checkRunningEvents(r),this}removeListener(e,t){return this.off(e,t)}}class dh extends ch{}var hh;!function(e){e[e.DELEGATECALL=0]="DELEGATECALL",e[e.CALL=1]="CALL",e[e.STATICCALL=2]="STATICCALL",e[e.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",e[e.CALLTYPE_MASK=3]="CALLTYPE_MASK",e[e.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",e[e.TUPLE_RETURN=128]="TUPLE_RETURN"}(hh||(hh={}));const ph="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",fh=[{inputs:[{internalType:"uint256",name:"command_index",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"string",name:"message",type:"string"}],name:"ExecutionFailed",type:"error"},{inputs:[{internalType:"bytes32[]",name:"commands",type:"bytes32[]"},{internalType:"bytes[]",name:"state",type:"bytes[]"}],name:"execute",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"}];function mh(e){const t=e.plan(),{commands:r,state:n}=t;return new Xd(fh).encodeFunctionData("execute",[r,n])}function yh(e){const t=new C;return e(t),{to:ph,value:BigInt(0),data:mh(t)}}function gh(e,t){return N.createContract(e,t)}function bh(e){return N.createLibrary(e)}const vh=[{inputs:[{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"uint256",name:"_b",type:"uint256"}],name:"multiplyAndSubtract",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"pure",type:"function"}],Ah=[{inputs:[{internalType:"address",name:"_wrappedNativeTokenAddress",type:"address"},{internalType:"uint32",name:"_depositQuoteTimeBuffer",type:"uint32"},{internalType:"uint32",name:"_fillDeadlineBuffer",type:"uint32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ClaimedMerkleLeaf",type:"error"},{inputs:[],name:"DepositsArePaused",type:"error"},{inputs:[],name:"DisabledRoute",type:"error"},{inputs:[],name:"ExpiredFillDeadline",type:"error"},{inputs:[],name:"FillsArePaused",type:"error"},{inputs:[],name:"InsufficientSpokePoolBalanceToExecuteLeaf",type:"error"},{inputs:[],name:"InvalidBytes32",type:"error"},{inputs:[],name:"InvalidChainId",type:"error"},{inputs:[],name:"InvalidCrossDomainAdmin",type:"error"},{inputs:[],name:"InvalidDepositorSignature",type:"error"},{inputs:[],name:"InvalidExclusiveRelayer",type:"error"},{inputs:[],name:"InvalidFillDeadline",type:"error"},{inputs:[],name:"InvalidMerkleLeaf",type:"error"},{inputs:[],name:"InvalidMerkleProof",type:"error"},{inputs:[],name:"InvalidPayoutAdjustmentPct",type:"error"},{inputs:[],name:"InvalidQuoteTimestamp",type:"error"},{inputs:[],name:"InvalidRelayerFeePct",type:"error"},{inputs:[],name:"InvalidSlowFillRequest",type:"error"},{inputs:[],name:"InvalidWithdrawalRecipient",type:"error"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"LowLevelCallFailed",type:"error"},{inputs:[],name:"MaxTransferSizeExceeded",type:"error"},{inputs:[],name:"MsgValueDoesNotMatchInputAmount",type:"error"},{inputs:[],name:"NoRelayerRefundToClaim",type:"error"},{inputs:[],name:"NoSlowFillsInExclusivityWindow",type:"error"},{inputs:[],name:"NotEOA",type:"error"},{inputs:[],name:"NotExclusiveRelayer",type:"error"},{inputs:[],name:"RelayFilled",type:"error"},{inputs:[],name:"WrongERC7683OrderId",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"caller",type:"address"}],name:"ClaimedRelayerRefund",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"EmergencyDeletedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"originToken",type:"address"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"EnabledDepositRoute",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!1,internalType:"address",name:"l2TokenAddress",type:"address"},{indexed:!1,internalType:"address[]",name:"refundAddresses",type:"address[]"},{indexed:!1,internalType:"bool",name:"deferredRefunds",type:"bool"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"ExecutedRelayerRefundRoot",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"relayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"},{components:[{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes32",name:"updatedMessageHash",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.V3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledRelay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"repaymentChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!0,internalType:"address",name:"relayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{components:[{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"enum V3SpokePoolInterface.FillType",name:"fillType",type:"uint8"}],indexed:!1,internalType:"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",name:"relayExecutionInfo",type:"tuple"}],name:"FilledV3Relay",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"FundsDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedDeposits",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isPaused",type:"bool"}],name:"PausedFills",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint32",name:"rootBundleId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"RelayedRootBundle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"inputToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"outputToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"RequestedSlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"depositor",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"updatedRecipient",type:"address"},{indexed:!1,internalType:"bytes",name:"updatedMessage",type:"bytes"},{indexed:!1,internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"RequestedSpeedUpV3Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"originChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"RequestedV3SlowFill",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"SetWithdrawalRecipient",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"}],name:"SetXDomainAdmin",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountToReturn",type:"uint256"},{indexed:!0,internalType:"uint256",name:"chainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"leafId",type:"uint32"},{indexed:!0,internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{indexed:!1,internalType:"address",name:"caller",type:"address"}],name:"TokensBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"inputToken",type:"address"},{indexed:!1,internalType:"address",name:"outputToken",type:"address"},{indexed:!1,internalType:"uint256",name:"inputAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"outputAmount",type:"uint256"},{indexed:!0,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!0,internalType:"uint32",name:"depositId",type:"uint32"},{indexed:!1,internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{indexed:!1,internalType:"uint32",name:"fillDeadline",type:"uint32"},{indexed:!1,internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"exclusiveRelayer",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"V3FundsDeposited",type:"event"},{inputs:[],name:"EMPTY_RELAYER",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"EMPTY_REPAYMENT_CHAIN_ID",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"INFINITE_FILL_DEADLINE",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_EXCLUSIVITY_PERIOD_SECONDS",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSFER_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_ADDRESS_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_crossDomainAdmin",type:"address"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"__SpokePool_init",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"l2TokenAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"claimRelayerRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"crossDomainAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositDeprecated_5947912356",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"int64",name:"relayerFeePct",type:"int64"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"uint256",name:"",type:"uint256"}],name:"depositFor",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositNow",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"depositQuoteTimeBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"uint32",name:"fillDeadlineOffset",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"depositV3Now",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"rootBundleId",type:"uint256"}],name:"emergencyDeleteRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"enabledDepositRoutes",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"rootBundleId",type:"uint32"},{components:[{internalType:"uint256",name:"amountToReturn",type:"uint256"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256[]",name:"refundAmounts",type:"uint256[]"},{internalType:"uint32",name:"leafId",type:"uint32"},{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address[]",name:"refundAddresses",type:"address[]"}],internalType:"struct SpokePoolInterface.RelayerRefundLeaf",name:"relayerRefundLeaf",type:"tuple"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeRelayerRefundLeaf",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"}],internalType:"struct V3SpokePoolInterface.V3SlowFill",name:"slowFillLeaf",type:"tuple"},{internalType:"uint32",name:"rootBundleId",type:"uint32"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"executeSlowRelayLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderId",type:"bytes32"},{internalType:"bytes",name:"originData",type:"bytes"},{internalType:"bytes",name:"fillerData",type:"bytes"}],name:"fill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"fillDeadlineBuffer",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"}],name:"fillRelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"},{internalType:"bytes32",name:"repaymentAddress",type:"bytes32"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"fillRelayWithUpdatedDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"fillStatuses",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"depositor",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"address",name:"exclusiveRelayer",type:"address"},{internalType:"address",name:"inputToken",type:"address"},{internalType:"address",name:"outputToken",type:"address"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint32",name:"depositId",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayDataLegacy",name:"relayData",type:"tuple"},{internalType:"uint256",name:"repaymentChainId",type:"uint256"}],name:"fillV3Relay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getCurrentTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"l2TokenAddress",type:"address"},{internalType:"address",name:"refundAddress",type:"address"}],name:"getRelayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"msgSender",type:"address"},{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"}],name:"getUnsafeDepositId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"getV3RelayHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"_initialDepositId",type:"uint32"},{internalType:"address",name:"_withdrawalRecipient",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"numberOfDeposits",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"pause",type:"bool"}],name:"pauseFills",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pausedDeposits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pausedFills",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"},{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"}],name:"relayRootBundle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"relayerRefund",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"originChainId",type:"uint256"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityDeadline",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],internalType:"struct V3SpokePoolInterface.V3RelayData",name:"relayData",type:"tuple"}],name:"requestSlowFill",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"rootBundles",outputs:[{internalType:"bytes32",name:"slowRelayRoot",type:"bytes32"},{internalType:"bytes32",name:"relayerRefundRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newCrossDomainAdmin",type:"address"}],name:"setCrossDomainAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"originToken",type:"address"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setEnableRoute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newWithdrawalRecipient",type:"address"}],name:"setWithdrawalRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"bytes32",name:"updatedRecipient",type:"bytes32"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"depositor",type:"address"},{internalType:"uint256",name:"depositId",type:"uint256"},{internalType:"uint256",name:"updatedOutputAmount",type:"uint256"},{internalType:"address",name:"updatedRecipient",type:"address"},{internalType:"bytes",name:"updatedMessage",type:"bytes"},{internalType:"bytes",name:"depositorSignature",type:"bytes"}],name:"speedUpV3Deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"tryMulticall",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct MultiCallerUpgradeable.Result[]",name:"results",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"depositor",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"inputToken",type:"bytes32"},{internalType:"bytes32",name:"outputToken",type:"bytes32"},{internalType:"uint256",name:"inputAmount",type:"uint256"},{internalType:"uint256",name:"outputAmount",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"exclusiveRelayer",type:"bytes32"},{internalType:"uint256",name:"depositNonce",type:"uint256"},{internalType:"uint32",name:"quoteTimestamp",type:"uint32"},{internalType:"uint32",name:"fillDeadline",type:"uint32"},{internalType:"uint32",name:"exclusivityParameter",type:"uint32"},{internalType:"bytes",name:"message",type:"bytes"}],name:"unsafeDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgradeTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"withdrawalRecipient",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wrappedNativeToken",outputs:[{internalType:"contract WETH9Interface",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],wh=["function balanceOf(address account) external view returns (uint256)"],Th=["function approve(address spender, uint256 amount) external returns (bool)"],Eh=function(e,t,r,n){try{const i=e.getCowShedAccount(t.sellTokenChainId,t.owner||t.account);return Promise.resolve(r.getCode(i)).then(function(e){return e&&"0x"!==e?n&&n>0?bc+n:bc:6e5})}catch(e){return Promise.reject(e)}},Sh=`${wc}/across`,Ih=[he,Se,se,ue,Te];class kh{constructor(e){this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.supportedTokens=null,this.info={name:"Across",logoUrl:`${gc}/across/across-logo.png`,dappId:Sh,website:"https://across.to"},this.api=new Nc(e.apiOptions),this.cowShedSdk=new Xc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Ih)}getBuyTokens(e){try{return Promise.resolve(this.getSupportedTokensState()).then(function(t){const r=Object.values(t[e.buyChainId]||{});return{tokens:r,isRouteAvailable:r.length>0}})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});const{sellTokenChainId:r,buyTokenChainId:n,buyTokenAddress:i}=e;return Promise.resolve(t.getSupportedTokensState()).then(function(e){const t=i.toLowerCase(),o=e[r],s=e[n],a=s&&s[t]?.symbol?.toLowerCase();return a?Object.values(o||{}).filter(e=>e.symbol?.toLowerCase()===a):[]})}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:s}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=s?s:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===E.SELL,amountsAndCosts:Gc(e,0,r),quoteTimestamp:Number(r.timestamp),expectedFillTimeSeconds:Number(r.estimatedFillTimeSec),fees:{bridgeFee:BigInt(r.relayerCapitalFee.total),destinationGasFee:BigInt(r.relayerGasFee.total)},limits:{minDeposit:BigInt(r.limits.minDeposit),maxDeposit:BigInt(r.limits.maxDeposit)},suggestedFees:r}}(e,0,t)})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){const{request:t,quote:r,cowShedSdk:n}=e,{sellTokenChainId:i,sellTokenAddress:o,buyTokenChainId:s,buyTokenAddress:a,account:u,receiver:l}=t,c=function(e){const t=Lc[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return gh(new dh(t,Ah),hh.CALL)}(i),d=function(e){const t=Fc[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return gh(new dh(t,vh),hh.CALL)}(i),h=function(e){return gh(new dh(e,wh),hh.STATICCALL)}(o),p=function(e){return gh(new dh(e,Th),hh.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return yh(e=>{const t=e.add(h.balanceOf(f)),r=BigInt(m.totalRelayFee.pct),n=e.add(d.multiplyAndSubtract(t,r));e.add(p.approve(c.address,t));const i=BigInt(m.timestamp);e.add(c.depositV3(f,l||u,o,a,t,n,s,m.exclusiveRelayer,i,m.fillDeadline,m.exclusivityDeadline,"0x"))})}({request:e,quote:t,cowShedSdk:this.cowShedSdk}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this;return Promise.resolve(Eh(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId)))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:Sh},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const n=this;return Promise.resolve(n.getRpcProvider(e).getTransactionReceipt(r)).then(function(r){return Promise.resolve(function(e,t,r){try{const n=function(e,t){const r=Lc[e]?.toLowerCase();if(!r)return[];const n=t.filter(e=>e.address.toLocaleLowerCase()===r&&e.topics[0]===Bc);return n.map(e=>{const{inputToken:t,outputToken:r,inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:c,recipient:d,exclusiveRelayer:h,message:p}=Mc.parseLog(e).args;return{inputToken:jc(t),outputToken:jc(r),inputAmount:n,outputAmount:i,destinationChainId:o,depositId:s,quoteTimestamp:a,fillDeadline:u,exclusivityDeadline:l,depositor:jc(c),recipient:jc(d),exclusiveRelayer:h,message:p}})}(e,r.logs);if(0===n.length)return Promise.resolve(null);const i=function(e,t){const r=t.filter(t=>t.address.toLowerCase()===Ve[e].toLowerCase()&&t.topics[0]===Dc);return r.map(e=>{const t=Oc.parseLog(e).args,{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a}=t;return{owner:r,sellToken:n,buyToken:i,sellAmount:o,buyAmount:s,feeAmount:a,orderUid:"0x"+e.data.slice(450,562)}})}(e,r.logs),o=i.findIndex(e=>e.orderUid===t);if(o<0)return Promise.resolve(null);const s=n[o];return s?Promise.resolve({inputTokenAddress:s.inputToken,outputTokenAddress:s.outputToken,inputAmount:BigInt(s.inputAmount.toString()),outputAmount:BigInt(s.outputAmount.toString()),owner:s.depositor,quoteTimestamp:parseInt(s.quoteTimestamp.toString()),fillDeadline:parseInt(s.fillDeadline.toString()),recipient:s.recipient,sourceChainId:e,destinationChainId:parseInt(s.destinationChainId.toString()),bridgingId:s.depositId.toString()}):(J(`Trade event found at index ${o} but only ${n.length} deposit events available`),Promise.resolve(null))}catch(e){return Promise.reject(e)}}(e,t,r)).then(function(t){return t?Promise.resolve(n.getStatus(t.bridgingId,e)).then(function(e){return{params:t,status:e}}):null})})}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e,t){try{return Promise.resolve(this.api.getDepositStatus({originChainId:t.toString(),depositId:e})).then(function(e){return{status:(t=e.status,Vc[t]),depositTxHash:e.depositTxHash,fillTxHash:e.fillTx};var t})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getSupportedTokensState(){try{const e=this;function t(){return e.supportedTokens}const r=function(){if(!e.supportedTokens)return Promise.resolve(e.api.getSupportedTokens()).then(function(t){e.supportedTokens=t.reduce((e,t)=>(e[t.chainId]=e[t.chainId]||{},e[t.chainId][t.address.toLowerCase()]=t,e),{})})}();return Promise.resolve(r&&r.then?r.then(t):t())}catch(n){return Promise.reject(n)}}}const Ph=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_socketGateway",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"addVerifier",inputs:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"verifier",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominateOwner",inputs:[{name:"nominee_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nominee",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parseCallData",inputs:[{name:"callData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"tuple",internalType:"struct SocketVerifier.UserRequest",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"bytes",internalType:"bytes"}]}],stateMutability:"nonpayable"},{type:"function",name:"routeIdsToVerifiers",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"socketGateway",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"validateRotueId",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRouteId",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateSocketRequest",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"expectedRequest",type:"tuple",internalType:"struct SocketVerifier.UserRequestValidation",components:[{name:"routeId",type:"uint32",internalType:"uint32"},{name:"socketRequest",type:"tuple",internalType:"struct SocketVerifier.SocketRequest",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"toChainId",type:"uint256",internalType:"uint256"},{name:"token",type:"address",internalType:"address"},{name:"signature",type:"bytes4",internalType:"bytes4"}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnerClaimed",inputs:[{name:"claimer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerNominated",inputs:[{name:"nominee",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AmountNotMatched",inputs:[]},{type:"error",name:"FailedToVerify",inputs:[]},{type:"error",name:"OnlyNominee",inputs:[]},{type:"error",name:"OnlyOwner",inputs:[]},{type:"error",name:"RecipientNotMatched",inputs:[]},{type:"error",name:"RouteIdNotFound",inputs:[]},{type:"error",name:"RouteIdNotMatched",inputs:[]},{type:"error",name:"SignatureNotMatched",inputs:[]},{type:"error",name:"ToChainIdNotMatched",inputs:[]},{type:"error",name:"TokenNotMatched",inputs:[]}],Ch=[{type:"function",name:"approveAndBridge",inputs:[{name:"token",type:"address",internalType:"contract IERC20"},{name:"minAmount",type:"uint256",internalType:"uint256"},{name:"nativeTokenExtraFee",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"}],Nh={across:{["0x792ebcb9".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:488,bytes_length:32,bytesString_startIndex:978,bytesString_length:64}},["0xe421f352".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64},outputAmount:{bytes_startIndex:392,bytes_length:32,bytesString_startIndex:786,bytesString_length:64}}},cctp:{["0xb7dfe9d0".toLowerCase()]:{inputAmount:{bytes_startIndex:8,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}}},"gnosis-native-bridge":{["0x3bf5c228".toLowerCase()]:{inputAmount:{bytes_startIndex:136,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}},["0xfcb23eb0".toLowerCase()]:{inputAmount:{bytes_startIndex:104,bytes_length:32,bytesString_startIndex:18,bytesString_length:64}}}};var xh;!function(e){e.Across="across",e.CircleCCTP="cctp",e.GnosisNative="gnosis-native-bridge"}(xh||(xh={}));const _h={Across:xh.Across,"Circle CCTP":xh.CircleCCTP,"Gnosis Native":xh.GnosisNative};var Rh,Mh;function Oh(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=xt(n,i).big,a=xt(r.route.output.amount,o).big,u=a,l=r.route.routeDetails.routeFee.amount,c=function(e,t){return e*BigInt(1e4-t)/10000n}(u,t);return{beforeFee:{sellAmount:s,buyAmount:a},afterFee:{sellAmount:s,buyAmount:u},afterSlippage:{sellAmount:s,buyAmount:c},costs:{bridgingFee:{feeBps:function(e,t){if(0n===t)throw new Error("Denominator is 0");if(e>t)throw new Error("Fee amount is greater than amount");return Number((10000n*e+t/2n)/t)}(BigInt(r.route.routeDetails.routeFee.amount),BigInt(n)),amountInSellCurrency:BigInt(l),amountInBuyCurrency:BigInt(0)}},slippageBps:t}}function Bh(e){if(!e||e.length<10)throw new Error("Invalid txData: too short");if(!e.startsWith("0x"))throw new Error("Invalid txData: must start with 0x");const t=e.slice(2);if(t.length<8)throw new Error("Invalid txData: insufficient data for routeId");const r=`0x${t.slice(0,8)}`,n=`0x${t.slice(8)}`;if(n.length<10)throw new Error("Invalid txData: insufficient data for function selector");const i=`${n.slice(0,10)}`;return{routeId:r,encodedFunctionData:n,functionSelector:i}}function Dh(e){const t=new URLSearchParams;return Object.entries(e).forEach(([e,r])=>{Array.isArray(r)?t.append(e,r.join(",")):t.append(e,String(r))}),t}!function(e){e.COMPLETED="COMPLETED",e.PENDING="PENDING"}(Rh||(Rh={})),function(e){e.ACROSS="across",e.CCTP="cctp"}(Mh||(Mh={}));const Lh="0xa27A3f5A96DF7D8Be26EE2790999860C00eb688D",Fh={[B.MAINNET]:Lh,[B.GNOSIS_CHAIN]:Lh,[B.ARBITRUM_ONE]:Lh,[B.BASE]:Lh,[B.AVALANCHE]:Lh,[B.POLYGON]:Lh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Lh},Uh="0x936fa1cfd96849329B18b915773E176718A64b95",Gh={[B.MAINNET]:Uh,[B.GNOSIS_CHAIN]:Uh,[B.ARBITRUM_ONE]:Uh,[B.BASE]:Uh,[B.AVALANCHE]:Uh,[B.POLYGON]:Uh,[B.LENS]:void 0,[B.BNB]:void 0,[B.SEPOLIA]:void 0,[D.OPTIMISM]:Uh};function jh(e,t){try{var r=e()}catch(e){return t(e)}return r&&r.then?r.then(void 0,t):r}const Hh="https://public-backend.bungee.exchange/api/v1/bungee",qh="https://microservices.socket.tech/loki",Vh="https://app.across.to/api",zh=["across","cctp","gnosis-native-bridge"],Kh={bungee:"Bungee Api Error",events:"Bungee Events Api Error",across:"Across Api Error","bungee-manual":"Bungee Manual Api Error"};class Wh{constructor(e={apiBaseUrl:Hh,eventsApiBaseUrl:qh,acrossApiBaseUrl:Vh,includeBridges:zh}){this.options=void 0,this.options=e,this.validateBridges(this.getSupportedBridges())}validateBridges(e){if(e?.some(e=>!zh.includes(e)))throw new F(`Unsupported bridge: ${e.filter(e=>!zh.includes(e)).join(", ")}`,{includeBridges:e})}getBuyTokens(e,t){try{const r=this,{sellChainId:n,sellTokenAddress:i,buyChainId:o}=e,s=r.getSupportedBridges(t?.includeBridges);r.validateBridges(s);const a={toChainId:o.toString(),includeBridges:s.join(",")};n&&(a.fromChainId=n.toString()),i&&(a.fromTokenAddress=i);const u=Dh(a);return Promise.resolve(r.makeApiCall("bungee-manual","/dest-tokens",u)).then(function(e){if(!e.success)throw new F("Bungee Api Error: Buy tokens failed",e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this,{fromChainId:r,toChainId:n,toTokenAddress:i}=e,o=t.getSupportedBridges(e.includeBridges);t.validateBridges(o);const s=Dh({fromChainId:r.toString(),toChainId:n.toString(),toTokenAddress:i,includeBridges:o.join(",")});return Promise.resolve(t.makeApiCall("bungee-manual","/intermediate-tokens",s)).then(function(e){if(!e.success)throw new L(O.NO_INTERMEDIATE_TOKENS,e);return e.result.map(e=>({...e,logoUrl:e.logoURI}))})}catch(e){return Promise.reject(e)}}getBungeeQuoteWithBuildTx(e){try{const t=this;return Promise.resolve(t.getBungeeQuote(e)).then(function(e){return Promise.resolve(t.getBungeeBuildTx(e)).then(function(t){return{bungeeQuote:e,buildTx:t}})})}catch(e){return Promise.reject(e)}}getBungeeQuote(e){try{const t=this;return Promise.resolve(jh(function(){e.includeBridges=t.getSupportedBridges(e.includeBridges),t.validateBridges(e.includeBridges);const r=Dh(e);return Promise.resolve(t.makeApiCall("bungee","/quote",r,Jh)).then(function(e){if(!e.success)throw new L(O.QUOTE_ERROR,e);const t=Math.floor(Date.now()/1e3),{manualRoutes:r}=e.result;if(0===r.length)throw new L(O.NO_ROUTES,e.result);const n=r[0];if(!n?.routeDetails?.name)throw new L(O.NO_ROUTES,{manualRoutes:r});const i=_h[n.routeDetails.name];if(!i)throw new L(O.INVALID_BRIDGE,{firstRoute:n});const o=r.sort((e,t)=>Number(t.output.amount)-Number(e.output.amount));return{originChainId:e.result.originChainId,destinationChainId:e.result.destinationChainId,userAddress:e.result.userAddress,receiverAddress:e.result.receiverAddress,input:e.result.input,route:o[0],routeBridge:i,quoteTimestamp:t}})},function(e){throw console.error("🔴 Error getting bungee quote:",e),e}))}catch(e){return Promise.reject(e)}}getBungeeBuildTx(e){try{return Promise.resolve(this.makeApiCall("bungee","/build-tx",{quoteId:e.route.quoteId})).then(function(e){if(!e.success)throw new L(O.TX_BUILD_ERROR,e);return e.result})}catch(e){return Promise.reject(e)}}verifyBungeeBuildTx(e,t,r){try{const n=this,{routeId:i,functionSelector:o}=Bh(t.txData.data),s={amount:e.input.amount,recipient:e.receiverAddress,toChainId:e.destinationChainId.toString(),token:e.input.token.address,signature:o};return Promise.resolve(n.verifyBungeeBuildTxData(e.originChainId,t.txData.data,i,s,r))}catch(e){return Promise.reject(e)}}verifyBungeeBuildTxData(e,t,r,n,o){try{let s;function a(e){let i;if(s)return e;const o={routeId:r,socketRequest:n},a=jh(function(){return Promise.resolve(c.callStatic.validateSocketRequest(t,o)).then(function(){})},function(e){return console.error("🔴 Error validating socket request:",e),i=1,!1});return a&&a.then?a.then(function(e){return!i||e}):!i||a}const u=zl(o),l=Fh[e];if(!l)throw new L(O.TX_BUILD_ERROR,{originChainId:e,error:"Socket verifier not found"});const c=new i.Contract(l,Ph,u),d=jh(function(){return Promise.resolve(c.callStatic.validateRotueId(t,r)).then(function(){})},function(e){return console.error("🔴 Error validating routeId:",e),s=1,!1});return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(h){return Promise.reject(h)}}getEvents(e){try{return Promise.resolve(this.makeApiCall("events",e.orderId?"/order":"/tx",e,Qh)).then(function(e){if(!e.success)throw new F("Bungee Events Api Error",e);return e.result})}catch(e){return Promise.reject(e)}}getAcrossStatus(e){try{return Promise.resolve(this.makeApiCall("across","/deposit/status",{depositTxHash:e},Yh)).then(function(e){return e.status})}catch(e){return Promise.reject(e)}}getSupportedBridges(e){var t;return null!==(t=null!=e?e:this.options.includeBridges)&&void 0!==t?t:zh}makeApiCall(e,t,r,n){try{const i=this,o=`${{bungee:i.options.apiBaseUrl||Hh,events:i.options.eventsApiBaseUrl||qh,across:i.options.acrossApiBaseUrl||Vh,"bungee-manual":i.options.manualApiBaseUrl||"https://public-backend.bungee.exchange/api/v1/bungee-manual"}[e]}${t}?${new URLSearchParams(r).toString()}`;return J(`Fetching ${e} API: GET ${o}. Params: ${JSON.stringify(r)}`),Promise.resolve(fetch(o,{method:"GET"})).then(function(t){let i;function o(o){return i?o:Promise.resolve(t.json()).then(function(t){if(n&&!n(t))throw new L(O.INVALID_API_JSON_RESPONSE,{json:t,apiType:e,params:r});return t})}const s=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(t){throw new L(O.API_ERROR,{errorBody:t,type:Kh[e]})})}();return s&&s.then?s.then(o):o(s)})}catch(e){return Promise.reject(e)}}}function Jh(e){if("object"!=typeof e||null===e)return!1;if(!("success"in e)||!("statusCode"in e)||!("result"in e)||"boolean"!=typeof e.success||"number"!=typeof e.statusCode)return!1;const t=e.result;if("object"!=typeof t||null===t)return!1;const r=t;return!!("originChainId"in r&&"destinationChainId"in r&&"userAddress"in r&&"receiverAddress"in r&&"manualRoutes"in r&&Array.isArray(r.manualRoutes))&&r.manualRoutes.every(e=>{if("object"!=typeof e||null===e)return!1;if(!("routeDetails"in e)||"object"!=typeof e.routeDetails||null===e.routeDetails)return!1;if(!("routeFee"in e.routeDetails))return!1;const t=e.routeDetails.routeFee;return"object"==typeof t&&null!==t&&"amount"in t&&"quoteId"in e&&"quoteExpiry"in e&&"output"in e&&"gasFee"in e&&"slippage"in e&&"estimatedTime"in e&&"routeDetails"in e})}function Qh(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!("success"in t&&"result"in t&&"boolean"==typeof t.success&&Array.isArray(t.result))&&t.result.every(e=>"object"==typeof e&&null!==e&&"identifier"in e&&"bridgeName"in e&&"fromChainId"in e&&"isCowswapTrade"in e&&"orderId"in e&&"recipient"in e&&"sender"in e&&"srcTxStatus"in e&&"destTxStatus"in e)}function Yh(e){return"object"==typeof e&&null!==e&&"status"in e}const Xh=function(e,t){try{let n;function r(e){if(n)return e;if(i.srcTxStatus===Rh.COMPLETED&&i.destTxStatus===Rh.COMPLETED)return{status:M.EXECUTED,depositTxHash:i.srcTransactionHash,fillTxHash:i.destTransactionHash};throw new Error("Unknown status")}if(!e?.length)return Promise.resolve({status:M.UNKNOWN});const i=e[0];if(i.srcTxStatus===Rh.PENDING)return Promise.resolve({status:M.IN_PROGRESS});const o=function(){if(i.srcTxStatus===Rh.COMPLETED&&i.destTxStatus===Rh.PENDING){function e(e){return n?e:(n=1,{status:M.IN_PROGRESS,depositTxHash:i.srcTransactionHash})}const r=function(){if(i.bridgeName===Mh.ACROSS)return function(e,r){try{var o=Promise.resolve(t(i.orderId)).then(function(e){return"expired"===e?(n=1,{status:M.EXPIRED,depositTxHash:i.srcTransactionHash}):"refunded"===e?(n=1,{status:M.REFUND,depositTxHash:i.srcTransactionHash}):void 0})}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(e){console.error("BungeeBridgeProvider get across status error",e)})}();return r&&r.then?r.then(e):e(r)}}();return Promise.resolve(o&&o.then?o.then(r):r(o))}catch(s){return Promise.reject(s)}},$h="cow-sdk://bridging/providers/bungee",Zh=[he,Se,se,ue,Te,ye,ce];class ep{constructor(e){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.getRpcProvider=void 0,this.info={name:"Bungee",logoUrl:`${gc}/bungee/bungee-logo.png`,dappId:$h,website:"https://www.bungee.exchange"},this.options=e,this.api=new Wh(e.apiOptions),this.cowShedSdk=new Xc(e.cowShedOptions),this.getRpcProvider=e.getRpcProvider}getNetworks(){return Promise.resolve(Zh)}getBuyTokens(e){try{return Promise.resolve(this.api.getBuyTokens(e)).then(function(e){return{tokens:e,isRouteAvailable:e.length>0}})}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{const t=this;if(e.kind!==E.SELL)throw new L(O.ONLY_SELL_ORDER_SUPPORTED,{kind:e.kind});return Promise.resolve(t.api.getIntermediateTokens({fromChainId:e.sellTokenChainId,toChainId:e.buyTokenChainId,toTokenAddress:e.buyTokenAddress}))}catch(e){return Promise.reject(e)}}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o,amount:s,receiver:a,account:u,owner:l}=e,c={userAddress:t.cowShedSdk.getCowShedAccount(n,null!=l?l:u),originChainId:n.toString(),destinationChainId:i.toString(),inputToken:r,inputAmount:s.toString(),receiverAddress:null!=a?a:u,outputToken:o,includeBridges:t.options.apiOptions?.includeBridges,enableManual:!0,disableSwapping:!0,disableAuto:!0};return Promise.resolve(t.api.getBungeeQuoteWithBuildTx(c)).then(function(r){return Promise.resolve(t.api.verifyBungeeBuildTx(r.bungeeQuote,r.buildTx,zl(e.signer))).then(function(t){if(!t)throw new L(O.TX_BUILD_ERROR,r);return function(e,t,r){const{kind:n}=e,{bungeeQuote:i,buildTx:o}=r;return{isSell:n===E.SELL,amountsAndCosts:Oh(e,0,i),quoteTimestamp:Number(i.quoteTimestamp),expectedFillTimeSeconds:Number(i.route.estimatedTime),fees:{bridgeFee:BigInt(i.route.routeDetails.routeFee.amount),destinationGasFee:BigInt(0)},limits:{minDeposit:BigInt(0),maxDeposit:BigInt(0)},bungeeQuote:i,buildTx:o}}(e,0,r)})})}catch(e){return Promise.reject(e)}}getUnsignedBridgeCall(e,t){try{return Promise.resolve(function(e){try{const{request:t,quote:r}=e,{bungeeQuote:n,buildTx:o}=r,s=n.routeBridge,{functionSelector:a}=Bh(o.txData.data),u=a.toLowerCase();let l=!1,c=0;const d=0n;s===xh.Across&&(l=!0,c=Nh[s][u].outputAmount.bytes_startIndex);const h=i.utils.defaultAbiCoder.encode(["uint256","bool","uint256"],[Nh[s][u].inputAmount.bytes_startIndex,l,c]);let p=o.txData.data;p.startsWith("0x")&&(p=p.slice(2));let f=h;f.startsWith("0x")&&(f=f.slice(2));const m="0x"+p+f,y=n.input.amount,g=new i.utils.Interface(Ch).encodeFunctionData("approveAndBridge",[t.sellTokenAddress,y,d,m]),b=(t.sellTokenAddress.toLowerCase()===Be.toLowerCase()?BigInt(y):0n)+d,v=Gh[t.sellTokenChainId];if(!v)throw new Error("BungeeApproveAndBridgeV1 not found");return Promise.resolve({to:v,data:g,value:b})}catch(e){return Promise.reject(e)}}({request:e,quote:t}))}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){try{const t=this,r=t.isExtraGasRequired(e)?vc:void 0;return Promise.resolve(Eh(t.cowShedSdk,e,t.getRpcProvider(e.sellTokenChainId),r))}catch(e){return Promise.reject(e)}}getSignedHook(e,t,r,n,i,o){try{return Promise.resolve(this.cowShedSdk.signCalls({calls:[{target:t.to,value:t.value,callData:t.data,allowFailure:!1,isDelegateCall:!0}],chainId:e,signer:r,gasLimit:BigInt(o),deadline:i,nonce:n})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:$h},recipient:t}})}catch(e){return Promise.reject(e)}}getBridgingParams(e,t,r){try{const e=this;return Promise.resolve(e.api.getEvents({orderId:t})).then(function(r){const n=r[0];return n?Promise.resolve(Xh(r,t=>e.api.getAcrossStatus(t))).then(function(e){return{params:{inputTokenAddress:n.srcTokenAddress,outputTokenAddress:n.destTokenAddress,inputAmount:BigInt(n.srcAmount),outputAmount:n.destAmount?BigInt(n.destAmount):null,owner:n.sender,quoteTimestamp:null,fillDeadline:null,recipient:n.recipient,sourceChainId:n.fromChainId,destinationChainId:n.toChainId,bridgingId:t},status:e}}):null})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://socketscan.io/tx/${e}`}getStatus(e){try{const t=this;return Promise.resolve(t.api.getEvents({orderId:e})).then(function(e){return Xh(e,e=>t.api.getAcrossStatus(e))})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getRefundBridgingTx(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}isExtraGasRequired(e){const{sellTokenChainId:t,buyTokenChainId:r}=e;return t===B.MAINNET&&r===B.GNOSIS_CHAIN}}const tp=x`
2
2
  query Totals {
3
3
  totals {
4
4
  tokens
@@ -11,19 +11,19 @@ import"cross-fetch/polyfill";import{RateLimiter as e}from"limiter";import{backOf
11
11
  feesEth
12
12
  }
13
13
  }
14
- `,ep=x`
14
+ `,rp=x`
15
15
  query LastDaysVolume($days: Int!) {
16
16
  dailyTotals(orderBy: timestamp, orderDirection: desc, first: $days) {
17
17
  timestamp
18
18
  volumeUsd
19
19
  }
20
20
  }
21
- `,tp=x`
21
+ `,np=x`
22
22
  query LastHoursVolume($hours: Int!) {
23
23
  hourlyTotals(orderBy: timestamp, orderDirection: desc, first: $hours) {
24
24
  timestamp
25
25
  volumeUsd
26
26
  }
27
27
  }
28
- `,rp="https://api.thegraph.com/subgraphs/name/cowprotocol",np={[B.MAINNET]:rp+"/cow",[B.GNOSIS_CHAIN]:rp+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null},ip={[B.MAINNET]:rp+"/cow-staging",[B.GNOSIS_CHAIN]:rp+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null};class op{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...Re,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(Zh,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(ep,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(tp,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,r={}){try{const n=this,{chainId:i,env:o}=n.getContextWithOverride(r),s=n.getEnvConfigs(o)[i];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(r,n){try{var i=Promise.resolve(_(s,e,t))}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(r){throw console.error(`[subgraph:${n.API_NAME}]`,r),new K(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${r}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?np:ip}}var sp,ap;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(sp||(sp={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(ap||(ap={}));const up=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},lp=function(e,t,r,n){try{const i=er.connect(Ke[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},cp=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],dp=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],hp=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],pp=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],fp=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],mp=["tuple(address handler, bytes32 salt, bytes staticInput)"],yp=(e,t)=>`${t}@${e}`;function gp(e,t){return e===Ke[t]}function bp(e,t){return e===We[t]}function vp(e,t){return er.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function Ap(e){return r.defaultAbiCoder.encode(mp,[e])}function wp(e){const{handler:t,salt:n,staticInput:i}=r.defaultAbiCoder.decode(mp,e)[0];return{handler:t,salt:n,staticInput:i}}function Tp(e,t){try{r.defaultAbiCoder.encode(e,t)}catch{return!1}return!0}function Ep(e){return new Date(1e3*e).toISOString()}function Sp(e){if(cp.includes(e))return P.ERC20;if(dp.includes(e))return P.EXTERNAL;if(hp.includes(e))return P.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Ip(e){if(pp.includes(e))return E.SELL;if(fp.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function kp(e){const{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:Ip(u.toString()),sellTokenBalance:Sp(s.toString()),buyTokenBalance:Sp(o.toString())}}function Pp(e){return e.isValid}let Cp,Np;function xp(){return Cp||(Cp=Yt.createInterface()),Cp}function _p(e,t){return Np||(Np=Yt.connect(We[e],t)),Np}class Rp{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=r.keccak256(r.randomBytes(32)),data:o,hasOffChainInput:s=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(n)||32!==i.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=o,this.staticInput=this.transformDataToStruct(o),this.hasOffChainInput=s}get context(){}assertIsValid(){const e=this.isValid();if(!Pp(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=xp(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,i,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),xp().encodeFunctionData("remove",[this.id])}get id(){return r.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.keccak256(Ap(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=_p(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return Pp(i)?Promise.resolve(t.pollValidate(e)).then(function(i){return i||Promise.resolve(t.isAuthorized(e)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,t.leaf,t.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(e,t,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(Ot.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,kp(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(e){return o?e:{result:ap.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){return e?(o=1,e):(o=1,{result:ap.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:ap.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:ap.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(e){return a(e)}return u&&u.then?u.then(void 0,a):u}(0,function(e){return{result:ap.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return _p(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return _p(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=wp(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Mp=["address","bytes32","bytes"],Op=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Bp{constructor(e,t,r,n=sp.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=n,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!r||!t&&r)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const r=t[e];if(!Bp.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:r,root:n,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const r in t)if(t.hasOwnProperty(r)){const{orderType:n,...i}=t[r];if(!Bp.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Bp.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?s.from(t):t}),o=new Bp(t,r,n);return o.location=i,o}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const r=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[r.id]=r,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=R.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Mp)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const i=this;void 0===e&&(e=i.location);const o=function(){try{switch(e){case sp.PRIVATE:return Promise.resolve("0x");case sp.EMITTED:return Promise.resolve(i.encodeToABI(t));case sp.SWARM:case sp.WAKU:case sp.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,r){try{var o=Promise.resolve(n(i.encodeToJSON(t)))}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(o().then(t=>{try{return r.hexlify(r.arrayify(t)),i.location=e,{location:e,data:t}}catch{throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,r,t.proof))}const s=_p(r,n);return Promise.resolve(i?Promise.resolve(i(e,t.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,r])=>e&&e(r)||void 0===e?{idx:t,value:r}:void 0).reduce((e,t)=>{if(t){const r={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:r})}return e},[])}encodeToABI(e){return r.defaultAbiCoder.encode(Op,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Bp.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Bp.orderTypeRegistry={}}}Bp.orderTypeRegistry={};class Dp{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(e).reduce((e,[t,r])=>(e[t.toLowerCase()]=r,e),{})}fromParams(e){const{handler:t}=e,r=this.knownOrderTypes[t.toLocaleLowerCase()];if(r)return r(e)}}const Lp="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Fp="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",Up=s.from(2).pow(32).sub(1),Gp=s.from(31536e3),jp=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Hp,qp;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(Hp||(Hp={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(qp||(qp={}));const Vp={startType:qp.AT_MINING_TIME},zp={durationType:Hp.AUTO};class Kp extends Rp{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Lp)throw new Error(`InvalidHandler: Expected: ${Lp}, provided: ${t}`);super({handler:Lp,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Kp({handler:Lp,data:e,salt:t})}static fromParams(e){return Kp.deserialize(Ap(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Fp,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:r,buyAmount:n,startTime:i=Vp,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=zp}=this.data;if(e==r)return"InvalidSameToken";if(e==o.AddressZero||r==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!n.gt(o.Zero))return"InvalidMinBuyAmount";if(i.startType===qp.AT_EPOCH){const e=i.epoch;if(!e.gte(o.Zero)||!e.lt(Up))return"InvalidStartTime"}return s.gt(o.One)&&s.lte(Up)?a.gt(o.Zero)&&a.lte(Gp)?u.durationType!==Hp.LIMIT_DURATION||u.duration.lte(a)?Tp(jp,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===qp.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(Up))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===Hp.LIMIT_DURATION?e+t.sub(1).mul(r).add(n.duration).toNumber():e+t.mul(r).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(up(e.provider)).then(function(r){const{blockInfo:n=r}=e,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>i)return{result:ap.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Ep(e)})`};const r=t.endTimestamp(e);return i>=r?{result:ap.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Ep(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){const t=e;return t?.message?.includes("Cabinet is not set")?{result:ap.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:ap.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:ap.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(up(r.provider)).then(function(t){const{blockInfo:n=t}=r,{blockTimestamp:i}=n,o=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(r)).then(function(e){if(i<e)return{result:ap.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Ep(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:ap.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Ep(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:ap.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=e+(r+1)*o;return{result:ap.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Ep(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return Ap(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(jp,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Lp,jp,(e,t)=>new Kp({handler:Lp,salt:t,data:Jp(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=Vp,timeBetweenParts:s,durationOfPart:a=zp,receiver:u,appData:l}=this.data,c=o.startType===qp.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===Hp.AUTO?"AUTO":a.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:c,timeBetweenParts:s.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return Wp(e)}transformStructToData(e){return Jp(e)}}function Wp(e){const{sellAmount:t,buyAmount:r,numberOfParts:n,startTime:i=Vp,timeBetweenParts:s,durationOfPart:a=zp,...u}=e,{partSellAmount:l,minPartLimit:c}=n&&!n.isZero()?{partSellAmount:t.div(n),minPartLimit:r.div(n)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:l,minPartLimit:c,t0:i.startType===qp.AT_MINING_TIME?o.Zero:i.epoch,n:n,t:s,span:a.durationType===Hp.AUTO?o.Zero:a.duration,...u}}function Jp(e){const{n:t,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:c}=e,d=s.isZero()?{durationType:Hp.AUTO}:{durationType:Hp.LIMIT_DURATION,duration:s},h=o.isZero()?{startType:qp.AT_MINING_TIME}:{startType:qp.AT_EPOCH,epoch:o};return{sellAmount:r.mul(t),buyAmount:n.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:a,buyToken:u,receiver:l,appData:c}}const Qp={[Lp]:e=>Kp.fromParams(e)};export{Ce as ADDITIONAL_TARGET_CHAINS_MAP,Ne as ALL_CHAINS,xe as ALL_CHAINS_IDS,ke as ALL_SUPPORTED_CHAINS,Ie as ALL_SUPPORTED_CHAINS_MAP,Pe as ALL_SUPPORTED_CHAIN_IDS,Sh as AcrossBridgeProvider,D as AdditionalTargetChainId,Qe as BARN_ETH_FLOW_ADDRESSES,U as BridgeOrderParsingError,F as BridgeProviderError,L as BridgeProviderQuoteError,O as BridgeQuoteErrors,M as BridgeStatus,kc as BridgingSdk,$h as BungeeBridgeProvider,dt as BuyTokenDestination,Le as COMPOSABLE_COW,We as COMPOSABLE_COW_CONTRACT_ADDRESS,mp as CONDITIONAL_ORDER_PARAMS_ABI,Ve as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,ze as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,Fe as COW_SHED_1_0_0_VERSION,Ue as COW_SHED_1_0_1_VERSION,Kc as COW_SHED_712_TYPES,je as COW_SHED_FACTORY,He as COW_SHED_IMPLEMENTATION,Ge as COW_SHED_LATEST_VERSION,bc as COW_SHED_PROXY_CREATION_GAS,qe as COW_SHED_PROXY_INIT_CODE,Fp as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,ht as CompetitionOrderStatus,Rp as ConditionalOrder,Dp as ConditionalOrderFactory,K as CowError,Wc as CowShedHooks,Qc as CowShedSdk,nt as DEFAULT_BACKOFF_OPTIONS,Qp as DEFAULT_CONDITIONAL_ORDER_REGISTRY,Re as DEFAULT_COW_API_CONTEXT,gc as DEFAULT_GAS_COST_FOR_HOOK_ESTIMATION,Xe as DEFAULT_IPFS_READ_URI,$e as DEFAULT_IPFS_WRITE_URI,it as DEFAULT_LIMITER_OPTIONS,yp as DEFAULT_TOKEN_FORMATTER,Hp as DurationType,_e as ENVS_LIST,Be as ETH_ADDRESS,Je as ETH_FLOW_ADDRESSES,De as EXTENSIBLE_FALLBACK_HANDLER,Ke as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,pt as EcdsaSigningScheme,vc as HOOK_DAPP_BRIDGE_PROVIDER_PREFIX,Gp as MAX_FREQUENCY,Up as MAX_UINT32,Ye as MAX_VALID_TO_EPOCH,Bp as Multiplexer,Y as NATIVE_CURRENCY_ADDRESS,at as ORDER_BOOK_PROD_CONFIG,ut as ORDER_BOOK_STAGING_CONFIG,Ql as ORDER_PRIMARY_TYPE,ft as OnchainOrderData,ct as OrderBookApi,tt as OrderBookApiError,mt as OrderCancellationError,yt as OrderClass,gt as OrderKind,bt as OrderPostError,vt as OrderQuoteSideKindBuy,At as OrderQuoteSideKindSell,Ot as OrderSigningUtils,wt as OrderStatus,ap as PollResultCode,Tt as PriceEstimationError,Et as PriceQuality,sp as ProofLocation,yc as RAW_PROVIDERS_FILES_PATH,np as SUBGRAPH_PROD_CONFIG,ip as SUBGRAPH_STAGING_CONFIG,St as SellTokenSource,It as SigningScheme,qp as StartTimeValue,op as SubgraphApi,B as SupportedChainId,X as TOKEN_LIST_IMAGES_PATH,Lp as TWAP_ADDRESS,fc as TradingSdk,Kp as Twap,Z as WRAPPED_NATIVE_CURRENCIES,ch as WeirollCommandFlags,se as arbitrumOne,wc as areHooksEqual,H as assertIsBridgeQuoteAndPost,q as assertIsQuoteAndPost,ye as avalanche,ue as base,be as bnb,Wl as buildAppData,nr as calculateUniqueOrderId,vp as createSetDomainVerifierTx,mh as createWeirollContract,fh as createWeirollDelegateCall,yh as createWeirollLibrary,wp as decodeParams,Q as enableLogging,Ap as encodeParams,Ep as formatEpoch,kp as fromStructToOrder,Kl as generateAppDataFromDoc,xt as getBigNumber,up as getBlockInfo,Dt as getChainInfo,Ic as getCrossChainOrder,lp as getDomainVerifier,cr as getEthFlowTransaction,Ac as getHookMockForCostEstimation,Pp as getIsValidResult,Kt as getOrderToSign,Bt as getPartnerFeeBps,V as getPostHooks,pc as getPreSignTransaction,ac as getQuote,Nt as getQuoteAmountsAndCosts,Pt as getQuoteAmountsWithCosts,oc as getQuoteWithSigner,ce as gnosisChain,Ft as isAdditionalTargetChain,z as isAppDoc,G as isBridgeQuoteAndPost,bp as isComposableCow,gp as isExtensibleFallbackHandler,j as isQuoteAndPost,Lt as isSupportedChain,Ut as isTargetChainId,Tp as isValidAbi,Ae as lens,he as mainnet,Oe as mapAddressToSupportedNetworks,ar as mapQuoteAmountsAndCosts,Me as mapSupportedNetworks,zl as mergeAppDataDoc,te as nativeCurrencyTemplate,Te as optimism,Se as polygon,hr as postCoWProtocolTrade,hc as postLimitOrder,dr as postSellNativeCurrencyOrder,dc as postSwapOrder,cc as postSwapOrderFromQuote,et as request,fe as sepolia,ic as suggestSlippageBps,ir as swapParamsToLimitOrderParams,Wp as transformDataToStruct,Jp as transformStructToData};
28
+ `,ip="https://api.thegraph.com/subgraphs/name/cowprotocol",op={[B.MAINNET]:ip+"/cow",[B.GNOSIS_CHAIN]:ip+"/cow-gc",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null},sp={[B.MAINNET]:ip+"/cow-staging",[B.GNOSIS_CHAIN]:ip+"/cow-gc-staging",[B.ARBITRUM_ONE]:null,[B.BASE]:null,[B.SEPOLIA]:null,[B.POLYGON]:null,[B.AVALANCHE]:null,[B.LENS]:null,[B.BNB]:null};class ap{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...Re,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(tp,void 0,e)).then(function(e){return e.totals[0]})}catch(e){return Promise.reject(e)}}getLastDaysVolume(e,t={}){try{return Promise.resolve(this.runQuery(rp,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(np,{hours:e},t))}catch(e){return Promise.reject(e)}}runQuery(e,t=undefined,r={}){try{const n=this,{chainId:i,env:o}=n.getContextWithOverride(r),s=n.getEnvConfigs(o)[i];if(null===s)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+i);return Promise.resolve(function(r,n){try{var i=Promise.resolve(_(s,e,t))}catch(e){return n(e)}return i&&i.then?i.then(void 0,n):i}(0,function(r){throw console.error(`[subgraph:${n.API_NAME}]`,r),new K(`Error running query: ${e}. Variables: ${JSON.stringify(t)}. API: ${s}. Inner Error: ${r}`)}))}catch(e){return Promise.reject(e)}}getContextWithOverride(e={}){return{...this.context,...e}}getEnvConfigs(e){return this.context.baseUrls?this.context.baseUrls:"prod"===e?op:sp}}var up,lp;!function(e){e[e.PRIVATE=0]="PRIVATE",e[e.EMITTED=1]="EMITTED",e[e.SWARM=2]="SWARM",e[e.WAKU=3]="WAKU",e[e.RESERVED=4]="RESERVED",e[e.IPFS=5]="IPFS"}(up||(up={})),function(e){e.SUCCESS="SUCCESS",e.UNEXPECTED_ERROR="UNEXPECTED_ERROR",e.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",e.TRY_ON_BLOCK="TRY_ON_BLOCK",e.TRY_AT_EPOCH="TRY_AT_EPOCH",e.DONT_TRY_AGAIN="DONT_TRY_AGAIN"}(lp||(lp={}));const cp=function(e){try{return Promise.resolve(e.getBlock("latest")).then(function(e){return{blockNumber:e.number,blockTimestamp:e.timestamp}})}catch(e){return Promise.reject(e)}},dp=function(e,t,r,n){try{const i=tr.connect(Ke[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},hp=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],pp=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],fp=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],mp=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],yp=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],gp=["tuple(address handler, bytes32 salt, bytes staticInput)"],bp=(e,t)=>`${t}@${e}`;function vp(e,t){return e===Ke[t]}function Ap(e,t){return e===We[t]}function wp(e,t){return tr.createInterface().encodeFunctionData("setDomainVerifier",[e,t])}function Tp(e){return r.defaultAbiCoder.encode(gp,[e])}function Ep(e){const{handler:t,salt:n,staticInput:i}=r.defaultAbiCoder.decode(gp,e)[0];return{handler:t,salt:n,staticInput:i}}function Sp(e,t){try{r.defaultAbiCoder.encode(e,t)}catch{return!1}return!0}function Ip(e){return new Date(1e3*e).toISOString()}function kp(e){if(hp.includes(e))return P.ERC20;if(pp.includes(e))return P.EXTERNAL;if(fp.includes(e))return P.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Pp(e){if(mp.includes(e))return E.SELL;if(yp.includes(e))return E.BUY;throw new Error(`Unknown kind: ${e}`)}function Cp(e){const{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:c,partiallyFillable:d,appData:h}=e;return{sellToken:t,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:d,appData:h,validTo:Number(c),kind:Pp(u.toString()),sellTokenBalance:kp(s.toString()),buyTokenBalance:kp(o.toString())}}function Np(e){return e.isValid}let xp,_p;function Rp(){return xp||(xp=Xt.createInterface()),xp}function Mp(e,t){return _p||(_p=Xt.connect(We[e],t)),_p}class Op{constructor(e){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:t,salt:n=r.keccak256(r.randomBytes(32)),data:o,hasOffChainInput:s=!1}=e;if(!i.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!i.utils.isHexString(n)||32!==i.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=o,this.staticInput=this.transformDataToStruct(o),this.hasOffChainInput=s}get context(){}assertIsValid(){const e=this.isValid();if(!Np(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Rp(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.defaultAbiCoder.encode(e.factoryArgs.argsType,e.factoryArgs.args):"0x";return t.encodeFunctionData("createWithContext",[n,e.address,i,!0])}return t.encodeFunctionData("create",[n,!0])}get removeCalldata(){return this.assertIsValid(),Rp().encodeFunctionData("remove",[this.id])}get id(){return r.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:o.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.keccak256(Tp(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Mp(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return Np(i)?Promise.resolve(t.pollValidate(e)).then(function(i){return i||Promise.resolve(t.isAuthorized(e)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,t.leaf,t.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(e,t,r){try{return Promise.resolve(import("@cowprotocol/contracts")).then(function({computeOrderUid:n}){return Promise.resolve(Ot.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,Cp(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(e){return o?e:{result:lp.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){return e?(o=1,e):(o=1,{result:lp.TRY_NEXT_BLOCK,reason:"Order already in orderbook"})})}();return u&&u.then?u.then(a):a(u)})})}):{result:lp.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:lp.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(e){return a(e)}return u&&u.then?u.then(void 0,a):u}(0,function(e){return{result:lp.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Mp(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Mp(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=Ep(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Bp=["address","bytes32","bytes"],Dp=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Lp{constructor(e,t,r,n=up.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=e,this.location=n,t&&0===Object.keys(t).length)throw new Error("orders must have non-zero length");if(t&&!r||!t&&r)throw new Error("orders cannot have undefined root");for(const e in t)if(t.hasOwnProperty(e)){const r=t[e];if(!Lp.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(t&&(this.orders=t,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(e){const{chain:t,orders:r,root:n,location:i}=JSON.parse(e,(e,t)=>{if("orders"===e&&"object"==typeof t&&null!==t){const e={};for(const r in t)if(t.hasOwnProperty(r)){const{orderType:n,...i}=t[r];if(!Lp.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Lp.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?s.from(t):t}),o=new Lp(t,r,n);return o.location=i,o}toJSON(){const e=this.getOrGenerateTree().root;return JSON.stringify({...this,root:e},(e,t)=>{if("tree"!==e){if("object"==typeof t&&null!==t&&"orderType"in t){const e=t;return{...e,orderType:e.orderType}}return t}})}add(e){e.assertIsValid(),this.orders[e.id]=e,this.reset()}remove(e){delete this.orders[e],this.reset()}update(e,t){const r=t(this.orders[e],this.ctx);delete this.orders[e],this.orders[r.id]=r,this.reset()}getById(e){return this.orders[e]}getByIndex(e){return this.orders[this.orderIds[e]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=R.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Bp)),this.tree}static decodeFromJSON(e){return JSON.parse(e)}prepareProofStruct(e,t,n){try{const i=this;void 0===e&&(e=i.location);const o=function(){try{switch(e){case up.PRIVATE:return Promise.resolve("0x");case up.EMITTED:return Promise.resolve(i.encodeToABI(t));case up.SWARM:case up.WAKU:case up.IPFS:if(!n)throw new Error("Must provide an uploader function");return Promise.resolve(function(e,r){try{var o=Promise.resolve(n(i.encodeToJSON(t)))}catch(e){return r(e)}return o&&o.then?o.then(void 0,r):o}(0,function(t){throw new Error(`Error uploading to decentralized storage ${e}: ${t}`)}));default:throw new Error("Unsupported location")}}catch(e){return Promise.reject(e)}};return Promise.resolve(o().then(t=>{try{return r.hexlify(r.arrayify(t)),i.location=e,{location:e,data:t}}catch{throw new Error("data returned by uploader is invalid")}}).catch(e=>{throw new Error(`Error preparing proof struct: ${e}`)}))}catch(e){return Promise.reject(e)}}static poll(e,t,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(e,t.params,r,t.proof))}const s=Mp(r,n);return Promise.resolve(i?Promise.resolve(i(e,t.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(e){return this.encodeToJSON(e)}dumpProofsAndParams(e){return this.getProofs(e)}getProofs(e){return[...this.getOrGenerateTree().entries()].map(([t,r])=>e&&e(r)||void 0===e?{idx:t,value:r}:void 0).reduce((e,t)=>{if(t){const r={handler:t.value[0],salt:t.value[1],staticInput:t.value[2]};e.push({proof:this.getOrGenerateTree().getProof(t.idx),params:r})}return e},[])}encodeToABI(e){return r.defaultAbiCoder.encode(Dp,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Lp.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Lp.orderTypeRegistry={}}}Lp.orderTypeRegistry={};class Fp{constructor(e){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(e).reduce((e,[t,r])=>(e[t.toLowerCase()]=r,e),{})}fromParams(e){const{handler:t}=e,r=this.knownOrderTypes[t.toLocaleLowerCase()];if(r)return r(e)}}const Up="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",Gp="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",jp=s.from(2).pow(32).sub(1),Hp=s.from(31536e3),qp=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var Vp,zp;!function(e){e.AUTO="AUTO",e.LIMIT_DURATION="LIMIT_DURATION"}(Vp||(Vp={})),function(e){e.AT_MINING_TIME="AT_MINING_TIME",e.AT_EPOCH="AT_EPOCH"}(zp||(zp={}));const Kp={startType:zp.AT_MINING_TIME},Wp={durationType:Vp.AUTO};class Jp extends Op{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Up)throw new Error(`InvalidHandler: Expected: ${Up}, provided: ${t}`);super({handler:Up,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new Jp({handler:Up,data:e,salt:t})}static fromParams(e){return Jp.deserialize(Tp(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:Gp,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:r,buyAmount:n,startTime:i=Kp,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=Wp}=this.data;if(e==r)return"InvalidSameToken";if(e==o.AddressZero||r==o.AddressZero)return"InvalidToken";if(!t.gt(o.Zero))return"InvalidSellAmount";if(!n.gt(o.Zero))return"InvalidMinBuyAmount";if(i.startType===zp.AT_EPOCH){const e=i.epoch;if(!e.gte(o.Zero)||!e.lt(jp))return"InvalidStartTime"}return s.gt(o.One)&&s.lte(jp)?a.gt(o.Zero)&&a.lte(Hp)?u.durationType!==Vp.LIMIT_DURATION||u.duration.lte(a)?Sp(qp,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return e?{isValid:!1,reason:e}:{isValid:!0}}startTimestamp(e){try{const t=this,{startTime:n}=t.data;return n?.startType===zp.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(jp))throw new Error(`Cabinet epoch out of range: ${t.toString()}`);const n=t.toNumber();if(0===n)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return n})}catch(e){return Promise.reject(e)}}endTimestamp(e){const{numberOfParts:t,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===Vp.LIMIT_DURATION?e+t.sub(1).mul(r).add(n.duration).toNumber():e+t.mul(r).toNumber()}pollValidate(e){try{const t=this;return Promise.resolve(cp(e.provider)).then(function(r){const{blockInfo:n=r}=e,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(t.startTimestamp(e)).then(function(e){if(e>i)return{result:lp.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Ip(e)})`};const r=t.endTimestamp(e);return i>=r?{result:lp.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Ip(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){const t=e;return t?.message?.includes("Cabinet is not set")?{result:lp.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:lp.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:lp.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(cp(r.provider)).then(function(t){const{blockInfo:n=t}=r,{blockTimestamp:i}=n,o=e.data.timeBetweenParts.toNumber(),{numberOfParts:s}=e.data;return Promise.resolve(e.startTimestamp(r)).then(function(e){if(i<e)return{result:lp.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Ip(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:lp.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Ip(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:lp.DONT_TRY_AGAIN,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. This was the last TWAP part, no more orders need to be placed`};const n=e+(r+1)*o;return{result:lp.TRY_AT_EPOCH,epoch:n,reason:`Current active TWAP part (${r+1}/${s}) is already in the Order Book. TWAP part ${r+2} doesn't start until ${n} (${Ip(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return Tp(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(qp,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Up,qp,(e,t)=>new Jp({handler:Up,salt:t,data:Yp(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=Kp,timeBetweenParts:s,durationOfPart:a=Wp,receiver:u,appData:l}=this.data,c=o.startType===zp.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===Vp.AUTO?"AUTO":a.duration.toNumber(),h={sellAmount:e.toString(),sellToken:t,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:c,timeBetweenParts:s.toNumber(),durationOfPart:d,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(h)}`}transformDataToStruct(e){return Qp(e)}transformStructToData(e){return Yp(e)}}function Qp(e){const{sellAmount:t,buyAmount:r,numberOfParts:n,startTime:i=Kp,timeBetweenParts:s,durationOfPart:a=Wp,...u}=e,{partSellAmount:l,minPartLimit:c}=n&&!n.isZero()?{partSellAmount:t.div(n),minPartLimit:r.div(n)}:{partSellAmount:o.Zero,minPartLimit:o.Zero};return{partSellAmount:l,minPartLimit:c,t0:i.startType===zp.AT_MINING_TIME?o.Zero:i.epoch,n:n,t:s,span:a.durationType===Vp.AUTO?o.Zero:a.duration,...u}}function Yp(e){const{n:t,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:c}=e,d=s.isZero()?{durationType:Vp.AUTO}:{durationType:Vp.LIMIT_DURATION,duration:s},h=o.isZero()?{startType:zp.AT_MINING_TIME}:{startType:zp.AT_EPOCH,epoch:o};return{sellAmount:r.mul(t),buyAmount:n.mul(t),startTime:h,numberOfParts:t,timeBetweenParts:i,durationOfPart:d,sellToken:a,buyToken:u,receiver:l,appData:c}}const Xp={[Up]:e=>Jp.fromParams(e)},$p=function(e){try{function t(e){return r?new i.Wallet(r,e):e}const r=tf();return Promise.resolve(r?Promise.resolve(Zp(e)).then(t):t(null))}catch(n){return Promise.reject(n)}},Zp=function(e){try{const t=ef[e];if(!t)throw new Error(`No RPC URL found for chain ${e}. Please define env ${e}`);const r=new i.providers.JsonRpcProvider(t);return Promise.resolve(r.getNetwork()).then(function({chainId:t,name:n}){if(t!==e)throw new Error(`Provider is not connected to chain ${e}. Provider is connected to chain ${t} (${n})`);return r})}catch(e){return Promise.reject(e)}},ef={[B.MAINNET]:he.rpcUrls.default.http[0],[B.GNOSIS_CHAIN]:ce.rpcUrls.default.http[0],[B.ARBITRUM_ONE]:se.rpcUrls.default.http[0],[B.BASE]:ue.rpcUrls.default.http[0],[B.SEPOLIA]:fe.rpcUrls.default.http[0],[B.POLYGON]:Se.rpcUrls.default.http[0],[B.AVALANCHE]:ye.rpcUrls.default.http[0],[B.LENS]:Ae.rpcUrls.default.http[0],[B.BNB]:be.rpcUrls.default.http[0]};function tf(){const e=process.env.PRIVATE_KEY;if(e)return e;console.warn("PRIVATE_KEY is not set")}export{Ce as ADDITIONAL_TARGET_CHAINS_MAP,Ne as ALL_CHAINS,xe as ALL_CHAINS_IDS,ke as ALL_SUPPORTED_CHAINS,Ie as ALL_SUPPORTED_CHAINS_MAP,Pe as ALL_SUPPORTED_CHAIN_IDS,kh as AcrossBridgeProvider,D as AdditionalTargetChainId,Qe as BARN_ETH_FLOW_ADDRESSES,U as BridgeOrderParsingError,F as BridgeProviderError,L as BridgeProviderQuoteError,O as BridgeQuoteErrors,M as BridgeStatus,Cc as BridgingSdk,ep as BungeeBridgeProvider,dt as BuyTokenDestination,Le as COMPOSABLE_COW,We as COMPOSABLE_COW_CONTRACT_ADDRESS,gp as CONDITIONAL_ORDER_PARAMS_ABI,Ve as COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS,ze as COW_PROTOCOL_VAULT_RELAYER_ADDRESS,Fe as COW_SHED_1_0_0_VERSION,Ue as COW_SHED_1_0_1_VERSION,Jc as COW_SHED_712_TYPES,je as COW_SHED_FACTORY,He as COW_SHED_IMPLEMENTATION,Ge as COW_SHED_LATEST_VERSION,Ac as COW_SHED_PROXY_CREATION_GAS,qe as COW_SHED_PROXY_INIT_CODE,Gp as CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS,ht as CompetitionOrderStatus,Op as ConditionalOrder,Fp as ConditionalOrderFactory,K as CowError,Qc as CowShedHooks,Xc as CowShedSdk,nt as DEFAULT_BACKOFF_OPTIONS,Xp as DEFAULT_CONDITIONAL_ORDER_REGISTRY,Re as DEFAULT_COW_API_CONTEXT,vc as DEFAULT_EXTRA_GAS_FOR_HOOK_ESTIMATION,bc as DEFAULT_GAS_COST_FOR_HOOK_ESTIMATION,Xe as DEFAULT_IPFS_READ_URI,$e as DEFAULT_IPFS_WRITE_URI,it as DEFAULT_LIMITER_OPTIONS,bp as DEFAULT_TOKEN_FORMATTER,Vp as DurationType,_e as ENVS_LIST,Be as ETH_ADDRESS,Je as ETH_FLOW_ADDRESSES,De as EXTENSIBLE_FALLBACK_HANDLER,Ke as EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS,pt as EcdsaSigningScheme,wc as HOOK_DAPP_BRIDGE_PROVIDER_PREFIX,Hp as MAX_FREQUENCY,jp as MAX_UINT32,Ye as MAX_VALID_TO_EPOCH,Lp as Multiplexer,Y as NATIVE_CURRENCY_ADDRESS,at as ORDER_BOOK_PROD_CONFIG,ut as ORDER_BOOK_STAGING_CONFIG,Yl as ORDER_PRIMARY_TYPE,ft as OnchainOrderData,ct as OrderBookApi,tt as OrderBookApiError,mt as OrderCancellationError,yt as OrderClass,gt as OrderKind,bt as OrderPostError,vt as OrderQuoteSideKindBuy,At as OrderQuoteSideKindSell,Ot as OrderSigningUtils,wt as OrderStatus,lp as PollResultCode,Tt as PriceEstimationError,Et as PriceQuality,up as ProofLocation,gc as RAW_PROVIDERS_FILES_PATH,op as SUBGRAPH_PROD_CONFIG,sp as SUBGRAPH_STAGING_CONFIG,St as SellTokenSource,It as SigningScheme,zp as StartTimeValue,ap as SubgraphApi,B as SupportedChainId,X as TOKEN_LIST_IMAGES_PATH,Up as TWAP_ADDRESS,mc as TradingSdk,Jp as Twap,Z as WRAPPED_NATIVE_CURRENCIES,hh as WeirollCommandFlags,se as arbitrumOne,Ec as areHooksEqual,H as assertIsBridgeQuoteAndPost,q as assertIsQuoteAndPost,ye as avalanche,ue as base,be as bnb,Jl as buildAppData,ir as calculateUniqueOrderId,wp as createSetDomainVerifierTx,gh as createWeirollContract,yh as createWeirollDelegateCall,bh as createWeirollLibrary,Ep as decodeParams,Q as enableLogging,Tp as encodeParams,Ip as formatEpoch,Cp as fromStructToOrder,Wl as generateAppDataFromDoc,xt as getBigNumber,cp as getBlockInfo,Dt as getChainInfo,Pc as getCrossChainOrder,dp as getDomainVerifier,dr as getEthFlowTransaction,Tc as getHookMockForCostEstimation,Np as getIsValidResult,Wt as getOrderToSign,Bt as getPartnerFeeBps,tf as getPk,V as getPostHooks,fc as getPreSignTransaction,uc as getQuote,Nt as getQuoteAmountsAndCosts,Pt as getQuoteAmountsWithCosts,sc as getQuoteWithSigner,Zp as getRpcProvider,$p as getWallet,ce as gnosisChain,Ft as isAdditionalTargetChain,z as isAppDoc,G as isBridgeQuoteAndPost,Ap as isComposableCow,vp as isExtensibleFallbackHandler,j as isQuoteAndPost,Lt as isSupportedChain,Ut as isTargetChainId,Sp as isValidAbi,Gt as isZkSyncChain,Ae as lens,he as mainnet,Oe as mapAddressToSupportedNetworks,ur as mapQuoteAmountsAndCosts,Me as mapSupportedNetworks,Kl as mergeAppDataDoc,te as nativeCurrencyTemplate,Te as optimism,Se as polygon,pr as postCoWProtocolTrade,pc as postLimitOrder,hr as postSellNativeCurrencyOrder,hc as postSwapOrder,dc as postSwapOrderFromQuote,et as request,fe as sepolia,oc as suggestSlippageBps,or as swapParamsToLimitOrderParams,Qp as transformDataToStruct,Yp as transformStructToData};
29
29
  //# sourceMappingURL=index.module.js.map