@cowprotocol/cow-sdk 5.10.2 → 5.11.0-RC.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 (121) hide show
  1. package/README.md +2 -0
  2. package/dist/README.md +2 -0
  3. package/dist/bridging/BridgingSdk/BridgingSdk.d.ts +90 -0
  4. package/dist/bridging/BridgingSdk/getCrossChainOrder.d.ts +14 -0
  5. package/dist/bridging/BridgingSdk/getErc20Decimals.d.ts +4 -0
  6. package/dist/bridging/BridgingSdk/getQuoteWithBridging.d.ts +32 -0
  7. package/dist/bridging/BridgingSdk/getQuoteWithoutBridge.d.ts +7 -0
  8. package/dist/bridging/const.d.ts +2 -0
  9. package/dist/bridging/errors.d.ts +4 -0
  10. package/dist/bridging/index.d.ts +6 -0
  11. package/dist/bridging/providers/across/AcrossApi.d.ts +27 -0
  12. package/dist/bridging/providers/across/AcrossBridgeProvider.d.ts +43 -0
  13. package/dist/bridging/providers/across/abi.d.ts +154 -0
  14. package/dist/bridging/providers/across/const/contracts.d.ts +3 -0
  15. package/dist/bridging/providers/across/const/misc.d.ts +1 -0
  16. package/dist/bridging/providers/across/const/tokens.d.ts +11 -0
  17. package/dist/bridging/providers/across/createAcrossDepositCall.d.ts +9 -0
  18. package/dist/bridging/providers/across/types.d.ts +169 -0
  19. package/dist/bridging/providers/across/util.d.ts +39 -0
  20. package/dist/bridging/providers/mock/MockBridgeProvider.d.ts +21 -0
  21. package/dist/bridging/types.d.ts +287 -0
  22. package/dist/bridging/utils.d.ts +9 -0
  23. package/dist/chains/const/index.d.ts +25 -0
  24. package/dist/chains/const/path.d.ts +1 -0
  25. package/dist/chains/details/arbitrum.d.ts +7 -0
  26. package/dist/chains/details/avalanche.d.ts +2 -0
  27. package/dist/chains/details/base.d.ts +7 -0
  28. package/dist/chains/details/gnosis.d.ts +7 -0
  29. package/dist/chains/details/mainnet.d.ts +7 -0
  30. package/dist/chains/details/optimism.d.ts +2 -0
  31. package/dist/chains/details/polygon.d.ts +2 -0
  32. package/dist/chains/details/sepolia.d.ts +7 -0
  33. package/dist/chains/index.d.ts +3 -0
  34. package/dist/chains/types.d.ts +123 -0
  35. package/dist/chains/utils.d.ts +18 -0
  36. package/dist/common/consts/config.d.ts +9 -0
  37. package/dist/common/{consts.d.ts → consts/contracts.d.ts} +1 -12
  38. package/dist/common/consts/path.d.ts +1 -0
  39. package/dist/common/consts/tokens.d.ts +9 -0
  40. package/dist/common/index.d.ts +12 -5
  41. package/dist/common/{configs.d.ts → types/config.d.ts} +1 -9
  42. package/dist/common/{cow-error.d.ts → types/cow-error.d.ts} +0 -1
  43. package/dist/common/types/ethereum.d.ts +5 -0
  44. package/dist/common/types/tokens.d.ts +12 -0
  45. package/dist/common/types/wallets.d.ts +5 -0
  46. package/dist/common/utils/config.d.ts +4 -0
  47. package/dist/common/utils/log.d.ts +2 -0
  48. package/dist/common/utils/serialize.d.ts +1 -0
  49. package/dist/common/utils/wallet.d.ts +3 -0
  50. package/dist/composable/Multiplexer.d.ts +1 -1
  51. package/dist/composable/contracts.d.ts +1 -1
  52. package/dist/composable/types.d.ts +1 -1
  53. package/dist/composable/utils.d.ts +1 -1
  54. package/dist/cow-shed/CowShedSdk.d.ts +69 -0
  55. package/dist/cow-shed/{proxyInitCode.d.ts → contracts/CoWShedHooks.d.ts} +44 -0
  56. package/dist/cow-shed/contracts/utils.d.ts +4 -0
  57. package/dist/cow-shed/index.d.ts +2 -3
  58. package/dist/cow-shed/types.d.ts +0 -16
  59. package/dist/hooks/utils.d.ts +3 -0
  60. package/dist/index-ef9ef589.js +29 -0
  61. package/dist/index-ef9ef589.js.map +1 -0
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.js +4 -4
  64. package/dist/index.js.map +1 -1
  65. package/dist/index.modern.mjs +1 -1
  66. package/dist/index.module.js +4 -4
  67. package/dist/index.module.js.map +1 -1
  68. package/dist/order-book/api.d.ts +1 -1
  69. package/dist/order-book/quoteAmountsAndCostsUtils.d.ts +13 -2
  70. package/dist/order-book/types.d.ts +54 -18
  71. package/dist/order-signing/orderSigningUtils.d.ts +1 -1
  72. package/dist/order-signing/types.d.ts +1 -1
  73. package/dist/order-signing/utils.d.ts +1 -1
  74. package/dist/package.json +13 -11
  75. package/dist/schemas/trading/LimitOrderAdvancedSettings.ts +26 -0
  76. package/dist/schemas/trading/LimitTradeParameters.ts +3 -0
  77. package/dist/schemas/trading/QuoteResultsSerialized.ts +21 -12
  78. package/dist/schemas/trading/QuoterParameters.ts +11 -1
  79. package/dist/schemas/trading/SwapAdvancedSettings.ts +206 -0
  80. package/dist/schemas/trading/TradeParameters.ts +3 -0
  81. package/dist/src/bridging/README.md +54 -0
  82. package/dist/src/cow-shed/README.md +60 -0
  83. package/dist/src/trading/README.md +55 -7
  84. package/dist/src/weiroll/README.md +58 -0
  85. package/dist/subgraph/api.d.ts +2 -2
  86. package/dist/test/utils.d.ts +1 -0
  87. package/dist/trading/appDataUtils.d.ts +2 -1
  88. package/dist/trading/calculateUniqueOrderId.d.ts +3 -4
  89. package/dist/trading/consts.d.ts +2 -4
  90. package/dist/trading/getEthFlowTransaction.d.ts +6 -5
  91. package/dist/trading/getOrderTypedData.d.ts +1 -1
  92. package/dist/trading/getPreSignTransaction.d.ts +2 -2
  93. package/dist/trading/getQuote.d.ts +1 -1
  94. package/dist/trading/postCoWProtocolTrade.d.ts +4 -4
  95. package/dist/trading/postLimitOrder.d.ts +2 -2
  96. package/dist/trading/postSellNativeCurrencyOrder.d.ts +2 -6
  97. package/dist/trading/postSwapOrder.d.ts +3 -3
  98. package/dist/trading/tradingSdk.d.ts +14 -11
  99. package/dist/trading/types.d.ts +73 -11
  100. package/dist/trading/utils.d.ts +8 -4
  101. package/dist/utils-757fe114.js +2 -0
  102. package/dist/utils-757fe114.js.map +1 -0
  103. package/dist/utils-9a7618d8.js +2 -0
  104. package/dist/utils-9a7618d8.js.map +1 -0
  105. package/dist/utils-f4151c05.js +2 -0
  106. package/dist/utils-f4151c05.js.map +1 -0
  107. package/dist/utils.d.ts +1 -1
  108. package/dist/weiroll/index.d.ts +23 -0
  109. package/package.json +13 -11
  110. package/dist/common/chains.d.ts +0 -11
  111. package/dist/cow-shed/CoWShedHooks.d.ts +0 -35
  112. package/dist/cow-shed/contracts.d.ts +0 -4
  113. package/dist/index-2ed223c8.js +0 -29
  114. package/dist/index-2ed223c8.js.map +0 -1
  115. package/dist/utils-4bdd94dd.js +0 -2
  116. package/dist/utils-4bdd94dd.js.map +0 -1
  117. package/dist/utils-63156cab.js +0 -2
  118. package/dist/utils-63156cab.js.map +0 -1
  119. package/dist/utils-faedc0ab.js +0 -2
  120. package/dist/utils-faedc0ab.js.map +0 -1
  121. /package/dist/common/{ipfs.d.ts → consts/ipfs.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- require("cross-fetch/polyfill");var t,e=require("limiter"),r=require("exponential-backoff"),n=require("graphql-request"),i=require("ethers"),o=require("@cowprotocol/contracts"),s=require("@openzeppelin/merkle-tree"),a=require("ethers/lib/utils"),u=require("@ethersproject/abstract-signer"),l=require("@cowprotocol/app-data");function h(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}),e.default=t,e}exports.SupportedChainId=void 0,(t=exports.SupportedChainId||(exports.SupportedChainId={}))[t.MAINNET=1]="MAINNET",t[t.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",t[t.ARBITRUM_ONE=42161]="ARBITRUM_ONE",t[t.BASE=8453]="BASE",t[t.SEPOLIA=11155111]="SEPOLIA";const c=["prod","staging"],f={env:"prod",chainId:exports.SupportedChainId.MAINNET};class d extends Error{constructor(t,e){super(t),this.error_code=void 0,this.error_code=e}}const p="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",m="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",y="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",g="0x00E989b87700514118Fa55326CD1cCE82faebEF6",v="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",b=Object.values(exports.SupportedChainId).filter(t=>"number"==typeof t);function A(t){return b.reduce((e,r)=>({...e,[r]:"function"==typeof t?t(r):t}),{})}function w(t){return A(t)}const E=w("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),T=w("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),I=w(m),S=w(y),_={[exports.SupportedChainId.MAINNET]:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",[exports.SupportedChainId.GNOSIS_CHAIN]:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",[exports.SupportedChainId.ARBITRUM_ONE]:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",[exports.SupportedChainId.SEPOLIA]:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",[exports.SupportedChainId.BASE]:"0x4200000000000000000000000000000000000006"},N="0xba3cb449bd2b4adddbc894d8697f5170800eadec",x="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",M=w(N),k=w(x),P=4294967295,C=function(t,{path:e,query:n,method:i,body:o},s,a){try{const u={Accept:"application/json","Content-Type":"application/json"},l=`${t}${e}${n?"?"+n:""}`,h={method:i,body:(()=>{if(o)return"string"==typeof o?o:JSON.stringify(o)})(),headers:u};return Promise.resolve(r.backOff(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,h)).then(function(t){return Promise.resolve(L(t)).then(function(e){return t.status>=200&&t.status<300?e:Promise.reject(new O(t,e))})})})}catch(t){return Promise.reject(t)}},a))}catch(t){return Promise.reject(t)}};class O extends Error{constructor(t,e){super("string"==typeof e?e:t.statusText),this.response=void 0,this.body=void 0,this.response=t,this.body=e}}const R=[408,425,429,500,502,503,504],B={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:t=>!(t instanceof O)||R.includes(t.response.status)},D={tokensPerInterval:5,interval:"second"},L=function(t){try{let e;const r=function(){if(204!==t.status)return function(r,n){try{var i=function(){const r=t.headers.get("Content-Type");return function(){if(r)return r.toLowerCase().startsWith("application/json")?Promise.resolve(t.json()).then(function(t){return e=1,t}):Promise.resolve(t.text()).then(function(t){return e=1,t})}()}()}catch(t){return n(t)}return i&&i.then?i.then(void 0,n):i}(0,function(t){console.error(t)})}();return Promise.resolve(r&&r.then?r.then(function(t){return e?t:void 0}):e?r:void 0)}catch(t){return Promise.reject(t)}};function F(t){return function(t){const{ethflowData:e}=t;if(!e)return t;const{userValidTo:r}=e,n=t.onchainUser||t.owner,i=p;return{...t,validTo:r,owner:n,sellToken:i}}(function(t){const{executedFeeAmount:e,executedFee:r}=t,n=BigInt(e||"0"),i=BigInt(r||"0"),o=String(n+i);return{...t,totalFee:o}}(t))}const U={[exports.SupportedChainId.MAINNET]:"https://api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://api.cow.fi/sepolia"},q={[exports.SupportedChainId.MAINNET]:"https://barn.api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://barn.api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://barn.api.cow.fi/sepolia"};function G(t){return Object.keys(t).reduce((e,r)=>{const n=t[r];return void 0!==n&&(e[r]=n),e},{})}class H{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...f,...t},this.rateLimiter=new e.RateLimiter(t.limiterOpts||D)}getVersion(t={}){return this.fetch({path:"/api/v1/version",method:"GET"},t)}getTrades(t,e={}){if(t.owner&&t.orderUid)return Promise.reject(new d("Cannot specify both owner and orderId"));if(!t.owner&&!t.orderUid)return Promise.reject(new d("Must specify either owner or orderId"));const r=new URLSearchParams(G(t));return this.fetch({path:"/api/v1/trades",method:"GET",query:r},e)}getOrders({owner:t,offset:e=0,limit:r=1e3},n={}){const i=new URLSearchParams(G({offset:e.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${t}/orders`,method:"GET",query:i},n).then(t=>t.map(F))}getTxOrders(t,e={}){return this.fetch({path:`/api/v1/transactions/${t}/orders`,method:"GET"},e).then(t=>t.map(F))}getOrder(t,e={}){return this.fetch({path:`/api/v1/orders/${t}`,method:"GET"},e).then(t=>F(t))}getOrderCompetitionStatus(t,e={}){return this.fetch({path:`/api/v1/orders/${t}/status`,method:"GET"},e)}getOrderMultiEnv(t,e={}){const{env:r}=this.getContextWithOverride(e),n=c.filter(t=>t!==r);let i=0;const o=r=>{const s=n[i];return r instanceof O&&404===r.response.status&&s?(i++,this.getOrder(t,{...e,env:s}).catch(o)):Promise.reject(r)};return this.getOrder(t,{...e,env:r}).catch(o)}getQuote(t,e={}){return this.fetch({path:"/api/v1/quote",method:"POST",body:t},e)}sendSignedOrderCancellations(t,e={}){return this.fetch({path:"/api/v1/orders",method:"DELETE",body:t},e)}sendOrder(t,e={}){return this.fetch({path:"/api/v1/orders",method:"POST",body:t},e)}getNativePrice(t,e={}){return this.fetch({path:`/api/v1/token/${t}/native_price`,method:"GET"},e)}getTotalSurplus(t,e={}){return this.fetch({path:`/api/v1/users/${t}/total_surplus`,method:"GET"},e)}getAppData(t,e={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"GET"},e)}uploadAppData(t,e,r={}){return this.fetch({path:`/api/v1/app_data/${t}`,method:"PUT",body:{fullAppData:e}},r)}getSolverCompetition(t,e={}){return this.fetch({path:`/api/v1/solver_competition${"string"==typeof t?"/by_tx_hash":""}/${t}`,method:"GET"},e)}getOrderLink(t,e){const{chainId:r,env:n}=this.getContextWithOverride(e);return this.getApiBaseUrls(n)[r]+`/api/v1/orders/${t}`}getContextWithOverride(t={}){return{...this.context,...t}}getApiBaseUrls(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?U:q}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||B,u=r.limiterOpts?new e.RateLimiter(r.limiterOpts):this.rateLimiter;return C(s,t,u,a)}}var z,j,Q,K,V,Y,J,W,X,Z,$,tt,et,rt,nt,it;exports.BuyTokenDestination=void 0,(z=exports.BuyTokenDestination||(exports.BuyTokenDestination={})).ERC20="erc20",z.INTERNAL="internal",exports.CompetitionOrderStatus=void 0,(Q=(j=exports.CompetitionOrderStatus||(exports.CompetitionOrderStatus={})).type||(j.type={})).OPEN="open",Q.SCHEDULED="scheduled",Q.ACTIVE="active",Q.SOLVED="solved",Q.EXECUTING="executing",Q.TRADED="traded",Q.CANCELLED="cancelled",exports.EcdsaSigningScheme=void 0,(K=exports.EcdsaSigningScheme||(exports.EcdsaSigningScheme={})).EIP712="eip712",K.ETHSIGN="ethsign",exports.OnchainOrderData=void 0,(Y=(V=exports.OnchainOrderData||(exports.OnchainOrderData={})).placementError||(V.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",Y.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",Y.PRE_VALIDATION_ERROR="PreValidationError",exports.OrderCancellationError=void 0,(W=(J=exports.OrderCancellationError||(exports.OrderCancellationError={})).errorType||(J.errorType={})).INVALID_SIGNATURE="InvalidSignature",W.WRONG_OWNER="WrongOwner",W.ORDER_NOT_FOUND="OrderNotFound",W.ALREADY_CANCELLED="AlreadyCancelled",W.ORDER_FULLY_EXECUTED="OrderFullyExecuted",W.ORDER_EXPIRED="OrderExpired",W.ON_CHAIN_ORDER="OnChainOrder",exports.OrderClass=void 0,(X=exports.OrderClass||(exports.OrderClass={})).MARKET="market",X.LIMIT="limit",X.LIQUIDITY="liquidity",exports.OrderKind=void 0,(Z=exports.OrderKind||(exports.OrderKind={})).BUY="buy",Z.SELL="sell",exports.OrderPostError=void 0,function(t){t.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"}(($=exports.OrderPostError||(exports.OrderPostError={})).errorType||($.errorType={})),exports.OrderQuoteSideKindBuy=void 0,(exports.OrderQuoteSideKindBuy||(exports.OrderQuoteSideKindBuy={})).BUY="buy",exports.OrderQuoteSideKindSell=void 0,(exports.OrderQuoteSideKindSell||(exports.OrderQuoteSideKindSell={})).SELL="sell",exports.OrderStatus=void 0,(tt=exports.OrderStatus||(exports.OrderStatus={})).PRESIGNATURE_PENDING="presignaturePending",tt.OPEN="open",tt.FULFILLED="fulfilled",tt.CANCELLED="cancelled",tt.EXPIRED="expired",exports.PriceEstimationError=void 0,function(t){t.QUOTE_NOT_VERIFIED="QuoteNotVerified",t.UNSUPPORTED_TOKEN="UnsupportedToken",t.ZERO_AMOUNT="ZeroAmount",t.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}((et=exports.PriceEstimationError||(exports.PriceEstimationError={})).errorType||(et.errorType={})),exports.PriceQuality=void 0,(rt=exports.PriceQuality||(exports.PriceQuality={})).FAST="fast",rt.OPTIMAL="optimal",rt.VERIFIED="verified",exports.SellTokenSource=void 0,(nt=exports.SellTokenSource||(exports.SellTokenSource={})).ERC20="erc20",nt.INTERNAL="internal",nt.EXTERNAL="external",exports.SigningScheme=void 0,(it=exports.SigningScheme||(exports.SigningScheme={})).EIP712="eip712",it.ETHSIGN="ethsign",it.PRESIGN="presign",it.EIP1271="eip1271";const ot=BigInt(1e4);function st(t){var e;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=t,s=null!==(e=t.partnerFeeBps)&&void 0!==e?e:0,a=r.kind===exports.OrderKind.SELL,u=at(r.feeAmount,n),l=at(r.sellAmount,n),h=at(r.buyAmount,i),c=h.num/l.num,f=at(l.big+u.big,n),d=at(c*f.num,i),p=s>0?(a?d.big:l.big)*BigInt(s)/ot:BigInt(0),m=a?{sellAmount:f.big,buyAmount:h.big-p}:{sellAmount:f.big+p,buyAmount:h.big},y=t=>t*BigInt(o)/ot,g=a?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-y(m.buyAmount)}:{sellAmount:m.sellAmount+y(m.sellAmount),buyAmount:m.buyAmount};return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:at(c*u.num,i).big},partnerFee:{amount:p,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:d.big},afterNetworkCosts:{sellAmount:f.big,buyAmount:h.big},afterPartnerFees:m,afterSlippage:g}}function at(t,e){if("number"==typeof t){const r=t*10**e,n=r.toFixed();return{big:BigInt(n.includes("e")?r:n),num:t}}const r=BigInt(t);return{big:r,num:Number(r)/10**e}}const ut=n.gql`
1
+ require("cross-fetch/polyfill");var e=require("limiter"),t=require("exponential-backoff"),r=require("ethers"),n=require("@cowprotocol/app-data"),i=require("ethers/lib/utils"),o=require("deepmerge"),s=require("@cowprotocol/contracts"),a=require("@ethersproject/abstract-signer"),u=require("@weiroll/weiroll.js"),l=require("graphql-request"),c=require("@openzeppelin/merkle-tree");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function h(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var p,f=/*#__PURE__*/d(o);exports.BridgeStatus=void 0,(p=exports.BridgeStatus||(exports.BridgeStatus={})).NOT_INITIATED="not_initiated",p.IN_PROGRESS="in_progress",p.EXECUTED="executed",p.FAILED="failed",p.EXPIRED="expired";class m extends Error{constructor(e,t){super(e),this.context=void 0,this.context=t,this.name="BridgeProviderQuoteError"}}function y(e){return"bridge"in e}function g(e){return!y(e)}function b(e){if(!e)return[];const t=JSON.parse(e);return v(t)&&t.metadata.hooks&&t.metadata.hooks.post||[]}function v(e){return"object"==typeof e&&null!==e&&"version"in e&&"metadata"in e}const A="Order";var w,T;exports.SupportedChainId=void 0,(w=exports.SupportedChainId||(exports.SupportedChainId={}))[w.MAINNET=1]="MAINNET",w[w.GNOSIS_CHAIN=100]="GNOSIS_CHAIN",w[w.ARBITRUM_ONE=42161]="ARBITRUM_ONE",w[w.BASE=8453]="BASE",w[w.POLYGON=137]="POLYGON",w[w.AVALANCHE=43114]="AVALANCHE",w[w.SEPOLIA=11155111]="SEPOLIA",exports.AdditionalTargetChainId=void 0,(T=exports.AdditionalTargetChainId||(exports.AdditionalTargetChainId={}))[T.OPTIMISM=10]="OPTIMISM";class E extends Error{constructor(e,t){super(e),this.error_code=void 0,this.error_code=t}}const S=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.backOff(function(){try{return Promise.resolve(s.removeTokens(1)).then(function(){return Promise.resolve(fetch(l,c)).then(function(e){return Promise.resolve(P(e)).then(function(t){return e.status>=200&&e.status<300?t:Promise.reject(new I(e,t))})})})}catch(e){return Promise.reject(e)}},a))}catch(e){return Promise.reject(e)}};class I 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 x=[408,425,429,500,502,503,504],C={numOfAttempts:10,maxDelay:Infinity,jitter:"none",retry:e=>!(e instanceof I)||x.includes(e.response.status)},k={tokensPerInterval:5,interval:"second"},P=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)}},_="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",N="https://raw.githubusercontent.com/cowprotocol/token-lists/main/src/public/images",M={decimals:18,name:"Wrapped Ether",symbol:"WETH",logoUrl:`${N}/1/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png`},R={[exports.SupportedChainId.MAINNET]:{...M,chainId:exports.SupportedChainId.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},[exports.SupportedChainId.GNOSIS_CHAIN]:{chainId:exports.SupportedChainId.GNOSIS_CHAIN,address:"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",decimals:18,name:"Wrapped XDAI",symbol:"WXDAI",logoUrl:`${N}/100/0xe91d153e0b41518a2ce8dd3d7944fa863463a97d/logo.png`},[exports.SupportedChainId.ARBITRUM_ONE]:{...M,chainId:exports.SupportedChainId.ARBITRUM_ONE,address:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"},[exports.SupportedChainId.BASE]:{...M,chainId:exports.SupportedChainId.BASE,address:"0x4200000000000000000000000000000000000006"},[exports.SupportedChainId.SEPOLIA]:{...M,chainId:exports.SupportedChainId.SEPOLIA,address:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14"},[exports.SupportedChainId.POLYGON]:{chainId:exports.SupportedChainId.POLYGON,address:"0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",decimals:18,name:"Wrapped POL",symbol:"WPOL",logoUrl:`${N}/137/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270/logo.png`},[exports.SupportedChainId.AVALANCHE]:{chainId:exports.SupportedChainId.AVALANCHE,address:"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",decimals:18,name:"Wrapped AVAX",symbol:"WAVAX",logoUrl:`${N}/43114/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7/logo.png`}},O={address:_,decimals:18,name:"Ether",symbol:"ETH",logoUrl:`${N}/1/${_}/logo.png`},D="https://raw.githubusercontent.com/cowprotocol/cow-sdk/refs/heads/main",B=`${D}/src/chains`,F=`${B}/images/mainnet-logo.svg`,L={id:exports.SupportedChainId.MAINNET,label:"Ethereum",nativeCurrency:{...O,chainId:exports.SupportedChainId.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:F,dark:F},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"}},U=`${B}/images/gnosis-logo.svg`,G={id:exports.SupportedChainId.GNOSIS_CHAIN,label:"Gnosis Chain",nativeCurrency:{...O,chainId:exports.SupportedChainId.GNOSIS_CHAIN,name:"xDAI",symbol:"xDAI",logoUrl:`${N}/100/${_}/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:U,dark:U},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"}]},H=`${B}/images/arbitrum-logo-light.svg`,q=`${B}/images/arbitrum-logo-dark.svg`,j={id:exports.SupportedChainId.ARBITRUM_ONE,label:"Arbitrum One",nativeCurrency:{...O,chainId:exports.SupportedChainId.ARBITRUM_ONE},addressPrefix:"arb1",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},color:"#1B4ADD",logo:{light:H,dark:q},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"}]},V=`${B}/images/base-logo.svg`,z={id:exports.SupportedChainId.BASE,label:"Base",nativeCurrency:{...O,chainId:exports.SupportedChainId.BASE},addressPrefix:"base",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022}},rpcUrls:{default:{http:["https://mainnet.base.org"]}},color:"#0052FF",logo:{light:V,dark:V},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"}]},K=`${B}/images/sepolia-logo.svg`,W={id:exports.SupportedChainId.SEPOLIA,label:"Sepolia",nativeCurrency:{...O,chainId:exports.SupportedChainId.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:K,dark:K},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"}},Q=`${B}/images/avax-logo.svg`,J={id:exports.SupportedChainId.AVALANCHE,label:"Avalanche",logo:{light:Q,dark:Q},nativeCurrency:{...O,chainId:exports.SupportedChainId.AVALANCHE,name:"Avalanche",symbol:"AVAX",logoUrl:Q},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:"SnowTrace",url:"https://snowtrace.io"}},Y=`${B}/images/optimism-logo.svg`,X={id:10,label:"Optimism",logo:{light:Y,dark:Y},nativeCurrency:{...O,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"}},Z=`${B}/images/polygon-logo.svg`,$={id:137,label:"Polygon",logo:{light:Z,dark:Z},nativeCurrency:{...O,chainId:137,name:"POL",symbol:"POL",logoUrl:Z},addressPrefix:"op",isTestnet:!1,contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:25770160}},rpcUrls:{default:{http:["https://polygon-rpc.com"]}},color:"#ff0420",website:{name:"Polygon",url:"https://polygon.technology"},docs:{name:"Polygon Docs",url:"https://docs.polygon.technology"},blockExplorer:{name:"PolygonScan",url:"https://polygonscan.com"}},ee={[exports.SupportedChainId.MAINNET]:L,[exports.SupportedChainId.GNOSIS_CHAIN]:G,[exports.SupportedChainId.ARBITRUM_ONE]:j,[exports.SupportedChainId.BASE]:z,[exports.SupportedChainId.AVALANCHE]:J,[exports.SupportedChainId.POLYGON]:$,[exports.SupportedChainId.SEPOLIA]:W},te=Object.values(ee),re=te.map(e=>e.id),ne={[exports.AdditionalTargetChainId.OPTIMISM]:X},ie=te.concat(Object.values(ne)),oe=ie.map(e=>e.id);function se(e){return re.reduce((t,r)=>({...t,[r]:"function"==typeof e?e(r):e}),{})}function ae(e){return se(e)}const ue="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",le="0x2f55e8b20D0B9FEFA187AA7d00B6Cbe563605bF5",ce="0xfdaFc9d1902f4e0b84f65F49f244b32b31013b74",de="0x00E989b87700514118Fa55326CD1cCE82faebEF6",he="0x2CFFA8cf11B90C9F437567b86352169dF4009F73",pe=ae("0x9008D19f58AAbD9eD0D60971565AA8510560ab41"),fe=ae("0xC92E8bdf79f0507f65a392b0ab4667716BFE0110"),me=ae(le),ye=ae(ce),ge="0xba3cb449bd2b4adddbc894d8697f5170800eadec",be="0x04501b9b1d52e67f6862d157e00d13419d2d6e95",ve=ae(ge),Ae=ae(be),we=4294967295;function Te(e){return function(e){const{ethflowData:t}=e;if(!t)return e;const{userValidTo:r}=t,n=e.onchainUser||e.owner,i=ue;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))}let Ee=!1;function Se(e){Ee&&console.log(`[COW TRADING SDK] ${e}`)}function Ie(e){Ee=e}const xe=["prod","staging"],Ce={env:"prod",chainId:exports.SupportedChainId.MAINNET},ke=(e,t)=>"bigint"==typeof t||"object"==typeof t&&null!==t&&"_isBigNumber"in t?t.toString():t,Pe={[exports.SupportedChainId.MAINNET]:"https://api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://api.cow.fi/sepolia",[exports.SupportedChainId.POLYGON]:"https://api.cow.fi/polygon",[exports.SupportedChainId.AVALANCHE]:"https://api.cow.fi/avalanche"},_e={[exports.SupportedChainId.MAINNET]:"https://barn.api.cow.fi/mainnet",[exports.SupportedChainId.GNOSIS_CHAIN]:"https://barn.api.cow.fi/xdai",[exports.SupportedChainId.ARBITRUM_ONE]:"https://barn.api.cow.fi/arbitrum_one",[exports.SupportedChainId.BASE]:"https://barn.api.cow.fi/base",[exports.SupportedChainId.SEPOLIA]:"https://barn.api.cow.fi/sepolia",[exports.SupportedChainId.POLYGON]:"https://barn.api.cow.fi/polygon",[exports.SupportedChainId.AVALANCHE]:"https://barn.api.cow.fi/avalanche"};function Ne(e){return Object.keys(e).reduce((t,r)=>{const n=e[r];return void 0!==n&&(t[r]=n),t},{})}class Me{constructor(t={}){this.context=void 0,this.rateLimiter=void 0,this.context={...Ce,...t},this.rateLimiter=new e.RateLimiter(t.limiterOpts||k)}getVersion(e={}){return this.fetch({path:"/api/v1/version",method:"GET"},e)}getTrades(e,t={}){if(e.owner&&e.orderUid)return Promise.reject(new E("Cannot specify both owner and orderId"));if(!e.owner&&!e.orderUid)return Promise.reject(new E("Must specify either owner or orderId"));const r=new URLSearchParams(Ne(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(Ne({offset:t.toString(),limit:r.toString()}));return this.fetch({path:`/api/v1/account/${e}/orders`,method:"GET",query:i},n).then(e=>e.map(Te))}getTxOrders(e,t={}){return this.fetch({path:`/api/v1/transactions/${e}/orders`,method:"GET"},t).then(e=>e.map(Te))}getOrder(e,t={}){return this.fetch({path:`/api/v1/orders/${e}`,method:"GET"},t).then(e=>Te(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=xe.filter(e=>e!==r);let i=0;const o=r=>{const s=n[i];return r instanceof I&&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?Pe:_e}fetch(t,r={}){const{chainId:n,env:i,backoffOpts:o}=this.getContextWithOverride(r),s=this.getApiBaseUrls(i)[n],a=o||C,u=r.limiterOpts?new e.RateLimiter(r.limiterOpts):this.rateLimiter;return Se(`Fetching OrderBook API: ${s}${t.path}. Params: ${JSON.stringify(t,ke)}`),S(s,t,u,a)}}var Re,Oe,De,Be,Fe,Le,Ue,Ge,He,qe,je,Ve,ze,Ke,We,Qe;exports.BuyTokenDestination=void 0,(Re=exports.BuyTokenDestination||(exports.BuyTokenDestination={})).ERC20="erc20",Re.INTERNAL="internal",exports.CompetitionOrderStatus=void 0,(De=(Oe=exports.CompetitionOrderStatus||(exports.CompetitionOrderStatus={})).type||(Oe.type={})).OPEN="open",De.SCHEDULED="scheduled",De.ACTIVE="active",De.SOLVED="solved",De.EXECUTING="executing",De.TRADED="traded",De.CANCELLED="cancelled",exports.EcdsaSigningScheme=void 0,(Be=exports.EcdsaSigningScheme||(exports.EcdsaSigningScheme={})).EIP712="eip712",Be.ETHSIGN="ethsign",exports.OnchainOrderData=void 0,(Le=(Fe=exports.OnchainOrderData||(exports.OnchainOrderData={})).placementError||(Fe.placementError={})).QUOTE_NOT_FOUND="QuoteNotFound",Le.VALID_TO_TOO_FAR_IN_FUTURE="ValidToTooFarInFuture",Le.PRE_VALIDATION_ERROR="PreValidationError",exports.OrderCancellationError=void 0,(Ge=(Ue=exports.OrderCancellationError||(exports.OrderCancellationError={})).errorType||(Ue.errorType={})).INVALID_SIGNATURE="InvalidSignature",Ge.WRONG_OWNER="WrongOwner",Ge.ORDER_NOT_FOUND="OrderNotFound",Ge.ALREADY_CANCELLED="AlreadyCancelled",Ge.ORDER_FULLY_EXECUTED="OrderFullyExecuted",Ge.ORDER_EXPIRED="OrderExpired",Ge.ON_CHAIN_ORDER="OnChainOrder",exports.OrderClass=void 0,(He=exports.OrderClass||(exports.OrderClass={})).MARKET="market",He.LIMIT="limit",He.LIQUIDITY="liquidity",exports.OrderKind=void 0,(qe=exports.OrderKind||(exports.OrderKind={})).BUY="buy",qe.SELL="sell",exports.OrderPostError=void 0,function(e){e.DUPLICATED_ORDER="DuplicatedOrder",e.QUOTE_NOT_FOUND="QuoteNotFound",e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.INVALID_QUOTE="InvalidQuote",e.MISSING_FROM="MissingFrom",e.WRONG_OWNER="WrongOwner",e.INVALID_EIP1271SIGNATURE="InvalidEip1271Signature",e.INSUFFICIENT_BALANCE="InsufficientBalance",e.INSUFFICIENT_ALLOWANCE="InsufficientAllowance",e.INVALID_SIGNATURE="InvalidSignature",e.SELL_AMOUNT_OVERFLOW="SellAmountOverflow",e.TRANSFER_SIMULATION_FAILED="TransferSimulationFailed",e.ZERO_AMOUNT="ZeroAmount",e.INCOMPATIBLE_SIGNING_SCHEME="IncompatibleSigningScheme",e.TOO_MANY_LIMIT_ORDERS="TooManyLimitOrders",e.TOO_MUCH_GAS="TooMuchGas",e.UNSUPPORTED_BUY_TOKEN_DESTINATION="UnsupportedBuyTokenDestination",e.UNSUPPORTED_SELL_TOKEN_SOURCE="UnsupportedSellTokenSource",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType",e.INSUFFICIENT_VALID_TO="InsufficientValidTo",e.EXCESSIVE_VALID_TO="ExcessiveValidTo",e.INVALID_NATIVE_SELL_TOKEN="InvalidNativeSellToken",e.SAME_BUY_AND_SELL_TOKEN="SameBuyAndSellToken",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.INVALID_APP_DATA="InvalidAppData",e.APP_DATA_HASH_MISMATCH="AppDataHashMismatch",e.APPDATA_FROM_MISMATCH="AppdataFromMismatch"}((je=exports.OrderPostError||(exports.OrderPostError={})).errorType||(je.errorType={})),exports.OrderQuoteSideKindBuy=void 0,(exports.OrderQuoteSideKindBuy||(exports.OrderQuoteSideKindBuy={})).BUY="buy",exports.OrderQuoteSideKindSell=void 0,(exports.OrderQuoteSideKindSell||(exports.OrderQuoteSideKindSell={})).SELL="sell",exports.OrderStatus=void 0,(Ve=exports.OrderStatus||(exports.OrderStatus={})).PRESIGNATURE_PENDING="presignaturePending",Ve.OPEN="open",Ve.FULFILLED="fulfilled",Ve.CANCELLED="cancelled",Ve.EXPIRED="expired",exports.PriceEstimationError=void 0,function(e){e.QUOTE_NOT_VERIFIED="QuoteNotVerified",e.UNSUPPORTED_TOKEN="UnsupportedToken",e.ZERO_AMOUNT="ZeroAmount",e.UNSUPPORTED_ORDER_TYPE="UnsupportedOrderType"}((ze=exports.PriceEstimationError||(exports.PriceEstimationError={})).errorType||(ze.errorType={})),exports.PriceQuality=void 0,(Ke=exports.PriceQuality||(exports.PriceQuality={})).FAST="fast",Ke.OPTIMAL="optimal",Ke.VERIFIED="verified",exports.SellTokenSource=void 0,(We=exports.SellTokenSource||(exports.SellTokenSource={})).ERC20="erc20",We.INTERNAL="internal",We.EXTERNAL="external",exports.SigningScheme=void 0,(Qe=exports.SigningScheme||(exports.SigningScheme={})).EIP712="eip712",Qe.ETHSIGN="ethsign",Qe.PRESIGN="presign",Qe.EIP1271="eip1271";const Je=BigInt(1e4);function Ye(e){var t;const{orderParams:r,sellDecimals:n,buyDecimals:i,slippagePercentBps:o}=e,s=null!==(t=e.partnerFeeBps)&&void 0!==t?t:0,a=r.kind===exports.OrderKind.SELL,u=Xe(r.feeAmount,n),l=Xe(r.sellAmount,n),c=Xe(r.buyAmount,i),d=c.num/l.num,h=Xe(l.big+u.big,n),p=Xe(d*h.num,i),f=s>0?(a?p.big:l.big)*BigInt(s)/Je:BigInt(0),m=a?{sellAmount:h.big,buyAmount:c.big-f}:{sellAmount:h.big+f,buyAmount:c.big},y=e=>e*BigInt(o)/Je,g=a?{sellAmount:m.sellAmount,buyAmount:m.buyAmount-y(m.buyAmount)}:{sellAmount:m.sellAmount+y(m.sellAmount),buyAmount:m.buyAmount};return{isSell:a,costs:{networkFee:{amountInSellCurrency:u.big,amountInBuyCurrency:Xe(d*u.num,i).big},partnerFee:{amount:f,bps:s}},beforeNetworkCosts:{sellAmount:l.big,buyAmount:p.big},afterNetworkCosts:{sellAmount:h.big,buyAmount:c.big},afterPartnerFees:m,afterSlippage:g}}function Xe(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}}function Ze(e){return e in ee}function $e(e){return e in ne}const et=1800,tt=50,rt={[exports.SupportedChainId.MAINNET]:200,[exports.SupportedChainId.ARBITRUM_ONE]:50,[exports.SupportedChainId.BASE]:50,[exports.SupportedChainId.GNOSIS_CHAIN]:50,[exports.SupportedChainId.SEPOLIA]:50,[exports.SupportedChainId.POLYGON]:50,[exports.SupportedChainId.AVALANCHE]:50},nt={[exports.EcdsaSigningScheme.EIP712]:exports.SigningScheme.EIP712,[exports.EcdsaSigningScheme.ETHSIGN]:exports.SigningScheme.ETHSIGN},it=BigInt(15e4),ot=()=>Promise.resolve().then(function(){return require("./utils-9a7618d8.js")});class st{static signOrder(e,t,r){try{return Promise.resolve(ot()).then(function({signOrder:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellation(e,t,r){try{return Promise.resolve(ot()).then(function({signOrderCancellation:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static signOrderCancellations(e,t,r){try{return Promise.resolve(ot()).then(function({signOrderCancellations:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomain(e){try{return Promise.resolve(ot()).then(function({getDomain:t}){return t(e)})}catch(e){return Promise.reject(e)}}static generateOrderId(e,t,r){try{return Promise.resolve(ot()).then(function({generateOrderId:n}){return n(e,t,r)})}catch(e){return Promise.reject(e)}}static getDomainSeparator(e){try{return Promise.resolve(ot()).then(function({getDomain:t}){return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return h(require("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 at({from:e,networkCostsAmount:t="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:c,partiallyFillable:d=!1,slippageBps:h=tt,partnerFee:p,validFor:f}=r,m=r.receiver||e,y=r.validTo||Math.floor(Date.now()/1e3)+(f||et),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:c,feeAmount:t,appData:n,partiallyFillable:d},{afterSlippage:b}=Ye({orderParams:g,slippagePercentBps:h,partnerFeeBps:p?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:b.sellAmount.toString(),buyAmount:b.buyAmount.toString(),validTo:y,kind:c,partiallyFillable:d,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:exports.SellTokenSource.ERC20,buyTokenBalance:exports.BuyTokenDestination.ERC20}}const ut=function(e,t,r,n){try{return Promise.resolve(st.generateOrderId(e,{...t,sellTokenBalance:t.sellTokenBalance,buyTokenBalance:t.buyTokenBalance,validTo:we,sellToken:R[e].address},{owner:"staging"===n?be:ge})).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=ut(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)}},lt=[{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 ct{static createInterface(){return new r.utils.Interface(lt)}static connect(e,t){return new r.Contract(e,lt,t)}}ct.abi=lt;const dt=[{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 ht{static createInterface(){return new r.utils.Interface(dt)}static connect(e,t){return new r.Contract(e,dt,t)}}ht.abi=dt;const pt=[{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 ft{static createInterface(){return new r.utils.Interface(pt)}static connect(e,t){return new r.Contract(e,pt,t)}}ft.abi=pt;const mt=[{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 yt{static createInterface(){return new r.utils.Interface(mt)}static connect(e,t){return new r.Contract(e,mt,t)}}yt.abi=mt;const gt=[{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 bt{static createInterface(){return new r.utils.Interface(gt)}static connect(e,t){return new r.Contract(e,gt,t)}}function vt(e,t){return{...e,quoteId:t.id,sellAmount:t.quote.sellAmount,buyAmount:t.quote.buyAmount}}function At(e){return e.sellToken.toLowerCase()===ue.toLowerCase()}function wt(e){return e+e*BigInt(20)/BigInt(100)}function Tt({quoteParameters:e,orderParameters:t}){return{...e,sellToken:t.sellToken}}function Et(e,t){return{...t,sellToken:R[e].address,slippageBps:"number"==typeof t.slippageBps?t.slippageBps:rt[e]}}bt.abi=gt;const St=function(e,t,r,n,i={}){try{const{networkCostsAmount:o="0",checkEthFlowOrderExists:s}=i;return Promise.resolve(e.getAddress()).then(function(i){const a={...r,...Et(n,r)},{quoteId:u}=a,l=function(e,t){return ft.connect("staging"===t?be:ge,e)}(e,a.env),c=at({from:i,networkCostsAmount:o},a,t);return Promise.resolve(ut(n,c,s,a.env)).then(function(e){const r={...c,quoteId:u,appData:t,validTo:c.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:c.sellAmount}).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),it))).then(function(t){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:e,orderToSign:c,transaction:{data:n,gasLimit:"0x"+wt(t).toString(16),to:l.address,value:"0x"+BigInt(c.sellAmount).toString(16)}}})})})}catch(e){return Promise.reject(e)}},It=function(e,t,r,n,i={}){try{const{appDataKeccak256:o,fullAppData:s}=r;return Promise.resolve(St(t,o,n,e.context.chainId,i)).then(function({orderId:r,transaction:n,orderToSign:i}){return Se("Uploading app-data"),Promise.resolve(e.uploadAppData(o,s)).then(function(){return Se("Sending on-chain order transaction"),Promise.resolve(t.sendTransaction(n)).then(function(e){return Se(`On-chain order transaction sent, txHash: ${e.hash}, order: ${r}`),{txHash:e.hash,orderId:r,orderToSign:i,signature:"",signingScheme:exports.SigningScheme.EIP1271}})})})}catch(e){return Promise.reject(e)}},xt=function(e,t,r,n,i={}){try{function o(i){const o=at({from:i,networkCostsAmount:s},n,r.appDataKeccak256);return Se("Signing order..."),Promise.resolve(function(){try{return a===exports.SigningScheme.PRESIGN?Promise.resolve({signature:i,signingScheme:exports.SigningScheme.PRESIGN}):Promise.resolve(st.signOrder(o,h,t)).then(function(e){return{signature:e.signature,signingScheme:nt[e.signingScheme]}})}catch(e){return Promise.reject(e)}}()).then(function({signature:t,signingScheme:r}){const n={...o,from:i,signature:t,signingScheme:r,quoteId:u,appData:d,appDataHash:c};return Se("Posting order..."),Promise.resolve(e.sendOrder(n)).then(function(e){return Se(`Order created, id: ${e}`),{orderId:e,signature:t,signingScheme:r,orderToSign:o}})})}const{networkCostsAmount:s="0",signingScheme:a=exports.SigningScheme.EIP712}=i;if(At(n)){const p=n.quoteId;if("number"==typeof p)return Promise.resolve(It(e,t,r,{...n,quoteId:p},i));throw new Error("quoteId is required for EthFlow orders")}const{quoteId:u=null,owner:l}=n,{appDataKeccak256:c,fullAppData:d}=r,h=e.context.chainId;return Promise.resolve(l?o(l):Promise.resolve(t.getAddress()).then(o))}catch(f){return Promise.reject(f)}},Ct=function(e,t){try{const r=t.metadata?.hooks?{...e,metadata:{...e.metadata,hooks:{}}}:e,n=t?f.default(r,t):r;return Promise.resolve(kt(n)).then(function({fullAppData:e,appDataKeccak256:t}){return{fullAppData:e,appDataKeccak256:t,doc:n}})}catch(e){return Promise.reject(e)}},kt=function(e){try{return Promise.resolve(n.stringifyDeterministic(e)).then(function(e){return{fullAppData:e,appDataKeccak256:i.keccak256(i.toUtf8Bytes(e))}})}catch(e){return Promise.reject(e)}},Pt=function({slippageBps:e,appCode:t,orderClass:r,partnerFee:n},i){try{return Promise.resolve(_t.generateAppDataDoc(f.default({appCode:t,metadata:{quote:{slippageBips:e},orderClass:{orderClass:r},partnerFee:n}},i||{}))).then(function(e){return Promise.resolve(kt(e)).then(function({fullAppData:t,appDataKeccak256:r}){return{doc:e,fullAppData:t,appDataKeccak256:r}})})}catch(e){return Promise.reject(e)}},_t=new n.MetadataApi,Nt=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}];var Mt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Rt(e){var t={exports:{}};return e(t,t.exports),t.exports}var Ot={__proto__:null,default:{}},Dt=Rt(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:Ot.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],x=8191&I,C=I>>>13,k=0|s[6],P=8191&k,_=k>>>13,N=0|s[7],M=8191&N,R=N>>>13,O=0|s[8],D=8191&O,B=O>>>13,F=0|s[9],L=8191&F,U=F>>>13,G=0|a[0],H=8191&G,q=G>>>13,j=0|a[1],V=8191&j,z=j>>>13,K=0|a[2],W=8191&K,Q=K>>>13,J=0|a[3],Y=8191&J,X=J>>>13,Z=0|a[4],$=8191&Z,ee=Z>>>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,H))|0)+((8191&(i=(i=Math.imul(d,q))+Math.imul(h,H)|0))<<13)|0;l=((o=Math.imul(h,q))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(f,H),i=(i=Math.imul(f,q))+Math.imul(m,H)|0,o=Math.imul(m,q);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,H),i=(i=Math.imul(g,q))+Math.imul(b,H)|0,o=Math.imul(b,q),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,Q)|0)+Math.imul(h,W)|0))<<13)|0;l=((o=o+Math.imul(h,Q)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(A,H),i=(i=Math.imul(A,q))+Math.imul(w,H)|0,o=Math.imul(w,q),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,Q)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,Q)|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,H),i=(i=Math.imul(E,q))+Math.imul(S,H)|0,o=Math.imul(S,q),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,Q)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Q)|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,$)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(h,$)|0))<<13)|0;l=((o=o+Math.imul(h,ee)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(x,H),i=(i=Math.imul(x,q))+Math.imul(C,H)|0,o=Math.imul(C,q),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,Q)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,Q)|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,$)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,$)|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(P,H),i=(i=Math.imul(P,q))+Math.imul(_,H)|0,o=Math.imul(_,q),n=n+Math.imul(x,V)|0,i=(i=i+Math.imul(x,z)|0)+Math.imul(C,V)|0,o=o+Math.imul(C,z)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Q)|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,$)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,$)|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(M,H),i=(i=Math.imul(M,q))+Math.imul(R,H)|0,o=Math.imul(R,q),n=n+Math.imul(P,V)|0,i=(i=i+Math.imul(P,z)|0)+Math.imul(_,V)|0,o=o+Math.imul(_,z)|0,n=n+Math.imul(x,W)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(C,W)|0,o=o+Math.imul(C,Q)|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,$)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(w,$)|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(D,H),i=(i=Math.imul(D,q))+Math.imul(B,H)|0,o=Math.imul(B,q),n=n+Math.imul(M,V)|0,i=(i=i+Math.imul(M,z)|0)+Math.imul(R,V)|0,o=o+Math.imul(R,z)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,Q)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Q)|0,n=n+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(C,Y)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul(E,$)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(S,$)|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(L,H),i=(i=Math.imul(L,q))+Math.imul(U,H)|0,o=Math.imul(U,q),n=n+Math.imul(D,V)|0,i=(i=i+Math.imul(D,z)|0)+Math.imul(B,V)|0,o=o+Math.imul(B,z)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Q)|0,n=n+Math.imul(P,Y)|0,i=(i=i+Math.imul(P,X)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,X)|0,n=n+Math.imul(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,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(L,V),i=(i=Math.imul(L,z))+Math.imul(U,V)|0,o=Math.imul(U,z),n=n+Math.imul(D,W)|0,i=(i=i+Math.imul(D,Q)|0)+Math.imul(B,W)|0,o=o+Math.imul(B,Q)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(R,Y)|0,o=o+Math.imul(R,X)|0,n=n+Math.imul(P,$)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(C,re)|0,o=o+Math.imul(C,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 xe=(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)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Q))+Math.imul(U,W)|0,o=Math.imul(U,Q),n=n+Math.imul(D,Y)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(B,Y)|0,o=o+Math.imul(B,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(C,oe)|0,o=o+Math.imul(C,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 Ce=(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)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,Y),i=(i=Math.imul(L,X))+Math.imul(U,Y)|0,o=Math.imul(U,X),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,ee)|0)+Math.imul(B,$)|0,o=o+Math.imul(B,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(C,ue)|0,o=o+Math.imul(C,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 ke=(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)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,$),i=(i=Math.imul(L,ee))+Math.imul(U,$)|0,o=Math.imul(U,ee),n=n+Math.imul(D,re)|0,i=(i=i+Math.imul(D,ne)|0)+Math.imul(B,re)|0,o=o+Math.imul(B,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,le)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,le)|0,n=n+Math.imul(x,de)|0,i=(i=i+Math.imul(x,he)|0)+Math.imul(C,de)|0,o=o+Math.imul(C,he)|0;var Pe=(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)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(U,re)|0,o=Math.imul(U,ne),n=n+Math.imul(D,oe)|0,i=(i=i+Math.imul(D,se)|0)+Math.imul(B,oe)|0,o=o+Math.imul(B,se)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,le)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,le)|0,n=n+Math.imul(P,de)|0,i=(i=i+Math.imul(P,he)|0)+Math.imul(_,de)|0,o=o+Math.imul(_,he)|0;var _e=(l+(n=n+Math.imul(x,fe)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((o=o+Math.imul(C,me)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,se))+Math.imul(U,oe)|0,o=Math.imul(U,se),n=n+Math.imul(D,ue)|0,i=(i=i+Math.imul(D,le)|0)+Math.imul(B,ue)|0,o=o+Math.imul(B,le)|0,n=n+Math.imul(M,de)|0,i=(i=i+Math.imul(M,he)|0)+Math.imul(R,de)|0,o=o+Math.imul(R,he)|0;var Ne=(l+(n=n+Math.imul(P,fe)|0)|0)+((8191&(i=(i=i+Math.imul(P,me)|0)+Math.imul(_,fe)|0))<<13)|0;l=((o=o+Math.imul(_,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,le))+Math.imul(U,ue)|0,o=Math.imul(U,le),n=n+Math.imul(D,de)|0,i=(i=i+Math.imul(D,he)|0)+Math.imul(B,de)|0,o=o+Math.imul(B,he)|0;var Me=(l+(n=n+Math.imul(M,fe)|0)|0)+((8191&(i=(i=i+Math.imul(M,me)|0)+Math.imul(R,fe)|0))<<13)|0;l=((o=o+Math.imul(R,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,de),i=(i=Math.imul(L,he))+Math.imul(U,de)|0,o=Math.imul(U,he);var Re=(l+(n=n+Math.imul(D,fe)|0)|0)+((8191&(i=(i=i+Math.imul(D,me)|0)+Math.imul(B,fe)|0))<<13)|0;l=((o=o+Math.imul(B,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Oe=(l+(n=Math.imul(L,fe))|0)+((8191&(i=(i=Math.imul(L,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]=xe,u[11]=Ce,u[12]=ke,u[13]=Pe,u[14]=_e,u[15]=Ne,u[16]=Me,u[17]=Re,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,Mt)});let Bt=!1,Ft=!1;const Lt={debug:1,default:2,info:2,warning:3,error:4,off:5};let Ut=Lt.default,Gt=null;const Ht=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 qt,jt;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(qt||(qt={})),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"}(jt||(jt={}));const Vt="0123456789abcdef";class zt{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==Lt[r]&&this.throwArgumentError("invalid log level name","logLevel",e),Ut>Lt[r]||console.log.apply(console,t)}debug(...e){this._log(zt.levels.DEBUG,e)}info(...e){this._log(zt.levels.INFO,e)}warn(...e){this._log(zt.levels.WARNING,e)}makeError(e,t,r){if(Ft)return this.makeError("censored error",t,{});t||(t=zt.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+=Vt[t[e]>>4],r+=Vt[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 jt.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 jt.CALL_EXCEPTION:case jt.INSUFFICIENT_FUNDS:case jt.MISSING_NEW:case jt.NONCE_EXPIRED:case jt.REPLACEMENT_UNDERPRICED:case jt.TRANSACTION_REPLACED:case jt.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,zt.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){Ht&&this.throwError("platform missing String.prototype.normalize",zt.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Ht})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,zt.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,zt.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",e<t&&this.throwError("missing argument"+r,zt.errors.MISSING_ARGUMENT,{count:e,expectedCount:t}),e>t&&this.throwError("too many arguments"+r,zt.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",zt.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",zt.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",zt.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return Gt||(Gt=new zt("logger/5.8.0")),Gt}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",zt.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Bt){if(!e)return;this.globalLogger().throwError("error censorship permanent",zt.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Ft=!!e,Bt=!!t}static setLogLevel(e){const t=Lt[e.toLowerCase()];null!=t?Ut=t:zt.globalLogger().warn("invalid log level - "+e)}static from(e){return new zt(e)}}zt.errors=jt,zt.levels=qt;const Kt=new zt("bytes/5.8.0");function Wt(e){return!!e.toHexString}function Qt(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Qt(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Jt(e){return tr(e)&&!(e.length%2)||Xt(e)}function Yt(e){return"number"==typeof e&&e==e&&e%1==0}function Xt(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Yt(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const r=e[t];if(!Yt(r)||r<0||r>=256)return!1}return!0}function Zt(e,t){if(t||(t={}),"number"==typeof e){Kt.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),Qt(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Wt(e)&&(e=e.toHexString()),tr(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":Kt.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 Qt(new Uint8Array(n))}return Xt(e)?Qt(new Uint8Array(e)):Kt.throwArgumentError("invalid arrayify value","value",e)}function $t(e){const t=e.map(e=>Zt(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),Qt(n)}function er(e){let t=Zt(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 tr(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/)||t&&e.length!==2+2*t)}const rr="0123456789abcdef";function nr(e,t){if(t||(t={}),"number"==typeof e){Kt.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=rr[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),Wt(e))return e.toHexString();if(tr(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Kt.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(Xt(e)){let t="0x";for(let r=0;r<e.length;r++){let n=e[r];t+=rr[(240&n)>>4]+rr[15&n]}return t}return Kt.throwArgumentError("invalid hexlify value","value",e)}function ir(e){if("string"!=typeof e)e=nr(e);else if(!tr(e)||e.length%2)return null;return(e.length-2)/2}function or(e,t,r){return"string"!=typeof e?e=nr(e):(!tr(e)||e.length%2)&&Kt.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=r?"0x"+e.substring(t,2+2*r):"0x"+e.substring(t)}function sr(e){let t="0x";return e.forEach(e=>{t+=nr(e).substring(2)}),t}function ar(e){const t=function(e){"string"!=typeof e&&(e=nr(e)),tr(e)||Kt.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)}(nr(e,{hexPad:"left"}));return"0x"===t?"0x0":t}function ur(e,t){for("string"!=typeof e?e=nr(e):tr(e)||Kt.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Kt.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function lr(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(Jt(e)){let r=Zt(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=nr(r.slice(0,32)),t.s=nr(r.slice(32,64))):65===r.length?(t.r=nr(r.slice(0,32)),t.s=nr(r.slice(32,64)),t.v=r[64]):Kt.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:Kt.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=nr(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=Zt(e)).length>t&&Kt.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),Qt(r)}(Zt(t._vs),32);t._vs=nr(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&Kt.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const i=nr(r);null==t.s?t.s=i:t.s!==i&&Kt.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?Kt.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)&&Kt.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&tr(t.r)?t.r=ur(t.r,32):Kt.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&tr(t.s)?t.s=ur(t.s,32):Kt.throwArgumentError("signature missing or invalid s","signature",e);const r=Zt(t.s);r[0]>=128&&Kt.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=nr(r);t._vs&&(tr(t._vs)||Kt.throwArgumentError("signature invalid _vs","signature",e),t._vs=ur(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&Kt.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}function cr(e){return nr($t([(e=lr(e)).r,e.s,e.recoveryParam?"0x1c":"0x1b"]))}const dr="bignumber/5.8.0";var hr=Dt.BN;const pr=new zt(dr),fr={},mr=9007199254740991;let yr=!1;class gr{constructor(e,t){e!==fr&&pr.throwError("cannot call constructor directly; use BigNumber.from",zt.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return vr(Ar(this).fromTwos(e))}toTwos(e){return vr(Ar(this).toTwos(e))}abs(){return"-"===this._hex[0]?gr.from(this._hex.substring(1)):this}add(e){return vr(Ar(this).add(Ar(e)))}sub(e){return vr(Ar(this).sub(Ar(e)))}div(e){return gr.from(e).isZero()&&wr("division-by-zero","div"),vr(Ar(this).div(Ar(e)))}mul(e){return vr(Ar(this).mul(Ar(e)))}mod(e){const t=Ar(e);return t.isNeg()&&wr("division-by-zero","mod"),vr(Ar(this).umod(t))}pow(e){const t=Ar(e);return t.isNeg()&&wr("negative-power","pow"),vr(Ar(this).pow(t))}and(e){const t=Ar(e);return(this.isNegative()||t.isNeg())&&wr("unbound-bitwise-result","and"),vr(Ar(this).and(t))}or(e){const t=Ar(e);return(this.isNegative()||t.isNeg())&&wr("unbound-bitwise-result","or"),vr(Ar(this).or(t))}xor(e){const t=Ar(e);return(this.isNegative()||t.isNeg())&&wr("unbound-bitwise-result","xor"),vr(Ar(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&wr("negative-width","mask"),vr(Ar(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&wr("negative-width","shl"),vr(Ar(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&wr("negative-width","shr"),vr(Ar(this).shrn(e))}eq(e){return Ar(this).eq(Ar(e))}lt(e){return Ar(this).lt(Ar(e))}lte(e){return Ar(this).lte(Ar(e))}gt(e){return Ar(this).gt(Ar(e))}gte(e){return Ar(this).gte(Ar(e))}isNegative(){return"-"===this._hex[0]}isZero(){return Ar(this).isZero()}toNumber(){try{return Ar(this).toNumber()}catch(e){wr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return pr.throwError("this platform does not support BigInt",zt.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?yr||(yr=!0,pr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):pr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",zt.errors.UNEXPECTED_ARGUMENT,{})),Ar(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof gr)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new gr(fr,br(e)):e.match(/^-?[0-9]+$/)?new gr(fr,br(new hr(e))):pr.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&wr("underflow","BigNumber.from",e),(e>=mr||e<=-mr)&&wr("overflow","BigNumber.from",e),gr.from(String(e));const t=e;if("bigint"==typeof t)return gr.from(t.toString());if(Xt(t))return gr.from(nr(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return gr.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(tr(e)||"-"===e[0]&&tr(e.substring(1))))return gr.from(e)}return pr.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function br(e){if("string"!=typeof e)return br(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&pr.throwArgumentError("invalid hex","value",e),"0x00"===(e=br(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 vr(e){return gr.from(br(e))}function Ar(e){const t=gr.from(e).toHexString();return new hr("-"===t[0]?"-"+t.substring(3):t.substring(2),16)}function wr(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),pr.throwError(e,zt.errors.NUMERIC_FAULT,n)}const Tr=new zt(dr),Er={},Sr=gr.from(0),Ir=gr.from(-1);function xr(e,t,r,n){const i={fault:t,operation:r};return void 0!==n&&(i.value=n),Tr.throwError(e,zt.errors.NUMERIC_FAULT,i)}let Cr="0";for(;Cr.length<256;)Cr+=Cr;function kr(e){if("number"!=typeof e)try{e=gr.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+Cr.substring(0,e):Tr.throwArgumentError("invalid decimal size","decimals",e)}function Pr(e,t){null==t&&(t=0);const r=kr(t),n=(e=gr.from(e)).lt(Sr);n&&(e=e.mul(Ir));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 _r(e,t){null==t&&(t=0);const r=kr(t);"string"==typeof e&&e.match(/^-?[0-9.]+$/)||Tr.throwArgumentError("invalid decimal value","value",e);const n="-"===e.substring(0,1);n&&(e=e.substring(1)),"."===e&&Tr.throwArgumentError("missing value","value",e);const i=e.split(".");i.length>2&&Tr.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&&xr("fractional component exceeds decimals","underflow","parseFixed"),""===s&&(s="0");s.length<r.length-1;)s+="0";const a=gr.from(o),u=gr.from(s);let l=a.mul(r).add(u);return n&&(l=l.mul(Ir)),l}class Nr{constructor(e,t,r,n){e!==Er&&Tr.throwError("cannot use FixedFormat constructor; use FixedFormat.from",zt.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=kr(n),Object.freeze(this)}static from(e){if(e instanceof Nr)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||Tr.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&&Tr.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&&Tr.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",r),n>80&&Tr.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",n),new Nr(Er,t,r,n)}}class Mr{constructor(e,t,r,n){e!==Er&&Tr.throwError("cannot use FixedNumber constructor; use FixedNumber.from",zt.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&&Tr.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}addUnsafe(e){this._checkFormat(e);const t=_r(this._value,this.format.decimals),r=_r(e._value,e.format.decimals);return Mr.fromValue(t.add(r),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const t=_r(this._value,this.format.decimals),r=_r(e._value,e.format.decimals);return Mr.fromValue(t.sub(r),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const t=_r(this._value,this.format.decimals),r=_r(e._value,e.format.decimals);return Mr.fromValue(t.mul(r).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const t=_r(this._value,this.format.decimals),r=_r(e._value,e.format.decimals);return Mr.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=Mr.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return this.isNegative()&&r&&(t=t.subUnsafe(Rr.toFormat(t.format))),t}ceiling(){const e=this.toString().split(".");1===e.length&&e.push("0");let t=Mr.from(e[0],this.format);const r=!e[1].match(/^(0*)$/);return!this.isNegative()&&r&&(t=t.addUnsafe(Rr.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)&&Tr.throwArgumentError("invalid decimal count","decimals",e),t[1].length<=e)return this;const r=Mr.from("1"+Cr.substring(0,e),this.format),n=Or.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&&Tr.throwArgumentError("invalid byte width","width",e),ur(gr.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString(),e/8))}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return Mr.fromString(this._value,e)}static fromValue(e,t,r){return null!=r||null==t||function(e){return null!=e&&(gr.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||tr(e)||"bigint"==typeof e||Xt(e))}(t)||(r=t,t=null),null==t&&(t=0),null==r&&(r="fixed"),Mr.fromString(Pr(e,t),Nr.from(r))}static fromString(e,t){null==t&&(t="fixed");const r=Nr.from(t),n=_r(e,r.decimals);!r.signed&&n.lt(Sr)&&xr("unsigned value cannot be negative","overflow","value",e);let i=null;r.signed?i=n.toTwos(r.width).toHexString():(i=n.toHexString(),i=ur(i,r.width/8));const o=Pr(n,r.decimals);return new Mr(Er,i,o,r)}static fromBytes(e,t){null==t&&(t="fixed");const r=Nr.from(t);if(Zt(e).length>r.width/8)throw new Error("overflow");let n=gr.from(e);r.signed&&(n=n.fromTwos(r.width));const i=n.toTwos((r.signed?0:1)+r.width).toHexString(),o=Pr(n,r.decimals);return new Mr(Er,i,o,r)}static from(e,t){if("string"==typeof e)return Mr.fromString(e,t);if(Xt(e))return Mr.fromBytes(e,t);try{return Mr.fromValue(e,0,t)}catch(e){if(e.code!==zt.errors.INVALID_ARGUMENT)throw e}return Tr.throwArgumentError("invalid FixedNumber value","value",e)}static isFixedNumber(e){return!(!e||!e._isFixedNumber)}}const Rr=Mr.from(1),Or=Mr.from("0.5");var Dr=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 Br=new zt("properties/5.8.0");function Fr(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}function Lr(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 Ur(e){return Dr(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 Gr(e,t){e&&"object"==typeof e||Br.throwArgumentError("invalid object","object",e),Object.keys(e).forEach(r=>{t[r]||Br.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)})}function Hr(e){const t={};for(const r in e)t[r]=e[r];return t}const qr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function jr(e){if(null==e||qr[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(!jr(n))return!1}return!0}return Br.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Vr(e){if(jr(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>zr(e)));if("object"==typeof e){const t={};for(const r in e){const n=e[r];void 0!==n&&Fr(t,r,zr(n))}return t}return Br.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function zr(e){return Vr(e)}class Kr{constructor(e){for(const t in e)this[t]=zr(e[t])}}const Wr=new zt("abstract-provider/5.8.0");class Qr extends Kr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}class Jr{constructor(){Wr.checkAbstract(new.target,Jr),Fr(this,"_isProvider",!0)}getFeeData(){return e=this,r=function*(){const{block:e,gasPrice:t}=yield Ur({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=gr.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 Yr=new zt("networks/5.8.0");function Xr(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 Xr(e)},t}function Zr(e,t){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(e,t):null};return r.renetwork=function(t){return Zr(e,t)},r}const $r={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Xr("homestead")},en={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Xr("ropsten")},tn={chainId:63,name:"classicMordor",_defaultProvider:Zr("https://www.ethercluster.com/mordor","classicMordor")},rn={unspecified:{chainId:0,name:"unspecified"},homestead:$r,mainnet:$r,morden:{chainId:2,name:"morden"},ropsten:en,testnet:en,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Xr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Xr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Xr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"sepolia",_defaultProvider:Xr("sepolia")},holesky:{chainId:17e3,name:"holesky",_defaultProvider:Xr("holesky")},classic:{chainId:61,name:"classic",_defaultProvider:Zr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:tn,classicTestnet:tn,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Zr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Xr("matic")},maticmum:{chainId:80001,name:"maticmum",_defaultProvider:Xr("maticmum")},optimism:{chainId:10,name:"optimism",_defaultProvider:Xr("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 nn(e){e=atob(e);const t=[];for(let r=0;r<e.length;r++)t.push(e.charCodeAt(r));return Zt(t)}function on(e){e=Zt(e);let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}class sn{constructor(e){Fr(this,"alphabet",e),Fr(this,"base",e.length),Fr(this,"_alphabetMap",{}),Fr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=Zt(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 Zt(new Uint8Array(t.reverse()))}}new sn("abcdefghijklmnopqrstuvwxyz234567");const an=new sn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),un=/*#__PURE__*/gr.from(-1),ln=/*#__PURE__*/gr.from(0),cn=/*#__PURE__*/gr.from(1),dn=/*#__PURE__*/gr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var hn=Rt(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=Mt: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 _(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,i){return new _(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 _(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 _(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 _(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 N(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],x=I.bits,C=0;C<x.length;++C){var k=I.name+"_"+x[C];if(E.push(k),T[k]=I.createMethod(x[C],I.padding),"sha3"!==I.name){var P=I.name+x[C];E.push(P),T[P]=T[k]}}function _(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 N(e,t,r){_.call(this,e,t,r)}_.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];M(p),this.reset=!0}else this.start=i}return this},_.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},_.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},_.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},_.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];M(n)}},_.prototype.toString=_.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&&(M(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},_.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&&M(r)}return i&&(u[o]=r[o],e=e.slice(0,a)),e},_.prototype.buffer=_.prototype.arrayBuffer,_.prototype.digest=_.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&&M(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},(N.prototype=new _).finalize=function(){return this.encode(this.outputBits,!0),_.prototype.finalize.call(this)};var M=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,x,C,k,P,_,N,M,R,O,D,B,F,L,U,G,H,q,j,V,z,K,W,Q,J,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,Q=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,_=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,j=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,M=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,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,A=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,R=e[45]<<29|e[44]>>>3,O=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,x=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,$=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,C=e[18]<<20|e[19]>>>12,k=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,H=e[38]<<8|e[39]>>>24,q=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^~C&P,e[11]=x^~k&_,e[20]=D^~F&U,e[21]=B^~L&G,e[30]=z^~W&J,e[31]=K^~Q&Y,e[40]=te^~ne&oe,e[41]=re^~ie&se,e[2]=g^~v&w,e[3]=b^~A&T,e[12]=C^~P&N,e[13]=k^~_&M,e[22]=F^~U&H,e[23]=L^~G&q,e[32]=W^~J&X,e[33]=Q^~Y&Z,e[42]=ne^~oe&ae,e[43]=ie^~se&ue,e[4]=v^~w&E,e[5]=A^~T&S,e[14]=P^~N&R,e[15]=_^~M&O,e[24]=U^~H&j,e[25]=G^~q&V,e[34]=J^~X&$,e[35]=Y^~Z&ee,e[44]=oe^~ae&le,e[45]=se^~ue&ce,e[6]=w^~E&m,e[7]=T^~S&y,e[16]=N^~R&I,e[17]=M^~O&x,e[26]=H^~j&D,e[27]=q^~V&B,e[36]=X^~$&z,e[37]=Z^~ee&K,e[46]=ae^~le&te,e[47]=ue^~ce&re,e[8]=E^~m&g,e[9]=S^~y&b,e[18]=R^~I&C,e[19]=O^~x&k,e[28]=j^~D&F,e[29]=V^~B&L,e[38]=$^~z&W,e[39]=ee^~K&Q,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]]}()}),pn=hn;function fn(e){return"0x"+pn.keccak_256(Zt(e))}const mn=new zt("strings/5.8.0");var yn,gn;function bn(e,t,r,n,i){if(e===gn.BAD_PREFIX||e===gn.UNEXPECTED_CONTINUE){let e=0;for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return e===gn.OVERRUN?r.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(yn||(yn={})),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"}(gn||(gn={}));const vn=Object.freeze({error:function(e,t,r,n,i){return mn.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:bn,replace:function(e,t,r,n,i){return e===gn.OVERLONG?(n.push(i),0):(n.push(65533),bn(e,t,r))}});function An(e,t){null==t&&(t=vn.error),e=Zt(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)?gn.UNEXPECTED_CONTINUE:gn.BAD_PREFIX,n-1,e,r);continue}o=3,s=65535}if(n-1+o>=e.length){n+=t(gn.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(gn.MISSING_CONTINUE,n,e,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=t(gn.OUT_OF_RANGE,n-1-o,e,r,a):a>=55296&&a<=57343?n+=t(gn.UTF16_SURROGATE,n-1-o,e,r,a):a<=s?n+=t(gn.OVERLONG,n-1-o,e,r,a):r.push(a))}return r}function wn(e,t=yn.current){t!=yn.current&&(mn.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 Zt(r)}function Tn(e,t){return An(e,t).map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))).join("")}function En(e){return fn(wn(e))}const Sn="hash/5.8.0";function In(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 xn(e){return 1&e?~e>>1:e>>1}function Cn(e,t){let r=Array(e);for(let n=0,i=-1;n<e;n++)r[n]=i+=1+t();return r}function kn(e,t){let r=Array(e);for(let n=0,i=0;n<e;n++)r[n]=i+=xn(t());return r}function Pn(e,t){let r=Cn(e(),e),n=e(),i=Cn(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 _n(e,t,r){let n=Array(e).fill(void 0).map(()=>[]);for(let i=0;i<t;i++)kn(e,r).forEach((e,t)=>n[t].push(e));return n}function Nn(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 In(_n(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 Mn(e,t){return _n(1+t(),1+e,t).map(e=>[e[0],e.slice(1)])}const Rn=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}})}(nn("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=="))),On=new Set(Pn(Rn)),Dn=new Set(Pn(Rn)),Bn=function(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(Nn(r,e))}for(;;){let r=e()-1;if(r<0)break;t.push(Mn(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}(In(t))}(Rn),Fn=function(e){let t=Pn(e).sort((e,t)=>e-t);return function r(){let n=[];for(;;){let i=Pn(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}}()}(Rn),Ln=45,Un=95;function Gn(e){return function(e,t=yn.current){return An(wn(e,t))}(e)}function Hn(e){return e.filter(e=>65039!=e)}function qn(e){for(let t of e.split(".")){let e=Gn(t);try{for(let t=e.lastIndexOf(Un)-1;t>=0;t--)if(e[t]!==Un)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every(e=>e<128)&&e[2]===Ln&&e[3]===Ln)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function jn(e,t){var r;let n,i,o=Fn,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 Vn=new zt(Sn),zn=new Uint8Array(32);function Kn(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function Wn(e){const t=wn(function(e){return qn(function(e,t){let r=Gn(e).reverse(),n=[];for(;r.length;){let e=jn(r);if(e){n.push(...t(e));continue}let i=r.pop();if(On.has(i)){n.push(i);continue}if(Dn.has(i))continue;let o=Bn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return qn(function(e){return e.normalize("NFC")}(String.fromCodePoint(...n)))}(e,Hn))}(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(Kn(t.slice(n,e))),n=e+1);if(n>=t.length)throw new Error("invalid ENS name; empty component");return r.push(Kn(t.slice(n))),r}function Qn(e){"string"!=typeof e&&Vn.throwArgumentError("invalid ENS name; not a string","name",e);let t=zn;const r=Wn(e);for(;r.length;)t=fn($t([t,fn(r.pop())]));return nr(t)}zn.fill(0);const Jn=new zt("rlp/5.8.0");function Yn(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Xn(e,t,r){let n=0;for(let i=0;i<r;i++)n=256*n+e[t+i];return n}function Zn(e){if(Array.isArray(e)){let t=[];if(e.forEach(function(e){t=t.concat(Zn(e))}),t.length<=55)return t.unshift(192+t.length),t;const r=Yn(t.length);return r.unshift(247+r.length),r.concat(t)}Jt(e)||Jn.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(Zt(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const r=Yn(t.length);return r.unshift(183+r.length),r.concat(t)}function $n(e){return nr(Zn(e))}function ei(e,t,r,n){const i=[];for(;r<t+1+n;){const o=ti(e,r);i.push(o.result),(r+=o.consumed)>t+1+n&&Jn.throwError("child data too short",zt.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function ti(e,t){if(0===e.length&&Jn.throwError("data too short",zt.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&Jn.throwError("data short segment too short",zt.errors.BUFFER_OVERRUN,{});const n=Xn(e,t+1,r);return t+1+r+n>e.length&&Jn.throwError("data long segment too short",zt.errors.BUFFER_OVERRUN,{}),ei(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&Jn.throwError("data array too short",zt.errors.BUFFER_OVERRUN,{}),ei(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&Jn.throwError("data array too short",zt.errors.BUFFER_OVERRUN,{});const n=Xn(e,t+1,r);return t+1+r+n>e.length&&Jn.throwError("data array too short",zt.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:nr(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;return t+1+r>e.length&&Jn.throwError("data too short",zt.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:nr(e.slice(t+1,t+1+r))}}return{consumed:1,result:nr(e[t])}}function ri(e){const t=Zt(e),r=ti(t,0);return r.consumed!==t.length&&Jn.throwArgumentError("invalid rlp data","data",e),r.result}const ni=new zt("address/5.8.0");function ii(e){tr(e,20)||ni.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=Zt(fn(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 oi={};for(let e=0;e<10;e++)oi[String(e)]=String(e);for(let e=0;e<26;e++)oi[String.fromCharCode(65+e)]=String(10+e);const si=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function ai(e){let t=null;if("string"!=typeof e&&ni.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=ii(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&ni.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=>oi[e]).join("");for(;t.length>=si;){let e=t.substring(0,si);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)&&ni.throwArgumentError("bad icap checksum","address",e),r=e.substring(4),t=new hr(r,36).toString(16);t.length<40;)t="0"+t;t=ii("0x"+t)}else ni.throwArgumentError("invalid address","address",e);var r;return t}function ui(e){let t=null;try{t=ai(e.from)}catch(t){ni.throwArgumentError("missing from address","transaction",e)}return ai(or(fn($n([t,er(Zt(gr.from(e.nonce).toHexString()))])),12))}const li=new zt(Sn),ci=new Uint8Array(32);ci.fill(0);const di=gr.from(-1),hi=gr.from(0),pi=gr.from(1),fi=gr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),mi=ur(pi.toHexString(),32),yi=ur(hi.toHexString(),32),gi={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},bi=["name","version","chainId","verifyingContract","salt"];function vi(e){return function(t){return"string"!=typeof t&&li.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Ai={name:vi("name"),version:vi("version"),chainId:function(e){try{return gr.from(e).toString()}catch(e){}return li.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return ai(e).toLowerCase()}catch(e){}return li.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=Zt(e);if(32!==t.length)throw new Error("bad length");return nr(t)}catch(e){}return li.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function wi(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))&&li.throwArgumentError("invalid numeric width","type",e);const i=fi.mask(r?n-1:n),o=r?i.add(pi).mul(di):hi;return function(t){const r=gr.from(t);return(r.lt(o)||r.gt(i))&&li.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),ur(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))&&li.throwArgumentError("invalid bytes width","type",e),function(t){return Zt(t).length!==r&&li.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=Zt(e),r=t.length%32;return r?sr([t,ci.slice(r)]):nr(t)}(t)}}}switch(e){case"address":return function(e){return ur(ai(e),32)};case"bool":return function(e){return e?mi:yi};case"bytes":return function(e){return fn(e)};case"string":return function(e){return En(e)}}return null}function Ti(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}class Ei{constructor(e){Fr(this,"types",Object.freeze(zr(e))),Fr(this,"_encoderCache",{}),Fr(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]&&li.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&&li.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",e),wi(s)||(r[s]||li.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?li.throwArgumentError("missing primary type","types",e):i.length>1&&li.throwArgumentError(`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),Fr(this,"primaryType",i[0]),function i(o,s){s[o]&&li.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]=Ti(t,e[t])+r.map(t=>Ti(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=wi(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&&li.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(r);return this._types[e]&&(i=i.map(fn)),fn(sr(i))}}const r=this.types[e];if(r){const t=En(this._types[e]);return e=>{const n=r.map(({name:t,type:r})=>{const n=this.getEncoder(r)(e[t]);return this._types[r]?fn(n):n});return n.unshift(t),sr(n)}}return li.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||li.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return fn(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(wi(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&&li.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),{}):li.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Ei(e)}static getPrimaryType(e){return Ei.from(e).primaryType}static hashStruct(e,t,r){return Ei.from(t).hashStruct(e,r)}static hashDomain(e){const t=[];for(const r in e){const n=gi[r];n||li.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>bi.indexOf(e.name)-bi.indexOf(t.name)),Ei.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return sr(["0x1901",Ei.hashDomain(e),Ei.from(t).hash(r)])}static hash(e,t,r){return fn(Ei.encode(e,t,r))}static resolveNames(e,t,r,n){return i=this,s=function*(){e=Hr(e);const i={};e.verifyingContract&&!tr(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const o=Ei.from(t);o.visit(r,(e,t)=>("address"!==e||tr(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){Ei.hashDomain(e);const n={},i=[];bi.forEach(t=>{const r=e[t];null!=r&&(n[t]=Ai[t](r),i.push({name:t,type:gi[t]}))});const o=Ei.from(t),s=Hr(t);return s.EIP712Domain?li.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 nr(Zt(t));if(e.match(/^u?int/))return gr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&li.throwArgumentError("invalid string","value",t),t}return li.throwArgumentError("unsupported type","type",e)})}}}var Si=Ii;function Ii(e,t){if(!e)throw new Error(t||"Assertion failed")}function xi(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function Ci(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function ki(e){return 1===e.length?"0"+e:e}function Pi(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}Ii.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var _i={inherits:Rt(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):xi(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+=ki(e[r].toString(16));return t},htonl:Ci,toHex32:function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=Ci(i)),r+=Pi(i.toString(16))}return r},zero2:ki,zero8:Pi,join32:function(e,t,r,n){var i=r-t;Si(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 Ni(){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 Mi=Ni;Ni.prototype.update=function(e,t){if(e=_i.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=_i.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},Ni.prototype.digest=function(e){return this.update(this._pad()),Si(null===this.pending),this._digest(e)},Ni.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 Ri={BlockHash:Mi},Oi=_i.rotr32;function Di(e,t,r){return e&t^~e&r}function Bi(e,t,r){return e&t^e&r^t&r}var Fi=Di,Li=Bi,Ui=_i.rotl32,Gi=_i.sum32,Hi=_i.sum32_5,qi=function(e,t,r,n){return 0===e?Di(t,r,n):1===e||3===e?function(e,t,r){return e^t^r}(t,r,n):2===e?Bi(t,r,n):void 0},ji=Ri.BlockHash,Vi=[1518500249,1859775393,2400959708,3395469782];function zi(){if(!(this instanceof zi))return new zi;ji.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}_i.inherits(zi,ji);var Ki=zi;zi.blockSize=512,zi.outSize=160,zi.hmacStrength=80,zi.padLength=64,zi.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]=Ui(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=Hi(Ui(i,5),qi(l,o,s,a),u,r[n],Vi[l]);u=a,a=s,s=Ui(o,30),o=i,i=c}this.h[0]=Gi(this.h[0],i),this.h[1]=Gi(this.h[1],o),this.h[2]=Gi(this.h[2],s),this.h[3]=Gi(this.h[3],a),this.h[4]=Gi(this.h[4],u)},zi.prototype._digest=function(e){return"hex"===e?_i.toHex32(this.h,"big"):_i.split32(this.h,"big")};var Wi=_i.sum32,Qi=_i.sum32_4,Ji=_i.sum32_5,Yi=Fi,Xi=Li,Zi=function(e){return Oi(e,2)^Oi(e,13)^Oi(e,22)},$i=function(e){return Oi(e,6)^Oi(e,11)^Oi(e,25)},eo=function(e){return Oi(e,7)^Oi(e,18)^e>>>3},to=function(e){return Oi(e,17)^Oi(e,19)^e>>>10},ro=Ri.BlockHash,no=[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 io(){if(!(this instanceof io))return new io;ro.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=no,this.W=new Array(64)}_i.inherits(io,ro);var oo=io;function so(){if(!(this instanceof so))return new so;oo.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}io.blockSize=512,io.outSize=256,io.hmacStrength=192,io.padLength=64,io.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]=Qi(to(r[n-2]),r[n-7],eo(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(Si(this.k.length===r.length),n=0;n<r.length;n++){var h=Ji(d,$i(u),Yi(u,l,c),this.k[n],r[n]),p=Wi(Zi(i),Xi(i,o,s));d=c,c=l,l=u,u=Wi(a,h),a=s,s=o,o=i,i=Wi(h,p)}this.h[0]=Wi(this.h[0],i),this.h[1]=Wi(this.h[1],o),this.h[2]=Wi(this.h[2],s),this.h[3]=Wi(this.h[3],a),this.h[4]=Wi(this.h[4],u),this.h[5]=Wi(this.h[5],l),this.h[6]=Wi(this.h[6],c),this.h[7]=Wi(this.h[7],d)},io.prototype._digest=function(e){return"hex"===e?_i.toHex32(this.h,"big"):_i.split32(this.h,"big")},_i.inherits(so,oo);var ao=so;so.blockSize=512,so.outSize=224,so.hmacStrength=192,so.padLength=64,so.prototype._digest=function(e){return"hex"===e?_i.toHex32(this.h.slice(0,7),"big"):_i.split32(this.h.slice(0,7),"big")};var uo=_i.rotr64_hi,lo=_i.rotr64_lo,co=_i.shr64_hi,ho=_i.shr64_lo,po=_i.sum64,fo=_i.sum64_hi,mo=_i.sum64_lo,yo=_i.sum64_4_hi,go=_i.sum64_4_lo,bo=_i.sum64_5_hi,vo=_i.sum64_5_lo,Ao=Ri.BlockHash,wo=[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 To(){if(!(this instanceof To))return new To;Ao.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=wo,this.W=new Array(160)}_i.inherits(To,Ao);var Eo=To;function So(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function Io(e,t,r,n,i,o){var s=t&n^~t&o;return s<0&&(s+=4294967296),s}function xo(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function Co(e,t,r,n,i,o){var s=t&n^t&o^n&o;return s<0&&(s+=4294967296),s}function ko(e,t){var r=uo(e,t,28)^uo(t,e,2)^uo(t,e,7);return r<0&&(r+=4294967296),r}function Po(e,t){var r=lo(e,t,28)^lo(t,e,2)^lo(t,e,7);return r<0&&(r+=4294967296),r}function _o(e,t){var r=uo(e,t,14)^uo(e,t,18)^uo(t,e,9);return r<0&&(r+=4294967296),r}function No(e,t){var r=lo(e,t,14)^lo(e,t,18)^lo(t,e,9);return r<0&&(r+=4294967296),r}function Mo(e,t){var r=uo(e,t,1)^uo(e,t,8)^co(e,t,7);return r<0&&(r+=4294967296),r}function Ro(e,t){var r=lo(e,t,1)^lo(e,t,8)^ho(e,t,7);return r<0&&(r+=4294967296),r}function Oo(e,t){var r=uo(e,t,19)^uo(t,e,29)^co(e,t,6);return r<0&&(r+=4294967296),r}function Do(e,t){var r=lo(e,t,19)^lo(t,e,29)^ho(e,t,6);return r<0&&(r+=4294967296),r}function Bo(){if(!(this instanceof Bo))return new Bo;Eo.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}To.blockSize=1024,To.outSize=512,To.hmacStrength=192,To.padLength=128,To.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=Oo(r[n-4],r[n-3]),o=Do(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=Mo(r[n-30],r[n-29]),l=Ro(r[n-30],r[n-29]),c=r[n-32],d=r[n-31];r[n]=yo(i,o,s,a,u,l,c,d),r[n+1]=go(i,o,s,a,u,l,c,d)}},To.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];Si(this.k.length===r.length);for(var v=0;v<r.length;v+=2){var A=g,w=b,T=_o(d,h),E=No(d,h),S=So(d,0,p,0,m),I=Io(0,h,0,f,0,y),x=this.k[v],C=this.k[v+1],k=r[v],P=r[v+1],_=bo(A,w,T,E,S,I,x,C,k,P),N=vo(A,w,T,E,S,I,x,C,k,P);A=ko(n,i),w=Po(n,i),T=xo(n,0,o,0,a),E=Co(0,i,0,s,0,u);var M=fo(A,w,T,E),R=mo(A,w,T,E);g=m,b=y,m=p,y=f,p=d,f=h,d=fo(l,c,_,N),h=mo(c,c,_,N),l=a,c=u,a=o,u=s,o=n,s=i,n=fo(_,N,M,R),i=mo(_,N,M,R)}po(this.h,0,n,i),po(this.h,2,o,s),po(this.h,4,a,u),po(this.h,6,l,c),po(this.h,8,d,h),po(this.h,10,p,f),po(this.h,12,m,y),po(this.h,14,g,b)},To.prototype._digest=function(e){return"hex"===e?_i.toHex32(this.h,"big"):_i.split32(this.h,"big")},_i.inherits(Bo,Eo);var Fo=Bo;Bo.blockSize=1024,Bo.outSize=384,Bo.hmacStrength=192,Bo.padLength=128,Bo.prototype._digest=function(e){return"hex"===e?_i.toHex32(this.h.slice(0,12),"big"):_i.split32(this.h.slice(0,12),"big")};var Lo={sha1:Ki,sha224:ao,sha256:oo,sha384:Fo,sha512:Eo},Uo=_i.rotl32,Go=_i.sum32,Ho=_i.sum32_3,qo=_i.sum32_4,jo=Ri.BlockHash;function Vo(){if(!(this instanceof Vo))return new Vo;jo.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}_i.inherits(Vo,jo);var zo=Vo;function Ko(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 Wo(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Qo(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Vo.blockSize=512,Vo.outSize=160,Vo.hmacStrength=192,Vo.padLength=64,Vo.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=Go(Uo(qo(r,Ko(h,n,i,o),e[Jo[h]+t],Wo(h)),Xo[h]),s);r=s,s=o,o=Uo(i,10),i=n,n=p,p=Go(Uo(qo(a,Ko(79-h,u,l,c),e[Yo[h]+t],Qo(h)),Zo[h]),d),a=d,d=c,c=Uo(l,10),l=u,u=p}p=Ho(this.h[1],i,c),this.h[1]=Ho(this.h[2],o,d),this.h[2]=Ho(this.h[3],s,a),this.h[3]=Ho(this.h[4],r,u),this.h[4]=Ho(this.h[0],n,l),this.h[0]=p},Vo.prototype._digest=function(e){return"hex"===e?_i.toHex32(this.h,"little"):_i.split32(this.h,"little")};var Jo=[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],Yo=[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],Xo=[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],Zo=[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],$o={ripemd160:zo};function es(e,t,r){if(!(this instanceof es))return new es(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(_i.toArray(t,r))}var ts=es;es.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Si(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)},es.prototype.update=function(e,t){return this.inner.update(e,t),this},es.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)};var rs,ns=Rt(function(e,t){var r=t;r.utils=_i,r.common=Ri,r.sha=Lo,r.ripemd=$o,r.hmac=ts,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}),is=ns;!function(e){e.sha256="sha256",e.sha512="sha512"}(rs||(rs={}));const os=new zt("sha2/5.8.0");function ss(e){return"0x"+is.sha256().update(Zt(e)).digest("hex")}function as(e,t,r){return rs[e]||os.throwError("unsupported algorithm "+e,zt.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+is.hmac(is[e],Zt(t)).update(Zt(r)).digest("hex")}var us=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 ls(e,t){return us(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:Zt(new Uint8Array(i))}})}var cs=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 ds=new zt("web/5.8.0");function hs(e){return new Promise(t=>{setTimeout(t,e)})}function ps(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Jt(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return Tn(e)}catch(e){}return nr(e)}return e}function fs(e,t,r){let n=null;if(null!=t){n=wn(t);const r="string"==typeof e?{url:e}:Hr(e);r.headers?0!==Object.keys(r.headers).filter(e=>"content-type"===e.toLowerCase()).length||(r.headers=Hr(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;ds.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;ds.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||ds.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&&ds.throwError("basic authentication requires a secure https url",zt.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+on(wn(e.user+":"+e.password))}),null!=e.skipFetchSetup&&(l.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(l.fetchOptions=Hr(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]?nn(p[3]):(f=p[3],wn(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){ds.throwError("processing response error",zt.errors.SERVER_ERROR,{body:ps(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(ds.makeError("timeout",zt.errors.TIMEOUT,{requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,timeout:d,url:u})))},d))}),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return cs(this,void 0,void 0,function*(){for(let e=0;e<n;e++){let t=null;try{if(t=yield ls(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 hs(r);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),ds.throwError("missing response",zt.errors.SERVER_ERROR,{requestBody:ps(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(),ds.throwError("bad response",zt.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:ps(a,t.headers?t.headers["content-type"]:null),requestBody:ps(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 hs(t);continue}}y.cancel(),ds.throwError("processing response error",zt.errors.SERVER_ERROR,{body:ps(a,t.headers?t.headers["content-type"]:null),error:r,requestBody:ps(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return ds.throwError("failed response",zt.errors.SERVER_ERROR,{requestBody:ps(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(Tn(e))}catch(t){ds.throwError("invalid JSON",zt.errors.SERVER_ERROR,{body:e,error:t})}return r&&(n=r(n,t)),n})}function ms(e,t){return t||(t={}),null==(t=Hr(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 ys="qpzry9x8gf2tvdw0s3jn54khce6mua7l",gs={},bs=0;bs<ys.length;bs++){var vs=ys.charAt(bs);if(void 0!==gs[vs])throw new TypeError(vs+" is ambiguous");gs[vs]=bs}function As(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 ws="providers/5.8.0";function Ts(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 Es=Ss;function Ss(e,t){if(!e)throw new Error(t||"Assertion failed")}Ss.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var Is=Ts(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}}),xs=Ts(function(e,t){var r=t;r.assert=Es,r.toArray=Is.toArray,r.zero2=Is.zero2,r.toHex=Is.toHex,r.encode=Is.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 Dt(e,"hex","le")}}),Cs=xs.getNAF,ks=xs.getJSF,Ps=xs.assert;function _s(e,t){this.type=e,this.p=new Dt(t.p,16),this.red=t.prime?Dt.red(t.prime):Dt.mont(this.p),this.zero=new Dt(0).toRed(this.red),this.one=new Dt(1).toRed(this.red),this.two=new Dt(2).toRed(this.red),this.n=t.n&&new Dt(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 Ns=_s;function Ms(e,t){this.curve=e,this.type=t,this.precomputed=null}_s.prototype.point=function(){throw new Error("Not implemented")},_s.prototype.validate=function(){throw new Error("Not implemented")},_s.prototype._fixedNafMul=function(e,t){Ps(e.precomputed);var r=e._getDoubles(),n=Cs(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()},_s.prototype._wnafMul=function(e,t){for(var r=4,n=e._getNAFPoints(r),i=n.points,o=Cs(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];Ps(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},_s.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=ks(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]=Cs(r[p],u[p],this._bitLength),c[f]=Cs(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()},_s.BasePoint=Ms,Ms.prototype.eq=function(){throw new Error("Not implemented")},Ms.prototype.validate=function(){return this.curve.validate(this)},_s.prototype.decodePoint=function(e,t){e=xs.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]?Ps(e[e.length-1]%2==0):7===e[0]&&Ps(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")},Ms.prototype.encodeCompressed=function(e){return this.encode(e,!0)},Ms.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))},Ms.prototype.encode=function(e,t){return xs.encode(this._encode(t),e)},Ms.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},Ms.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)},Ms.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}},Ms.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}},Ms.prototype._getBeta=function(){return null},Ms.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t};var Rs=Ts(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}}}),Os=xs.assert;function Ds(e){Ns.call(this,"short",e),this.a=new Dt(e.a,16).toRed(this.red),this.b=new Dt(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)}Rs(Ds,Ns);var Bs=Ds;function Fs(e,t,r,n){Ns.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new Dt(t,16),this.y=new Dt(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 Ls(e,t,r,n){Ns.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Dt(0)):(this.x=new Dt(t,16),this.y=new Dt(r,16),this.z=new Dt(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}Ds.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new Dt(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 Dt(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]:Os(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 Dt(e.a,16),b:new Dt(e.b,16)}}):this._getEndoBasis(r)}}},Ds.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:Dt.mont(e),r=new Dt(2).toRed(t).redInvm(),n=r.redNeg(),i=new Dt(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},Ds.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 Dt(1),f=new Dt(0),m=new Dt(0),y=new Dt(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}]},Ds.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()}},Ds.prototype.pointFromX=function(e,t){(e=new Dt(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)},Ds.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)},Ds.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},Rs(Fs,Ns.BasePoint),Ds.prototype.point=function(e,t,r){return new Fs(this,e,t,r)},Ds.prototype.pointFromJSON=function(e,t){return Fs.fromJSON(this,e,t)},Fs.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}},Fs.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]},Fs.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},Fs.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)+">"},Fs.prototype.isInfinity=function(){return this.inf},Fs.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)},Fs.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)},Fs.prototype.getX=function(){return this.x.fromRed()},Fs.prototype.getY=function(){return this.y.fromRed()},Fs.prototype.mul=function(e){return e=new Dt(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)},Fs.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)},Fs.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)},Fs.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))},Fs.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},Fs.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Rs(Ls,Ns.BasePoint),Ds.prototype.jpoint=function(e,t,r){return new Ls(this,e,t,r)},Ls.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)},Ls.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Ls.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)},Ls.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)},Ls.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)},Ls.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Ls.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)},Ls.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)},Ls.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)},Ls.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)},Ls.prototype.mul=function(e,t){return e=new Dt(e,t),this.curve._wnafMul(this,e)},Ls.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)},Ls.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}},Ls.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)+">"},Ls.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Us=Ts(function(e,t){var r=t;r.base=Ns,r.short=Bs,r.mont=null,r.edwards=null}),Gs=Ts(function(e,t){var r,n=t,i=xs.assert;function o(e){this.curve="short"===e.type?new Us.short(e):"edwards"===e.type?new Us.edwards(e):new Us.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:is.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:is.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:is.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:is.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:is.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:is.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:is.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:is.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function Hs(e){if(!(this instanceof Hs))return new Hs(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=Is.toArray(e.entropy,e.entropyEnc||"hex"),r=Is.toArray(e.nonce,e.nonceEnc||"hex"),n=Is.toArray(e.pers,e.persEnc||"hex");Es(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var qs=Hs;Hs.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},Hs.prototype._hmac=function(){return new is.hmac(this.hash,this.K)},Hs.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())},Hs.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=Is.toArray(e,t),r=Is.toArray(r,n),Es(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},Hs.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=Is.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++,Is.encode(o,t)};var js=xs.assert;function Vs(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 zs=Vs;Vs.fromPublic=function(e,t,r){return t instanceof Vs?t:new Vs(e,{pub:t,pubEnc:r})},Vs.fromPrivate=function(e,t,r){return t instanceof Vs?t:new Vs(e,{priv:t,privEnc:r})},Vs.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"}},Vs.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},Vs.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Vs.prototype._importPrivate=function(e,t){this.priv=new Dt(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Vs.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?js(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||js(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)},Vs.prototype.derive=function(e){return e.validate()||js(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Vs.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},Vs.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},Vs.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Ks=xs.assert;function Ws(e,t){if(e instanceof Ws)return e;this._importDER(e,t)||(Ks(e.r&&e.s,"Signature without r or s"),this.r=new Dt(e.r,16),this.s=new Dt(e.s,16),this.recoveryParam=void 0===e.recoveryParam?null:e.recoveryParam)}var Qs=Ws;function Js(){this.place=0}function Ys(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 Xs(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 Zs(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)}}Ws.prototype._importDER=function(e,t){e=xs.toArray(e,t);var r=new Js;if(48!==e[r.place++])return!1;var n=Ys(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=Ys(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=Ys(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 Dt(o),this.s=new Dt(a),this.recoveryParam=null,!0},Ws.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=Xs(t),r=Xs(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Zs(n,t.length),(n=n.concat(t)).push(2),Zs(n,r.length);var i=n.concat(r),o=[48];return Zs(o,i.length),o=o.concat(i),xs.encode(o,e)};var $s=function(){throw new Error("unsupported")},ea=xs.assert;function ta(e){if(!(this instanceof ta))return new ta(e);"string"==typeof e&&(ea(Object.prototype.hasOwnProperty.call(Gs,e),"Unknown curve "+e),e=Gs[e]),e instanceof Gs.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 ra=ta;ta.prototype.keyPair=function(e){return new zs(this,e)},ta.prototype.keyFromPrivate=function(e,t){return zs.fromPrivate(this,e,t)},ta.prototype.keyFromPublic=function(e,t){return zs.fromPublic(this,e,t)},ta.prototype.genKeyPair=function(e){e||(e={});for(var t=new qs({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||$s(),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new Dt(2));;){var i=new Dt(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},ta.prototype._truncateToN=function(e,t,r){var n;if(Dt.isBN(e)||"number"==typeof e)n=(e=new Dt(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new Dt(e,16);else{var i=e.toString();n=i.length+1>>>1,e=new Dt(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},ta.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!Dt.isBN(e)){ea("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),ea(e.length>>>0===e.length);for(var i=0;i<e.length;i++)ea((255&e[i])===e[i])}t=this.keyFromPrivate(t,r),e=this._truncateToN(e,!1,n.msgBitLength),ea(!e.isNeg(),"Can not sign a negative message");var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),a=e.toArray("be",o);ea(new Dt(a).eq(e),"Can not sign message");for(var u=new qs({hash:this.hash,entropy:s,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),l=this.n.sub(new Dt(1)),c=0;;c++){var d=n.k?n.k(c):new Dt(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 Qs({r:f,s:m,recoveryParam:y})}}}}}},ta.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 Qs(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)},ta.prototype.recoverPubKey=function(e,t,r,n){ea((3&r)===r,"The recovery param is more than two bits"),t=new Qs(t,n);var i=this.n,o=new Dt(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)},ta.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Qs(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 na=Ts(function(e,t){var r=t;r.version="6.6.1",r.utils=xs,r.rand=function(){throw new Error("unsupported")},r.curve=Us,r.curves=Gs,r.ec=ra,r.eddsa=null}).ec;const ia=new zt("signing-key/5.8.0");let oa=null;function sa(){return oa||(oa=new na("secp256k1")),oa}class aa{constructor(e){Fr(this,"curve","secp256k1"),Fr(this,"privateKey",nr(e)),32!==ir(this.privateKey)&&ia.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=sa().keyFromPrivate(Zt(this.privateKey));Fr(this,"publicKey","0x"+t.getPublic(!1,"hex")),Fr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Fr(this,"_isSigningKey",!0)}_addPoint(e){const t=sa().keyFromPublic(Zt(this.publicKey)),r=sa().keyFromPublic(Zt(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=sa().keyFromPrivate(Zt(this.privateKey)),r=Zt(e);32!==r.length&&ia.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return lr({recoveryParam:n.recoveryParam,r:ur("0x"+n.r.toString(16),32),s:ur("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=sa().keyFromPrivate(Zt(this.privateKey)),r=sa().keyFromPublic(Zt(ua(e)));return ur("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function ua(e,t){const r=Zt(e);if(32===r.length){const e=new aa(r);return t?"0x"+sa().keyFromPrivate(r).getPublic(!0,"hex"):e.publicKey}return 33===r.length?t?nr(r):"0x"+sa().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?t?"0x"+sa().keyFromPublic(r).getPublic(!0,"hex"):nr(r):ia.throwArgumentError("invalid public or private key","key","[REDACTED]")}const la=new zt("transactions/5.8.0");var ca;function da(e){return"0x"===e?null:ai(e)}function ha(e){return"0x"===e?ln:gr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(ca||(ca={}));const pa=[{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"}],fa={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function ma(e){return ai(or(fn(or(ua(e),1)),12))}function ya(e,t){return ma(function(e,t){const r=lr(t),n={r:Zt(r.r),s:Zt(r.s)};return"0x"+sa().recoverPubKey(Zt(e),n,r.recoveryParam).encode("hex",!1)}(Zt(e),t))}function ga(e,t){const r=er(gr.from(e).toHexString());return r.length>32&&la.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function ba(e,t){return{address:ai(e),storageKeys:(t||[]).map((t,r)=>(32!==ir(t)&&la.throwArgumentError("invalid access list storageKey",`accessList[${e}:${r}]`,t),t.toLowerCase()))}}function va(e){if(Array.isArray(e))return e.map((e,t)=>Array.isArray(e)?(e.length>2&&la.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),ba(e[0],e[1])):ba(e.address,e.storageKeys));const t=Object.keys(e).map(t=>{const r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return ba(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}function Aa(e){return va(e).map(e=>[e.address,e.storageKeys])}function wa(e,t){if(null!=e.gasPrice){const t=gr.from(e.gasPrice),r=gr.from(e.maxFeePerGas||0);t.eq(r)||la.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:r})}const r=[ga(e.chainId||0,"chainId"),ga(e.nonce||0,"nonce"),ga(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),ga(e.maxFeePerGas||0,"maxFeePerGas"),ga(e.gasLimit||0,"gasLimit"),null!=e.to?ai(e.to):"0x",ga(e.value||0,"value"),e.data||"0x",Aa(e.accessList||[])];if(t){const e=lr(t);r.push(ga(e.recoveryParam,"recoveryParam")),r.push(er(e.r)),r.push(er(e.s))}return sr(["0x02",$n(r)])}function Ta(e,t){const r=[ga(e.chainId||0,"chainId"),ga(e.nonce||0,"nonce"),ga(e.gasPrice||0,"gasPrice"),ga(e.gasLimit||0,"gasLimit"),null!=e.to?ai(e.to):"0x",ga(e.value||0,"value"),e.data||"0x",Aa(e.accessList||[])];if(t){const e=lr(t);r.push(ga(e.recoveryParam,"recoveryParam")),r.push(er(e.r)),r.push(er(e.s))}return sr(["0x01",$n(r)])}function Ea(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&la.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){Gr(e,fa);const r=[];pa.forEach(function(t){let n=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),n=Zt(nr(n,i)),t.length&&n.length!==t.length&&n.length>0&&la.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=er(n),n.length>t.maxLength&&la.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n)),r.push(nr(n))});let n=0;if(null!=e.chainId?(n=e.chainId,"number"!=typeof n&&la.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Jt(t)&&t.v>28&&(n=Math.floor((t.v-35)/2)),0!==n&&(r.push(nr(n)),r.push("0x"),r.push("0x")),!t)return $n(r);const i=lr(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&&la.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&la.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),r.push(nr(o)),r.push(er(Zt(i.r))),r.push(er(Zt(i.s))),$n(r)}(e,t);switch(e.type){case 1:return Ta(e,t);case 2:return wa(e,t)}return la.throwError(`unsupported transaction type: ${e.type}`,zt.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function Sa(e,t,r){try{const r=ha(t[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");e.v=r}catch(e){la.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=ur(t[1],32),e.s=ur(t[2],32);try{const t=fn(r(e));e.from=ya(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}const Ia=new zt(ws);class xa{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:xa.allowNull(this.accessList.bind(this),null),blockHash:xa.allowNull(o,null),blockNumber:xa.allowNull(a,null),transactionIndex:xa.allowNull(a,null),confirmations:xa.allowNull(a,null),from:t,gasPrice:xa.allowNull(r),maxPriorityFeePerGas:xa.allowNull(r),maxFeePerGas:xa.allowNull(r),gasLimit:r,to:xa.allowNull(t,null),value:r,nonce:a,data:i,r:xa.allowNull(this.uint256),s:xa.allowNull(this.uint256),v:xa.allowNull(a),creates:xa.allowNull(t,null),raw:xa.allowNull(i)},e.transactionRequest={from:xa.allowNull(t),nonce:xa.allowNull(a),gasLimit:xa.allowNull(r),gasPrice:xa.allowNull(r),maxPriorityFeePerGas:xa.allowNull(r),maxFeePerGas:xa.allowNull(r),to:xa.allowNull(t),value:xa.allowNull(r),data:xa.allowNull(e=>this.data(e,!0)),type:xa.allowNull(a),accessList:xa.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:t,topics:xa.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:xa.allowNull(this.address,null),from:xa.allowNull(this.address,null),contractAddress:xa.allowNull(t,null),transactionIndex:a,root:xa.allowNull(s),gasUsed:r,logsBloom:xa.allowNull(i),blockHash:o,transactionHash:o,logs:xa.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:xa.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:xa.allowNull(r),status:xa.allowNull(a),type:u},e.block={hash:xa.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:xa.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:xa.allowNull(t),extraData:i,transactions:xa.allowNull(xa.arrayOf(o)),baseFeePerGas:xa.allowNull(r)},e.blockWithTransactions=Hr(e.block),e.blockWithTransactions.transactions=xa.allowNull(xa.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:xa.allowNull(n,void 0),toBlock:xa.allowNull(n,void 0),blockHash:xa.allowNull(o,void 0),address:xa.allowNull(t,void 0),topics:xa.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:xa.allowNull(a),blockHash:xa.allowNull(o),transactionIndex:a,removed:xa.allowNull(this.boolean.bind(this)),address:t,data:xa.allowFalsish(i,"0x"),topics:xa.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(e){return va(e||[])}number(e){return"0x"===e?0:gr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:gr.from(e).toNumber()}bigNumber(e){return gr.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),tr(e))?e.toLowerCase():Ia.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 ai(e)}callAddress(e){if(!tr(e,32))return null;const t=ai(or(e,12));return"0x0000000000000000000000000000000000000000"===t?null:t}contractAddress(e){return ui(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||tr(e))return ar(e);throw new Error("invalid blockTag")}hash(e,t){const r=this.hex(e,t);return 32!==ir(r)?Ia.throwArgumentError("invalid hash","value",e):r}difficulty(e){if(null==e)return null;const t=gr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!tr(e))throw new Error("invalid uint256");return ur(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=xa.check(t,e);return n._difficulty=null==r?null:gr.from(r),n}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return xa.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&gr.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=xa.check(this.formats.transaction,e);if(null!=e.chainId){let r=e.chainId;tr(r)&&(r=gr.from(r).toNumber()),t.chainId=r}else{let r=e.networkId;null==r&&null==t.v&&(r=e.chainId),tr(r)&&(r=gr.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=Zt(e);if(t[0]>127)return function(e){const t=ri(e);9!==t.length&&6!==t.length&&la.throwArgumentError("invalid raw transaction","rawTransaction",e);const r={nonce:ha(t[0]).toNumber(),gasPrice:ha(t[1]),gasLimit:ha(t[2]),to:da(t[3]),value:ha(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=gr.from(t[6]).toNumber()}catch(e){return r}if(r.r=ur(t[7],32),r.s=ur(t[8],32),gr.from(r.r).isZero()&&gr.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(nr(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=fn($n(i));try{r.from=ya(o,{r:nr(r.r),s:nr(r.s),recoveryParam:n})}catch(e){}r.hash=fn(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){const t=ri(e.slice(1));8!==t.length&&11!==t.length&&la.throwArgumentError("invalid component count for transaction type: 1","payload",nr(e));const r={type:1,chainId:ha(t[0]).toNumber(),nonce:ha(t[1]).toNumber(),gasPrice:ha(t[2]),gasLimit:ha(t[3]),to:da(t[4]),value:ha(t[5]),data:t[6],accessList:va(t[7])};return 8===t.length||(r.hash=fn(e),Sa(r,t.slice(8),Ta)),r}(t);case 2:return function(e){const t=ri(e.slice(1));9!==t.length&&12!==t.length&&la.throwArgumentError("invalid component count for transaction type: 2","payload",nr(e));const r=ha(t[2]),n=ha(t[3]),i={type:2,chainId:ha(t[0]).toNumber(),nonce:ha(t[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:ha(t[4]),to:da(t[5]),value:ha(t[6]),data:t[7],accessList:va(t[8])};return 9===t.length||(i.hash=fn(e),Sa(i,t.slice(9),wa)),i}(t)}return la.throwError(`unsupported transaction type: ${t[0]}`,zt.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}(e)}receiptLog(e){return xa.check(this.formats.receiptLog,e)}receipt(e){const t=xa.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=gr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Ia.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Ia.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Ia.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 xa.check(this.formats.filter,e)}filterLog(e){return xa.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 Ca=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 ka=new zt(ws);function Pa(e){return null==e?"null":(32!==ir(e)&&ka.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function _a(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[Pa(e)]=!0});const r=Object.keys(t);return r.sort(),r.join("|")}return Pa(e)}).join("&")}function Na(e){if("string"==typeof e){if(32===ir(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+_a(e);if(Qr.isForkEvent(e))throw ka.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+_a(e.topics||[])}throw new Error("invalid event - "+e)}function Ma(){return(new Date).getTime()}function Ra(e){return new Promise(t=>{setTimeout(t,e)})}const Oa=["block","network","pending","poll"];class Da{constructor(e,t,r){Fr(this,"tag",e),Fr(this,"listener",t),Fr(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||Oa.indexOf(this.tag)>=0}}const Ba={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 Fa(e){return ur(gr.from(e).toHexString(),32)}function La(e){return an.encode($t([e,or(ss(ss(e)),0,4)]))}const Ua=new RegExp("^(ipfs)://(.*)$","i"),Ga=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Ua,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Ha(e,t){try{return Tn(qa(e,t))}catch(e){}return null}function qa(e,t){if("0x"===e)return null;const r=gr.from(or(e,t,t+32)).toNumber(),n=gr.from(or(e,r,r+32)).toNumber();return or(e,r+32,r+32+n)}function ja(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):ka.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Va(e){const t=Zt(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 za(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Ka(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=Zt(e[n]);t[n]=Va(r),t.push(Va(i.length)),t.push(za(i)),r+=32+32*Math.ceil(i.length/32)}return sr(t)}class Wa{constructor(e,t,r,n){Fr(this,"provider",e),Fr(this,"name",r),Fr(this,"address",e.formatter.address(t)),Fr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(e=>gr.from(e).eq(1)).catch(e=>{if(e.code===zt.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e})),this._supportsEip2544}_fetch(e,t){return Ca(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:sr([e,Qn(this.name),t||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=sr(["0x9061b923",Ka([(i=this.name,nr($t(Wn(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 Zt(e).length%32==4&&ka.throwError("resolver threw error",zt.errors.CALL_EXCEPTION,{transaction:r,data:e}),n&&(e=qa(e,0)),e}catch(e){if(e.code===zt.errors.CALL_EXCEPTION)return null;throw e}})}_fetchBytes(e,t){return Ca(this,void 0,void 0,function*(){const r=yield this._fetch(e,t);return null!=r?qa(r,0):null})}_getAddress(e,t){const r=Ba[String(e)];if(null==r&&ka.throwError(`unsupported coin type: ${e}`,zt.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===r.ilk)return this.provider.formatter.address(t);const n=Zt(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 La($t([[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 La($t([[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=As(t)^n>>5}for(t=As(t),r=0;r<e.length;++r){var i=e.charCodeAt(r);t=As(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=As(n)^s,i+=ys.charAt(s)}for(o=0;o<6;++o)n=As(n);for(n^=1,o=0;o<6;++o)i+=ys.charAt(n>>5*(5-o)&31);return i}(r.prefix,e)}}return null}getAddress(e){return Ca(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===zt.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",Fa(e));if(null==t||"0x"===t)return null;const r=this._getAddress(e,t);return null==r&&ka.throwError("invalid or unsupported coin data",zt.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),r})}getAvatar(){return Ca(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<Ga.length;r++){const n=t.match(Ga[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:ja(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=ur(gr.from(s[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:sr(["0x6352211e",u])}));if(o!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=gr.from(yield this.provider.call({to:a,data:sr(["0x00fdd58e",ur(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:sr([r,u])};let c=Ha(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=ja(c)),e.push({type:"metadata-url",content:c});const d=yield fs(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(Ua))return null;e.push({type:"url-ipfs",content:h}),h=ja(h)}return e.push({type:"url",content:h}),{linkage:e,url:h}}}}}catch(e){}return null})}getContentHash(){return Ca(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://"+an.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://"+an.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://"+on("0x"+i[1]).replace(/[=+\/]/g,t=>e[t])}return ka.throwError("invalid or unsupported content hash data",zt.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})})}getText(e){return Ca(this,void 0,void 0,function*(){let t=wn(e);t=$t([Fa(64),Fa(t.length),t]),t.length%32!=0&&(t=$t([t,ur("0x",32-e.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",nr(t));return null==r||"0x"===r?null:Tn(r)})}}let Qa=null,Ja=1;class Ya extends Jr{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Fr(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=Lr(new.target,"getNetwork")(e);t?(Fr(this,"_network",t),this.emit("network",t,null)):ka.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Ca(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||ka.throwError("no network detected",zt.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Fr(this,"_network",e),this.emit("network",e,null))}return this._network})}get ready(){return ms(()=>this._ready().then(e=>e,e=>{if(e.code!==zt.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))}static getFormatter(){return null==Qa&&(Qa=new xa),Qa}static getNetwork(e){return function(e){if(null==e)return null;if("number"==typeof e){for(const t in rn){const r=rn[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=rn[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=rn[e.name];if(!t)return"number"!=typeof e.chainId&&Yr.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Yr.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 Ca(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 fs({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 ka.throwError(`response not found during CCIP fetch: ${l}`,zt.errors.SERVER_ERROR,{url:t,errorMessage:l});o.push(l)}return ka.throwError(`error encountered during CCIP fetch: ${o.map(e=>JSON.stringify(e)).join(", ")}`,zt.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(e){return Ca(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(Ma()-r.respTime<=e)return r.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Ma(),r=Ur({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=Ma();return(e=gr.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 Ca(this,void 0,void 0,function*(){const e=Ja++,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)ka.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",ka.makeError("network block skew detected",zt.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 Ca(this,void 0,void 0,function*(){return ka.throwError("provider does not support network detection",zt.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Ca(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 Ra(0),this._network;const r=ka.makeError("underlying network changed",zt.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=Ma();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=Ma(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,r){return Ca(this,void 0,void 0,function*(){return this._waitForTransaction(e,null==t?1:t,r||0,null)})}_waitForTransaction(e,t,r,n){return Ca(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=>Ca(this,void 0,void 0,function*(){a||(yield Ra(1e3),this.getTransactionCount(n.from).then(c=>Ca(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(ka.makeError("transaction was replaced",zt.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(ka.makeError("timeout exceeded",zt.errors.TIMEOUT,{timeout:r}))},r);e.unref&&e.unref(),s.push(()=>{clearTimeout(e)})}})})}getBlockNumber(){return Ca(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return gr.from(e)}catch(t){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}})}getBalance(e,t){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Ur({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getBalance",r);try{return gr.from(n)}catch(e){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:e})}})}getTransactionCount(e,t){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Ur({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getTransactionCount",r);try{return gr.from(n).toNumber()}catch(e){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:e})}})}getCode(e,t){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Ur({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),n=yield this.perform("getCode",r);try{return nr(n)}catch(e){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:e})}})}getStorageAt(e,t,r){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield Ur({address:this._getAddress(e),blockTag:this._getBlockTag(r),position:Promise.resolve(t).then(e=>ar(e))}),i=yield this.perform("getStorageAt",n);try{return nr(i)}catch(e){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:e})}})}_wrapTransaction(e,t,r){if(null!=t&&32!==ir(t))throw new Error("invalid response - sendTransaction");const n=e;return null!=t&&e.hash!==t&&ka.throwError("Transaction hash mismatch from Provider.sendTransaction.",zt.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),n.wait=(t,n)=>Ca(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&&ka.throwError("transaction failed",zt.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:o}),o)}),n}sendTransaction(e){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then(e=>nr(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 Ca(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?gr.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?nr(e):null))}),this.formatter.transactionRequest(yield Ur(r))})}_getFilter(e){return Ca(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 Ur(t))})}_call(e,t,r){return Ca(this,void 0,void 0,function*(){r>=10&&ka.throwError("CCIP read exceeded maximum redirections",zt.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)&&ir(i)%32==4)try{const o=or(i,4),s=or(o,0,32);gr.from(s).eq(n)||ka.throwError("CCIP Read sender did not match",zt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const a=[],u=gr.from(or(o,32,64)).toNumber(),l=gr.from(or(o,u,u+32)).toNumber(),c=or(o,u+32);for(let t=0;t<l;t++){const r=Ha(c,32*t);null==r&&ka.throwError("CCIP Read contained corrupt URL string",zt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),a.push(r)}const d=qa(o,64);gr.from(or(o,100,128)).isZero()||ka.throwError("CCIP Read callback selector included junk",zt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const h=or(o,96,100),p=qa(o,128),f=yield this.ccipReadFetch(e,d,a);null==f&&ka.throwError("CCIP Read disabled or provided no URLs",zt.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:n,data:sr([h,Ka([f,p])])};return this._call(m,t,r+1)}catch(e){if(e.code===zt.errors.SERVER_ERROR)throw e}try{return nr(i)}catch(r){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:r})}})}call(e,t){return Ca(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield Ur({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 Ca(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Ur({transaction:this._getTransactionRequest(e)}),r=yield this.perform("estimateGas",t);try{return gr.from(r)}catch(e){return ka.throwError("bad result from backend",zt.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:r,error:e})}})}_getAddress(e){return Ca(this,void 0,void 0,function*(){"string"!=typeof(e=yield e)&&ka.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&ka.throwError("ENS name not configured",zt.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t})}_getBlock(e,t){return Ca(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;let r=-128;const n={includeTransactions:!!t};if(tr(e,32))n.blockHash=e;else try{n.blockTag=yield this._getBlockTag(e),tr(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(t){ka.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return ms(()=>Ca(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 Ca(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return ms(()=>Ca(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 Ca(this,void 0,void 0,function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return ms(()=>Ca(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 Ca(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield Ur({filter:this._getFilter(e)}),r=yield this.perform("getLogs",t);return r.forEach(e=>{null==e.removed&&(e.removed=!1)}),xa.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return Ca(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(e){return Ca(this,void 0,void 0,function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&ka.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 Ca(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 Wa(this,r,e);return t===e||(yield n.supportsWildcard())?n:null}t=t.split(".").slice(1).join(".")}})}_getResolver(e,t){return Ca(this,void 0,void 0,function*(){null==t&&(t="ENS");const r=yield this.getNetwork();r.ensAddress||ka.throwError("network does not support ENS",zt.errors.UNSUPPORTED_OPERATION,{operation:t,network:r.name});try{const t=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Qn(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null})}resolveName(e){return Ca(this,void 0,void 0,function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(tr(e))throw t}"string"!=typeof e&&ka.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null})}lookupAddress(e){return Ca(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=Ha(yield this.call({to:r,data:"0x691f3431"+Qn(t).substring(2)}),0);return(yield this.resolveName(n))!=e?null:n})}getAvatar(e){return Ca(this,void 0,void 0,function*(){let t=null;if(tr(e)){const r=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;t=new Wa(this,n,r);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==zt.errors.CALL_EXCEPTION)throw e}try{const e=Ha(yield this.call({to:n,data:"0x691f3431"+Qn(r).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==zt.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 ka.throwError(e+" not implemented",zt.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 Da(Na(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=Na(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=Na(e);return this._events.filter(e=>e.tag===t).length}listeners(e){if(null==e)return this._events.map(e=>e.listener);let t=Na(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=Na(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=Na(e);this._events=this._events.filter(e=>e.tag!==r||(t.push(e),!1))}return t.forEach(e=>{this._stopEvent(e)}),this}}var Xa=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 Za=new zt(ws),$a=["call","estimateGas"];function eu(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const r=tr(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=eu(e[r],t);if(n)return n}return null}if("string"==typeof e)try{return eu(JSON.parse(e),t)}catch(e){}return null}function tu(e,t,r){const n=r.transaction||r.signedTransaction;if("call"===e){const e=eu(t,!0);if(e)return e.data;Za.throwError("missing revert data in call exception; Transaction reverted without a reason string",zt.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:t})}if("estimateGas"===e){let r=eu(t.body,!1);null==r&&(r=eu(t,!1)),r&&Za.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",zt.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:e,transaction:n,error:t})}let i=t.message;throw t.code===zt.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)&&Za.throwError("insufficient funds for intrinsic transaction cost",zt.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),i.match(/nonce (is )?too low/i)&&Za.throwError("nonce has already been used",zt.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Za.throwError("replacement fee too low",zt.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),i.match(/only replay-protected/i)&&Za.throwError("legacy pre-eip-155 transactions not supported",zt.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:n}),$a.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Za.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",zt.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}function ru(e){return new Promise(function(t){setTimeout(t,e)})}function nu(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 iu(e){return e?e.toLowerCase():e}const ou={};class su extends a.Signer{constructor(e,t,r){if(super(),e!==ou)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Fr(this,"provider",t),null==r&&(r=0),"string"==typeof r?(Fr(this,"_address",this.provider.formatter.address(r)),Fr(this,"_index",null)):"number"==typeof r?(Fr(this,"_index",r),Fr(this,"_address",null)):Za.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(e){return Za.throwError("cannot alter JSON-RPC Signer connection",zt.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new au(ou,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&&Za.throwError("unknown account #"+this._index,zt.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index])))}sendUncheckedTransaction(e){e=Hr(e);const t=this.getAddress().then(e=>(e&&(e=e.toLowerCase()),e));if(null==e.gasLimit){const r=Hr(e);r.from=t,e.gasLimit=this.provider.estimateGas(r)}return null!=e.to&&(e.to=Promise.resolve(e.to).then(e=>Xa(this,void 0,void 0,function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&Za.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))),Ur({tx:Ur(e),sender:t}).then(({tx:t,sender:r})=>{null!=t.from?t.from.toLowerCase()!==r&&Za.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)&&Za.throwError("user rejected transaction",zt.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),tu("sendTransaction",e,n)))})}signTransaction(e){return Za.throwError("signing transactions is unsupported",zt.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return Xa(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 ms(()=>Xa(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 Xa(this,void 0,void 0,function*(){const t="string"==typeof e?wn(e):e,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[nr(t),r.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Za.throwError("user rejected signing",zt.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:e}),t}})}_legacySignMessage(e){return Xa(this,void 0,void 0,function*(){const t="string"==typeof e?wn(e):e,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),nr(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&Za.throwError("user rejected signing",zt.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:e}),t}})}_signTypedData(e,t,r){return Xa(this,void 0,void 0,function*(){const n=yield Ei.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(Ei.getPayload(n.domain,t,n.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&Za.throwError("user rejected signing",zt.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:t,value:n.value}}),e}})}unlock(e){return Xa(this,void 0,void 0,function*(){const t=this.provider,r=yield this.getAddress();return t.send("personal_unlockAccount",[r.toLowerCase(),e,null])})}}class au extends su{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 uu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class lu extends Ya{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=Lr(this.constructor,"defaultUrl")()),Fr(this,"connection",Object.freeze("string"==typeof e?{url:e}:Hr(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 Xa(this,void 0,void 0,function*(){yield ru(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=Lr(this.constructor,"getNetwork");try{return t(gr.from(e).toNumber())}catch(t){return Za.throwError("could not detect network",zt.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return Za.throwError("could not detect network",zt.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(e){return new su(ou,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:zr(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(n&&this._cache[e])return this._cache[e];const i=fs(this.connection,JSON.stringify(r),nu).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",[iu(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[iu(t.address),t.blockTag]];case"getCode":return["eth_getCode",[iu(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[iu(t.address),ur(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",[Lr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Lr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=iu(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return Xa(this,void 0,void 0,function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&gr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((t=Hr(t)).transaction=Hr(e),delete t.transaction.type)}}const r=this.prepareRequest(e,t);null==r&&Za.throwError(e+" not implemented",zt.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(r[0],r[1])}catch(r){return tu(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 ru(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=Hr(uu);if(t)for(const e in t)t[e]&&(r[e]=!0);Gr(e,r);const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(t){if(null==e[t])return;const r=ar(gr.from(e[t]));"gasLimit"===t&&(t="gas"),n[t]=r}),["from","to","data"].forEach(function(t){null!=e[t]&&(n[t]=nr(e[t]))}),e.accessList&&(n.accessList=va(e.accessList)),n}}const cu=new zt("random/5.8.0"),du=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 hu=du.crypto||du.msCrypto;function pu(e){(e<=0||e>1024||e%1||e!=e)&&cu.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return hu.getRandomValues(t),Zt(t)}hu&&hu.getRandomValues||(cu.warn("WARNING: Missing strong random number source"),hu={getRandomValues:function(e){return cu.throwError("no secure random source avaialble",zt.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});const fu=new zt(ws);let mu=1;function yu(e,t){const r="Web3LegacyFetcher";return function(e,n){const i={method:e,params:n,id:mu++,jsonrpc:"2.0"};return new Promise((e,n)=>{this.emit("debug",{action:"request",fetcher:r,request:zr(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 gu extends lu{constructor(e,t){null==e&&fu.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:zr(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=yu(0,e.sendAsync.bind(e)):e.send?n=yu(0,e.send.bind(e)):fu.throwArgumentError("unsupported provider","provider",e),r||(r="unknown:")),super(r,t),Fr(this,"jsonRpcFetchFunc",n),Fr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}function bu(e,t,r,n,i){let o;e=Zt(e),t=Zt(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=Zt(as(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=Zt(as(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(Zt(c).slice(0,f),p)}return nr(a)}new zt(ws);const vu=new zt("wordlists/5.8.0");class Au{constructor(e){vu.checkAbstract(new.target,Au),Fr(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 En(t.join("\n")+"\n")}static register(e,t){}}const wu="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";let Tu=null;function Eu(e){if(null==Tu&&(Tu=wu.replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Au.check(e)))throw Tu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const Su=new class extends Au{constructor(){super("en")}getWord(e){return Eu(this),Tu[e]}getWordIndex(e){return Eu(this),Tu.indexOf(e)}};Au.register(Su);const Iu={en:Su},xu=new zt("hdnode/5.8.0"),Cu=gr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ku=wn("Bitcoin seed"),Pu=2147483648;function _u(e){return(1<<e)-1<<8-e}function Nu(e){return ur(nr(e),32)}function Mu(e){return an.encode($t([e,or(ss(ss(e)),0,4)]))}function Ru(e){if(null==e)return Iu.en;if("string"==typeof e){const t=Iu[e];return null==t&&xu.throwArgumentError("unknown locale","wordlist",e),t}return e}const Ou={},Du="m/44'/60'/0'/0/0";class Bu{constructor(e,t,r,n,i,o,s,a){if(e!==Ou)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new aa(t);Fr(this,"privateKey",e.privateKey),Fr(this,"publicKey",e.compressedPublicKey)}else Fr(this,"privateKey",null),Fr(this,"publicKey",nr(r));var u;Fr(this,"parentFingerprint",n),Fr(this,"fingerprint",or((u=ss(this.publicKey),"0x"+is.ripemd160().update(Zt(u)).digest("hex")),0,4)),Fr(this,"address",ma(this.publicKey)),Fr(this,"chainCode",i),Fr(this,"index",o),Fr(this,"depth",s),null==a?(Fr(this,"mnemonic",null),Fr(this,"path",null)):"string"==typeof a?(Fr(this,"mnemonic",null),Fr(this,"path",a)):(Fr(this,"mnemonic",a),Fr(this,"path",a.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return Mu($t([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",nr(this.depth),this.parentFingerprint,ur(nr(this.index),4),this.chainCode,null!=this.privateKey?$t(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new Bu(Ou,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&Pu){if(!this.privateKey)throw new Error("cannot derive child of neutered node");r.set(Zt(this.privateKey),1),t&&(t+="'")}else r.set(Zt(this.publicKey));for(let t=24;t>=0;t-=8)r[33+(t>>3)]=e>>24-t&255;const n=Zt(as(rs.sha512,this.chainCode,r)),i=n.slice(0,32),o=n.slice(32);let s=null,a=null;this.privateKey?s=Nu(gr.from(i).add(this.privateKey).mod(Cu)):a=new aa(nr(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 Bu(Ou,s,a,this.fingerprint,Nu(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>=Pu)throw new Error("invalid path index - "+n);r=r._derive(Pu+e)}else{if(!n.match(/^[0-9]+$/))throw new Error("invalid path component - "+n);{const e=parseInt(n);if(e>=Pu)throw new Error("invalid path index - "+n);r=r._derive(e)}}}return r}static _fromSeed(e,t){const r=Zt(e);if(r.length<16||r.length>64)throw new Error("invalid seed");const n=Zt(as(rs.sha512,ku,r));return new Bu(Ou,Nu(n.slice(0,32)),null,"0x00000000",Nu(n.slice(32)),0,0,t)}static fromMnemonic(e,t,r){return e=Lu(Fu(e,r=Ru(r)),r),Bu._fromSeed(function(e,t){t||(t="");const r=wn("mnemonic"+t,yn.NFKD);return bu(wn(e,yn.NFKD),r,2048,64,"sha512")}(e,t),{phrase:e,path:"m",locale:r.locale})}static fromSeed(e){return Bu._fromSeed(e,null)}static fromExtendedKey(e){const t=an.decode(e);82===t.length&&Mu(t.slice(0,78))===e||xu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const r=t[4],n=nr(t.slice(5,9)),i=parseInt(nr(t.slice(9,13)).substring(2),16),o=nr(t.slice(13,45)),s=t.slice(45,78);switch(nr(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new Bu(Ou,null,nr(s),n,o,i,r,null);case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new Bu(Ou,nr(s.slice(1)),null,n,o,i,r,null)}return xu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function Fu(e,t){t=Ru(t),xu.checkNormalize();const r=t.split(e);if(r.length%3!=0)throw new Error("invalid mnemonic");const n=Zt(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=_u(r.length/3);if((Zt(ss(n.slice(0,o/8)))[0]&s)!=(n[n.length-1]&s))throw new Error("invalid checksum");return nr(n.slice(0,o/8))}function Lu(e,t){if(t=Ru(t),(e=Zt(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=Zt(ss(e))[0]&_u(i);return r[r.length-1]<<=i,r[r.length-1]|=o>>8-i,t.join(r.map(e=>t.getWord(e)))}var Uu=Rt(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 x(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 C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.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=x(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]},C.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=x(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},C.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=x(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 k=function(e){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};k.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},k.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 P=function(e,t){if(!(this instanceof P))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 C(e)};P.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},P.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 _=function(e,t,r){if(!(this instanceof _))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 C(e)};_.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},_.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 N=function(e,t){if(!(this instanceof N))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 C(e)};N.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},N.prototype.decrypt=N.prototype.encrypt;var M=function(e){if(!(this instanceof M))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)};M.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},M.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},M.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var R=function(e,t){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof M||(t=new M(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};R.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},R.prototype.decrypt=R.prototype.encrypt,e.exports={AES:C,Counter:M,ModeOfOperation:{ecb:k,cbc:P,cfb:_,ofb:N,ctr:R},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 Gu="json-wallets/5.8.0";function Hu(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Zt(e)}function qu(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function ju(e){return"string"==typeof e?wn(e,yn.NFKC):Zt(e)}function Vu(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 zu(e){const t=Zt(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const r=nr(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}const Ku=new zt(Gu);class Wu extends Kr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Qu(e,t){const r=JSON.parse(e);t=ju(t);const n=ai(Vu(r,"ethaddr")),i=Hu(Vu(r,"encseed"));i&&i.length%16==0||Ku.throwArgumentError("invalid encseed","json",e);const o=Zt(bu(t,t,2e3,32,"sha256")).slice(0,16),s=i.slice(0,16),a=i.slice(16),u=new Uu.ModeOfOperation.cbc(o,s),l=Uu.padding.pkcs7.strip(Zt(u.decrypt(a)));let c="";for(let e=0;e<l.length;e++)c+=String.fromCharCode(l[e]);const d=fn(wn(c));return new Wu({_isCrowdsaleAccount:!0,address:n,privateKey:d})}function Ju(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Yu(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 Xu=Rt(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,x=!1,C=0,k=0;const P=p?parseInt(1e3/s):4294967295,_="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(x)return p(new Error("cancelled"),S/w);let t;switch(C){case 0:E=32*k*s,l(m,E,y,0,b),C=1,T=0;case 1:t=n-T,t>P&&(t=P);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(x=p(null,S/w),x)break;I=e}}if(T<n)break;T=0,C=2;case 2:t=n-T,t>P&&(t=P);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(x=p(null,S/w),x)break;I=e}}if(T<n)break;if(l(y,0,m,E,b),k++,k<a){C=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&&_(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}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}()}),Zu=Xu;const $u=new zt(Gu);function el(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class tl extends Kr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function rl(e,t){const r=Hu(Vu(e,"crypto/ciphertext"));if(nr(fn($t([t.slice(16,32),r]))).substring(2)!==Vu(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const n=function(e,t,r){if("aes-128-ctr"===Vu(e,"crypto/cipher")){const n=Hu(Vu(e,"crypto/cipherparams/iv")),i=new Uu.Counter(n);return Zt(new Uu.ModeOfOperation.ctr(t,i).decrypt(r))}return null}(e,t.slice(0,16),r);n||$u.throwError("unsupported cipher",zt.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),o=ma(n);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),ai(t)!==o)throw new Error("address mismatch")}const s={_isKeystoreAccount:!0,address:o,privateKey:nr(n)};if("0.1"===Vu(e,"x-ethers/version")){const t=Hu(Vu(e,"x-ethers/mnemonicCiphertext")),r=Hu(Vu(e,"x-ethers/mnemonicCounter")),n=new Uu.Counter(r),o=new Uu.ModeOfOperation.ctr(i,n),a=Vu(e,"x-ethers/path")||Du,u=Vu(e,"x-ethers/locale")||"en",l=Zt(o.decrypt(t));try{const e=Lu(l,u),t=Bu.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!==zt.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new tl(s)}function nl(e,t,r,n,i){return Zt(bu(e,t,r,n,i))}function il(e,t,r,n,i){return Promise.resolve(nl(e,t,r,n,i))}function ol(e,t,r,n,i){const o=ju(t),s=Vu(e,"crypto/kdf");if(s&&"string"==typeof s){const t=function(e,t){return $u.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===s.toLowerCase()){const r=Hu(Vu(e,"crypto/kdfparams/salt")),a=parseInt(Vu(e,"crypto/kdfparams/n")),u=parseInt(Vu(e,"crypto/kdfparams/r")),l=parseInt(Vu(e,"crypto/kdfparams/p"));a&&u&&l||t("kdf",s),0!=(a&a-1)&&t("N",a);const c=parseInt(Vu(e,"crypto/kdfparams/dklen"));return 32!==c&&t("dklen",c),n(o,r,a,u,l,64,i)}if("pbkdf2"===s.toLowerCase()){const n=Hu(Vu(e,"crypto/kdfparams/salt"));let i=null;const s=Vu(e,"crypto/kdfparams/prf");"hmac-sha256"===s?i="sha256":"hmac-sha512"===s?i="sha512":t("prf",s);const a=parseInt(Vu(e,"crypto/kdfparams/c")),u=parseInt(Vu(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),r(o,n,a,u,i)}}return $u.throwArgumentError("unsupported key-derivation function","kdf",s)}var sl=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 al=new zt("wallet/5.8.0");class ul extends a.Signer{constructor(e,t){if(super(),null!=(r=e)&&tr(r.privateKey,32)&&null!=r.address){const t=new aa(e.privateKey);if(Fr(this,"_signingKey",()=>t),Fr(this,"address",ma(this.publicKey)),this.address!==ai(e.address)&&al.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Fr(this,"_mnemonic",()=>({phrase:t.phrase,path:t.path||Du,locale:t.locale||"en"}));const r=this.mnemonic;ma(Bu.fromMnemonic(r.phrase,null,r.locale).derivePath(r.path).privateKey)!==this.address&&al.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Fr(this,"_mnemonic",()=>null)}else{if(aa.isSigningKey(e))"secp256k1"!==e.curve&&al.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Fr(this,"_signingKey",()=>e);else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new aa(e);Fr(this,"_signingKey",()=>t)}Fr(this,"_mnemonic",()=>null),Fr(this,"address",ma(this.publicKey))}var r;t&&!Jr.isProvider(t)&&al.throwArgumentError("invalid provider","provider",t),Fr(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 ul(this,e)}signTransaction(e){return Ur(e).then(t=>{null!=t.from&&(ai(t.from)!==this.address&&al.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const r=this._signingKey().signDigest(fn(Ea(t)));return Ea(t,r)})}signMessage(e){return sl(this,void 0,void 0,function*(){return cr(this._signingKey().signDigest(function(e){return"string"==typeof e&&(e=wn(e)),fn($t([wn("Ethereum Signed Message:\n"),wn(String(e.length)),e]))}(e)))})}_signTypedData(e,t,r){return sl(this,void 0,void 0,function*(){const n=yield Ei.resolveNames(e,t,r,e=>(null==this.provider&&al.throwError("cannot resolve ENS names without a provider",zt.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e)));return cr(this._signingKey().signDigest(Ei.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(ai(e.address)!==ma(e.privateKey))throw new Error("address/privateKey mismatch");if(el(e)){const t=e.mnemonic;if(Bu.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||Du).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=Zt(e.privateKey),o=ju(t);let s=null,a=null,u=null;if(el(e)){const t=e.mnemonic;s=Zt(Fu(t.phrase,t.locale||"en")),a=t.path||Du,u=t.locale||"en"}let l=r.client;l||(l="ethers.js");let c=null;c=r.salt?Zt(r.salt):pu(32);let d=null;if(r.iv){if(d=Zt(r.iv),16!==d.length)throw new Error("invalid iv")}else d=pu(16);let h=null;if(r.uuid){if(h=Zt(r.uuid),16!==h.length)throw new Error("invalid uuid")}else h=pu(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)),Zu.scrypt(o,c,p,f,m,64,n).then(t=>{const r=(t=Zt(t)).slice(0,16),n=t.slice(16,32),o=t.slice(32,64),y=new Uu.Counter(d),g=Zt(new Uu.ModeOfOperation.ctr(r,y).encrypt(i)),b=fn($t([n,g])),v={address:e.address.substring(2).toLowerCase(),id:zu(h),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:nr(d).substring(2)},ciphertext:nr(g).substring(2),kdf:"scrypt",kdfparams:{salt:nr(c).substring(2),n:p,dklen:32,p:m,r:f},mac:b.substring(2)}};if(s){const e=pu(16),t=new Uu.Counter(e),r=Zt(new Uu.ModeOfOperation.ctr(o,t).encrypt(s)),n=new Date,i=n.getUTCFullYear()+"-"+qu(n.getUTCMonth()+1,2)+"-"+qu(n.getUTCDate(),2)+"T"+qu(n.getUTCHours(),2)+"-"+qu(n.getUTCMinutes(),2)+"-"+qu(n.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:l,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:nr(e).substring(2),mnemonicCiphertext:nr(r).substring(2),path:a,locale:u,version:"0.1"}}return JSON.stringify(v)})}(this,e,t,r)}static createRandom(e){let t=pu(16);e||(e={}),e.extraEntropy&&(t=Zt(or(fn($t([t,e.extraEntropy])),0,16)));const r=Lu(t,e.locale);return ul.fromMnemonic(r,e.path,e.locale)}static fromEncryptedJson(e,t,r){return function(e,t,r){if(Ju(e)){r&&r(0);const n=Qu(e,t);return r&&r(1),Promise.resolve(n)}return Yu(e)?function(e,t,r){return n=this,o=function*(){const n=JSON.parse(e);return rl(n,yield ol(n,t,il,Zu.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 ul(e))}static fromEncryptedJsonSync(e,t){return new ul(function(e,t){if(Ju(e))return Qu(e,t);if(Yu(e))return function(e,t){const r=JSON.parse(e);return rl(r,ol(r,t,nl,Zu.syncScrypt))}(e,t);throw new Error("invalid JSON wallet")}(e,t))}static fromMnemonic(e,t,r){return t||(t=Du),new ul(Bu.fromMnemonic(e,null,r).derivePath(t))}}function ll(e){return"string"==typeof e?new ul(e):"request"in e||"send"in e?new gu(e).getSigner():e}const cl=function(e,t,r){try{function n(n){return Promise.resolve(dl(e,{chainId:e.chainId,appCode:e.appCode,account:n},t,r)).then(function(e){return{result:{...e.result,signer:i},orderBookApi:e.orderBookApi}})}const i=ll(e.signer),o=e.owner;return Promise.resolve(o?n(o):Promise.resolve(i.getAddress()).then(n))}catch(s){return Promise.reject(s)}},dl=function(e,t,r,n){try{const{appCode:i,chainId:o,account:a}=t,u=At(e),l=u?{...e,...Et(o,e)}:e,{sellToken:c,sellTokenDecimals:d,buyToken:h,buyTokenDecimals:p,amount:f,kind:m,partnerFee:y,validFor:g=et,slippageBps:b=tt,env:v="prod"}=l;Se(`Swap ${f} ${c} for ${h} on chain ${o}`);const w=n||new Me({chainId:o,env:v}),T=l.receiver||a,E="sell"===m;return Se("Building app data..."),Promise.resolve(Pt({slippageBps:b,orderClass:"market",appCode:i,partnerFee:y},r?.appData)).then(function(e){const{appDataKeccak256:t,fullAppData:n}=e;Se(`App data: appDataKeccak256=${t} fullAppData=${n}`);const i={from:a,sellToken:c,buyToken:h,receiver:T,validFor:g,appData:n,appDataHash:t,priceQuality:exports.PriceQuality.OPTIMAL,signingScheme:exports.SigningScheme.EIP712,...u?hl:{},...E?{kind:exports.OrderQuoteSideKindSell.SELL,sellAmountBeforeFee:f}:{kind:exports.OrderQuoteSideKindBuy.BUY,buyAmountAfterFee:f},...r?.quoteRequest};return Se("Getting quote..."),Promise.resolve(w.getQuote(i)).then(function(t){const r=Ye({orderParams:t.quote,slippagePercentBps:b,partnerFeeBps:y?.bps,sellDecimals:d,buyDecimals:p}),n=at({from:a,networkCostsAmount:t.quote.feeAmount},vt(l,t),e.appDataKeccak256);return Promise.resolve(function(e,t){try{return Promise.resolve(st.getDomain(e)).then(function(e){return{domain:e,primaryType:A,types:{[A]:s.ORDER_TYPE_FIELDS,EIP712Domain:Nt},message:t}})}catch(e){return Promise.reject(e)}}(o,n)).then(function(i){return{result:{tradeParameters:l,amountsAndCosts:r,orderToSign:n,quoteResponse:t,appDataInfo:e,orderTypedData:i},orderBookApi:w}})})})}catch(e){return Promise.reject(e)}},hl={signingScheme:exports.SigningScheme.EIP1271,onchainOrder:!0,verificationGasLimit:0},pl=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 xt(e,t,r,a,{signingScheme:o?.quoteRequest?.signingScheme,networkCostsAmount:n.quote.feeAmount,...o?.additionalParams})}const a=vt(i,n),u=o?.appData;return Promise.resolve(u?Promise.resolve(Ct(r.doc,u)).then(s):s(r))}catch(l){return Promise.reject(l)}},fl=function(e,t,r){try{return Promise.resolve(cl(e,t,r)).then(function(e){return pl(e,t)})}catch(e){return Promise.reject(e)}},ml=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;Se(`Limit order ${l} ${a} for ${c} ${u} on chain ${s}`);const h=ll(e.signer),p=r||new Me({chainId:s,env:e.env});return Se("Building app data..."),Promise.resolve(Pt({slippageBps:e.slippageBps,orderClass:"limit",appCode:o,partnerFee:d},t?.appData)).then(function(r){return xt(p,h,r,e,t?.additionalParams)})}catch(e){return Promise.reject(e)}},yl=function(e,t,r,n){try{const i=bt.connect(r,e),o=pe[t],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(e=>BigInt(e.toHexString())).catch(e=>(console.error(e),it))).then(function(e){return{data:s,gasLimit:"0x"+wt(e).toString(16),to:o,value:"0"}})}catch(e){return Promise.reject(e)}};class gl{constructor(e={},t={}){this.traderParams=void 0,this.options=void 0,this.traderParams=e,this.options=t,void 0!==t.enableLogging&&Ie(t.enableLogging)}setTraderParams(e){return this.traderParams={...this.traderParams,...e},this}getQuote(e,t){try{const r=this;return Promise.resolve(cl(r.mergeParams(e),t,r.options.orderBookApi)).then(function(t){return{quoteResults:t.result,postSwapOrderFromQuote:r=>pl({...t,result:{...t.result,tradeParameters:Tt({quoteParameters:t.result.tradeParameters,orderParameters:e})}},r)}})}catch(e){return Promise.reject(e)}}getQuoteResults(e,t){try{const r=this;return Promise.resolve(cl(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSwapOrder(e,t){try{const r=this;return Promise.resolve(fl(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postLimitOrder(e,t){try{const r=this;return Promise.resolve(ml(r.mergeParams(e),t,r.options.orderBookApi))}catch(e){return Promise.reject(e)}}postSellNativeCurrencyOrder(e,t){try{const r=this;return Promise.resolve(cl(r.mergeParams(e),t,r.options.orderBookApi)).then(function(r){const{tradeParameters:n,quoteResponse:i}=r.result;return It(r.orderBookApi,r.result.signer,r.result.appDataInfo,vt(Tt({quoteParameters:n,orderParameters:e}),i),t?.additionalParams)})}catch(e){return Promise.reject(e)}}getPreSignTransaction(e){try{const t=this.mergeParams(e),r=ll(t.signer);return Promise.resolve(yl(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===bl(e).length}(e))throw new Error("Missing trader parameters: "+bl(e).join(", "))}(o),{...e,...o}}}function bl(e){const t=[];return e.chainId||t.push("chainId"),e.signer||t.push("signer"),e.appCode||t.push("appCode"),t}function vl(e){return{callData:"0x00",gasLimit:e.toString(),target:"0x0000000000000000000000000000000000000000"}}function Al(e,t){return e.callData===t.callData&&e.gasLimit===t.gasLimit&&e.target===t.target}const wl=new zt("units/5.8.0"),Tl=["wei","kwei","mwei","gwei","szabo","finney","ether"],El="abi/5.8.0",Sl=new zt(El),Il={};let xl={calldata:!0,memory:!0,storage:!0},Cl={calldata:!0,memory:!0};function kl(e,t){if("bytes"===e||"string"===e){if(xl[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Cl[t])return!0;return(xl[t]||"payable"===t)&&Sl.throwArgumentError("invalid modifier","name",t),!1}function Pl(e,t){for(let r in t)Fr(e,r,t[r])}const _l=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Nl=new RegExp(/^(.*)\[([0-9]*)\]$/);class Ml{constructor(e,t){e!==Il&&Sl.throwError("use fromString",zt.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Pl(this,t);let r=this.type.match(Nl);Pl(this,r?{arrayLength:parseInt(r[2]||"-1"),arrayChildren:Ml.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=_l.sighash),_l[e]||Sl.throwArgumentError("invalid format type","format",e),e===_l.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!==_l.sighash&&(t+=this.type),t+="("+this.components.map(t=>t.format(e)).join(e===_l.full?", ":",")+")"):t+=this.type,e!==_l.sighash&&(!0===this.indexed&&(t+=" indexed"),e===_l.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Ml.fromString(e,t):Ml.fromObject(e)}static fromObject(e){return Ml.isParamType(e)?e:new Ml(Il,{name:e.name||null,type:jl(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Ml.fromObject):null})}static fromString(e,t){return r=function(e,t){let r=e;function n(t){Sl.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=jl(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=""),kl(s.type,s.name)&&(s.name=""),s.type=jl(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=""),kl(s.type,s.name)&&(s.name=""),s.type=jl(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=jl(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=""):kl(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&&Sl.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=""):kl(s.type,s.name)&&(s.name=""),o.type=jl(o.type),o}(e,!!t),Ml.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function Rl(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&&Sl.throwArgumentError("unbalanced parenthesis","value",e)))}return r&&t.push(r),t}(e).map(e=>Ml.fromString(e,t))}class Ol{constructor(e,t){e!==Il&&Sl.throwError("use a static from method",zt.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Pl(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return Ol.isFragment(e)?e:"string"==typeof e?Ol.fromString(e):Ol.fromObject(e)}static fromObject(e){if(Ol.isFragment(e))return e;switch(e.type){case"function":return Gl.fromObject(e);case"event":return Dl.fromObject(e);case"constructor":return Ul.fromObject(e);case"error":return ql.fromObject(e);case"fallback":case"receive":return null}return Sl.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]?Dl.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Gl.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Ul.fromString(e.trim()):"error"===e.split(" ")[0]?ql.fromString(e.substring(5).trim()):Sl.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class Dl extends Ol{format(e){if(e||(e=_l.sighash),_l[e]||Sl.throwArgumentError("invalid format type","format",e),e===_l.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!==_l.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===_l.full?", ":",")+") ",e!==_l.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?Dl.fromString(e):Dl.fromObject(e)}static fromObject(e){if(Dl.isEventFragment(e))return e;"event"!==e.type&&Sl.throwArgumentError("invalid event object","value",e);const t={name:zl(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Ml.fromObject):[],type:"event"};return new Dl(Il,t)}static fromString(e){let t=e.match(Kl);t||Sl.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:Sl.warn("unknown modifier: "+e)}}),Dl.fromObject({name:t[1].trim(),anonymous:r,inputs:Rl(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Bl(e,t){t.gas=null;let r=e.split("@");return 1!==r.length?(r.length>2&&Sl.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||Sl.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=gr.from(r[1]),r[0]):e}function Fl(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 Ll(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&&Sl.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Sl.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||Sl.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.stateMutability=t.constant?"view":t.payable?"payable":"nonpayable",t.payable&&t.constant&&Sl.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&&Sl.throwArgumentError("unable to determine stateMutability","value",e),t}class Ul extends Ol{format(e){if(e||(e=_l.sighash),_l[e]||Sl.throwArgumentError("invalid format type","format",e),e===_l.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===_l.sighash&&Sl.throwError("cannot format a constructor for sighash",zt.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map(t=>t.format(e)).join(e===_l.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Ul.fromString(e):Ul.fromObject(e)}static fromObject(e){if(Ul.isConstructorFragment(e))return e;"constructor"!==e.type&&Sl.throwArgumentError("invalid constructor object","value",e);let t=Ll(e);t.constant&&Sl.throwArgumentError("constructor cannot be constant","value",e);const r={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Ml.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?gr.from(e.gas):null};return new Ul(Il,r)}static fromString(e){let t={type:"constructor"},r=(e=Bl(e,t)).match(Kl);return r&&"constructor"===r[1].trim()||Sl.throwArgumentError("invalid constructor string","value",e),t.inputs=Rl(r[2].trim(),!1),Fl(r[3].trim(),t),Ul.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class Gl extends Ul{format(e){if(e||(e=_l.sighash),_l[e]||Sl.throwArgumentError("invalid format type","format",e),e===_l.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!==_l.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===_l.full?", ":",")+") ",e!==_l.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?Gl.fromString(e):Gl.fromObject(e)}static fromObject(e){if(Gl.isFunctionFragment(e))return e;"function"!==e.type&&Sl.throwArgumentError("invalid function object","value",e);let t=Ll(e);const r={type:e.type,name:zl(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Ml.fromObject):[],outputs:e.outputs?e.outputs.map(Ml.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?gr.from(e.gas):null};return new Gl(Il,r)}static fromString(e){let t={type:"function"},r=(e=Bl(e,t)).split(" returns ");r.length>2&&Sl.throwArgumentError("invalid function string","value",e);let n=r[0].match(Kl);if(n||Sl.throwArgumentError("invalid function signature","value",e),t.name=n[1].trim(),t.name&&zl(t.name),t.inputs=Rl(n[2],!1),Fl(n[3].trim(),t),r.length>1){let n=r[1].match(Kl);""==n[1].trim()&&""==n[3].trim()||Sl.throwArgumentError("unexpected tokens","value",e),t.outputs=Rl(n[2],!1)}else t.outputs=[];return Gl.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Hl(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Sl.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class ql extends Ol{format(e){if(e||(e=_l.sighash),_l[e]||Sl.throwArgumentError("invalid format type","format",e),e===_l.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t="";return e!==_l.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map(t=>t.format(e)).join(e===_l.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?ql.fromString(e):ql.fromObject(e)}static fromObject(e){if(ql.isErrorFragment(e))return e;"error"!==e.type&&Sl.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:zl(e.name),inputs:e.inputs?e.inputs.map(Ml.fromObject):[]};return Hl(new ql(Il,t))}static fromString(e){let t={type:"error"},r=e.match(Kl);return r||Sl.throwArgumentError("invalid error signature","value",e),t.name=r[1].trim(),t.name&&zl(t.name),t.inputs=Rl(r[2],!1),Hl(ql.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function jl(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Vl=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function zl(e){return e&&e.match(Vl)||Sl.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Kl=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"),Wl=new zt(El);class Ql{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){Wl.throwArgumentError(e,this.localName,t)}}class Jl{constructor(e){Fr(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return sr(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($t(e._data))}writeBytes(e){let t=Zt(e);const r=t.length%this.wordSize;return r&&(t=$t([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=Zt(gr.from(e));return t.length>this.wordSize&&Wl.throwError("value out-of-bounds",zt.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=$t([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 Yl{constructor(e,t,r,n){Fr(this,"_data",Zt(e)),Fr(this,"wordSize",t||32),Fr(this,"_coerceFunc",r),Fr(this,"allowLoose",n),this._offset=0}get data(){return nr(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):Yl.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:Wl.throwError("data out-of-bounds",zt.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Yl(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 gr.from(this.readBytes(this.wordSize))}}class Xl extends Ql{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=ai(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return ai(ur(e.readValue().toHexString(),20))}}class Zl extends Ql{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 $l=new zt(El);function ec(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||$l.throwError("cannot encode object for signature with missing names",zt.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&$l.throwError("cannot encode object for signature with duplicate names",zt.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]})}else $l.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&$l.throwArgumentError("types/value length mismatch","tuple",r);let i=new Jl(e.wordSize),o=new Jl(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 tc(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===zt.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===zt.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 rc extends Ql{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)),$l.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 ec(e,n,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&$l.throwError("insufficient data length",zt.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let e=0;e<t;e++)r.push(new Zl(this.coder));return e.coerce(this.name,tc(e,r))}}class nc extends Ql{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 ic extends Ql{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Zt(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class oc extends ic{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,nr(super.decode(e)))}}class sc extends Ql{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=Zt(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return e.coerce(this.name,nr(e.readBytes(this.size)))}}class ac extends Ql{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 uc extends Ql{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=gr.from(t),n=dn.mask(8*e.wordSize);if(this.signed){let e=n.mask(8*this.size-1);(r.gt(e)||r.lt(e.add(cn).mul(un)))&&this._throwError("value out-of-bounds",t)}else(r.lt(ln)||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 lc extends ic{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,wn(t))}decode(e){return Tn(super.decode(e))}}class cc extends Ql{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 ec(e,this.coders,t)}decode(e){return e.coerce(this.name,tc(e,this.coders))}}const dc=new zt(El),hc=new RegExp(/^bytes([0-9]*)$/),pc=new RegExp(/^(u?int)([0-9]*)$/),fc=new class{constructor(e){Fr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Xl(e.name);case"bool":return new nc(e.name);case"string":return new lc(e.name);case"bytes":return new oc(e.name);case"array":return new rc(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new cc((e.components||[]).map(e=>this._getCoder(e)),e.name);case"":return new ac(e.name)}let t=e.type.match(pc);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&dc.throwArgumentError("invalid "+t[1]+" bit length","param",e),new uc(r/8,"int"===t[1],e.name)}if(t=e.type.match(hc),t){let r=parseInt(t[1]);return(0===r||r>32)&&dc.throwArgumentError("invalid bytes length","param",e),new sc(r,e.name)}return dc.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Yl(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Jl(this._getWordSize())}getDefaultValue(e){const t=e.map(e=>this._getCoder(Ml.from(e)));return new cc(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&dc.throwError("types/values length mismatch",zt.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map(e=>this._getCoder(Ml.from(e))),n=new cc(r,"_"),i=this._getWriter();return n.encode(i,t),i.data}decode(e,t,r){const n=e.map(e=>this._getCoder(Ml.from(e)));return new cc(n,"_").decode(this._getReader(Zt(t),r))}},mc=new zt(El);class yc extends Kr{}class gc extends Kr{}class bc extends Kr{}class vc extends Kr{static isIndexed(e){return!(!e||!e._isIndexed)}}const Ac={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function wc(e,t){const r=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return r.error=t,r}class Tc{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Fr(this,"fragments",t.map(e=>Ol.from(e)).filter(e=>null!=e)),Fr(this,"_abiCoder",Lr(new.target,"getAbiCoder")()),Fr(this,"functions",{}),Fr(this,"errors",{}),Fr(this,"events",{}),Fr(this,"structs",{}),this.fragments.forEach(e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void mc.warn("duplicate definition - constructor"):void Fr(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]?mc.warn("duplicate definition - "+r):t[r]=e}),this.deploy||Fr(this,"deploy",Ul.from({payable:!1,type:"constructor"})),Fr(this,"_isInterface",!0)}format(e){e||(e=_l.full),e===_l.sighash&&mc.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map(t=>t.format(e));return e===_l.json?JSON.stringify(t.map(e=>JSON.parse(e))):t}static getAbiCoder(){return fc}static getAddress(e){return ai(e)}static getSighash(e){return or(En(e.format()),0,4)}static getEventTopic(e){return En(e.format())}getFunction(e){if(tr(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];mc.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?mc.throwArgumentError("no matching function","name",t):r.length>1&&mc.throwArgumentError("multiple matching functions","name",t),this.functions[r[0]]}const t=this.functions[Gl.fromString(e).format()];return t||mc.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(tr(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];mc.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?mc.throwArgumentError("no matching event","name",t):r.length>1&&mc.throwArgumentError("multiple matching events","name",t),this.events[r[0]]}const t=this.events[Dl.fromString(e).format()];return t||mc.throwArgumentError("no matching event","signature",e),t}getError(e){if(tr(e)){const t=Lr(this.constructor,"getSighash");for(const r in this.errors)if(e===t(this.errors[r]))return this.errors[r];mc.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?mc.throwArgumentError("no matching error","name",t):r.length>1&&mc.throwArgumentError("multiple matching errors","name",t),this.errors[r[0]]}const t=this.errors[Gl.fromString(e).format()];return t||mc.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 Lr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Lr(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=Zt(t);return nr(r.slice(0,4))!==this.getSighash(e)&&mc.throwArgumentError(`data signature does not match error ${e.name}.`,"data",nr(r)),this._decodeParams(e.inputs,r.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),nr($t([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const r=Zt(t);return nr(r.slice(0,4))!==this.getSighash(e)&&mc.throwArgumentError(`data signature does not match function ${e.name}.`,"data",nr(r)),this._decodeParams(e.inputs,r.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),nr($t([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let r=Zt(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=nr(r.slice(0,4)),t=Ac[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 mc.throwError("call revert exception"+i,zt.errors.CALL_EXCEPTION,{method:e.format(),data:nr(t),errorArgs:o,errorName:s,errorSignature:a,reason:n})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),nr(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&mc.throwError("too many arguments for "+e.format(),zt.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let r=[];e.anonymous||r.push(this.getEventTopic(e));const n=(e,t)=>"string"===e.type?En(t):"bytes"===e.type?fn(nr(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=gr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),ur(nr(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?mc.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&&mc.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&&mc.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(En(s));else if("bytes"===e.type)r.push(fn(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);tr(r[0],32)&&r[0].toLowerCase()===t||mc.throwError("fragment/topic mismatch",zt.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(Ml.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,$t(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 vc({_isIndexed:!0,hash:null});else if(o[t])u[t]=new vc({_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 wc(`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 wc(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new gc({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:gr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new yc({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=nr(e);let r=this.getError(t.substring(0,10).toLowerCase());return r?new bc({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 Ec=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 Sc=new zt("contracts/5.8.0");function Ic(e,t){return Ec(this,void 0,void 0,function*(){const r=yield t;"string"!=typeof r&&Sc.throwArgumentError("invalid address or ENS name","name",r);try{return ai(r)}catch(e){}e||Sc.throwError("a provider or signer is needed to resolve ENS names",zt.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const n=yield e.resolveName(r);return null==n&&Sc.throwArgumentError("resolver or addr is not configured for ENS name","name",r),n})}function xc(e,t,r){return Ec(this,void 0,void 0,function*(){return Array.isArray(r)?yield Promise.all(r.map((r,n)=>xc(e,Array.isArray(t)?t[n]:t[r.name],r))):"address"===r.type?yield Ic(e,t):"tuple"===r.type?yield xc(e,t,r.components):"array"===r.baseType?Array.isArray(t)?yield Promise.all(t.map(t=>xc(e,t,r.arrayChildren))):Promise.reject(Sc.makeError("invalid value for array",zt.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t})}function Cc(e,t,r){return Ec(this,void 0,void 0,function*(){let n={};r.length===t.inputs.length+1&&"object"==typeof r[r.length-1]&&(n=Hr(r.pop())),Sc.checkArgumentCount(r.length,t.inputs.length,"passed to contract"),e.signer?n.from=n.from?Ur({override:Ic(e.signer,n.from),signer:e.signer.getAddress()}).then(e=>Ec(this,void 0,void 0,function*(){return ai(e.signer)!==e.override&&Sc.throwError("Contract with a Signer cannot override from",zt.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})):e.signer.getAddress():n.from&&(n.from=Ic(e.provider,n.from));const i=yield Ur({args:xc(e.signer||e.provider,r,t.inputs),address:e.resolvedAddress,overrides:Ur(n)||{}}),o=e.interface.encodeFunctionData(t,i.args),s={data:o,to:i.address},a=i.overrides;if(null!=a.nonce&&(s.nonce=gr.from(a.nonce).toNumber()),null!=a.gasLimit&&(s.gasLimit=gr.from(a.gasLimit)),null!=a.gasPrice&&(s.gasPrice=gr.from(a.gasPrice)),null!=a.maxFeePerGas&&(s.maxFeePerGas=gr.from(a.maxFeePerGas)),null!=a.maxPriorityFeePerGas&&(s.maxPriorityFeePerGas=gr.from(a.maxPriorityFeePerGas)),null!=a.from&&(s.from=a.from),null!=a.type&&(s.type=a.type),null!=a.accessList&&(s.accessList=va(a.accessList)),null==s.gasLimit&&null!=t.gas){let e=21e3;const r=Zt(o);for(let t=0;t<r.length;t++)e+=4,r[t]&&(e+=64);s.gasLimit=gr.from(t.gas).add(e)}if(a.value){const e=gr.from(a.value);e.isZero()||t.payable||Sc.throwError("non-payable method cannot override value",zt.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:n.value}),s.value=e}a.customData&&(s.customData=Hr(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&&Sc.throwError(`cannot override ${u.map(e=>JSON.stringify(e)).join(",")}`,zt.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),s})}function kc(e,t,r){const n=e.signer||e.provider;return function(...i){return Ec(this,void 0,void 0,function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Hr(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 Cc(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===zt.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=s),t}})}}function Pc(e,t,r){return t.constant?kc(e,t,r):function(e,t){return function(...r){return Ec(this,void 0,void 0,function*(){e.signer||Sc.throwError("sending a transaction requires a signer",zt.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const n=yield Cc(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=zr(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 _c(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 Nc{constructor(e,t){Fr(this,"tag",e),Fr(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 Mc extends Nc{constructor(){super("error",null)}}class Rc extends Nc{constructor(e,t,r,n){const i={address:e};let o=t.getEventTopic(r);n?(o!==n[0]&&Sc.throwArgumentError("topic mismatch","topics",n),i.topics=n.slice()):i.topics=[o],super(_c(i),i),Fr(this,"address",e),Fr(this,"interface",t),Fr(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 Oc extends Nc{constructor(e,t){super("*",{address:e}),Fr(this,"address",e),Fr(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 Dc{constructor(e,t,r){Fr(this,"interface",Lr(new.target,"getInterface")(t)),null==r?(Fr(this,"provider",null),Fr(this,"signer",null)):a.Signer.isSigner(r)?(Fr(this,"provider",r.provider||null),Fr(this,"signer",r)):Jr.isProvider(r)?(Fr(this,"provider",r),Fr(this,"signer",null)):Sc.throwArgumentError("invalid signer or provider","signerOrProvider",r),Fr(this,"callStatic",{}),Fr(this,"estimateGas",{}),Fr(this,"functions",{}),Fr(this,"populateTransaction",{}),Fr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach(t=>{const r=this.interface.events[t];Fr(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?Fr(this.filters,t,this.filters[r[0]]):Sc.warn(`Duplicate definition of ${t} (${r.join(", ")})`)})}if(Fr(this,"_runningEvents",{}),Fr(this,"_wrappedEmits",{}),null==e&&Sc.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Fr(this,"address",e),this.provider)Fr(this,"resolvedAddress",Ic(this.provider,e));else try{Fr(this,"resolvedAddress",Promise.resolve(ai(e)))}catch(e){Sc.throwError("provider is required to use ENS name as contract address",zt.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])Sc.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]&&Fr(this,e,Pc(this,t,!0)),null==this.functions[e]&&Fr(this.functions,e,Pc(this,t,!1)),null==this.callStatic[e]&&Fr(this.callStatic,e,kc(this,t,!0)),null==this.populateTransaction[e]&&Fr(this.populateTransaction,e,function(e,t){return function(...r){return Cc(e,t,r)}}(this,t)),null==this.estimateGas[e]&&Fr(this.estimateGas,e,function(e,t){const r=e.signer||e.provider;return function(...n){return Ec(this,void 0,void 0,function*(){r||Sc.throwError("estimate require a provider or signer",zt.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield Cc(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]&&Fr(this,e,this[r])}catch(e){}null==this.functions[e]&&Fr(this.functions,e,this.functions[r]),null==this.callStatic[e]&&Fr(this.callStatic,e,this.callStatic[r]),null==this.populateTransaction[e]&&Fr(this.populateTransaction,e,this.populateTransaction[r]),null==this.estimateGas[e]&&Fr(this.estimateGas,e,this.estimateGas[r])})}static getContractAddress(e){return ui(e)}static getInterface(e){return Tc.isInterface(e)?e:new Tc(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&&Sc.throwError("contract not deployed",zt.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this))),this._deployedPromise}fallback(e){this.signer||Sc.throwError("sending a transactions require a signer",zt.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Hr(e||{});return["from","to"].forEach(function(e){null!=t[e]&&Sc.throwError("cannot override "+e,zt.errors.UNSUPPORTED_OPERATION,{operation:e})}),t.to=this.resolvedAddress,this.deployed().then(()=>this.signer.sendTransaction(t))}connect(e){"string"==typeof e&&(e=new a.VoidSigner(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Fr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return vc.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 Mc);if("event"===e)return this._normalizeRunningEvent(new Nc("event",null));if("*"===e)return this._normalizeRunningEvent(new Oc(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new Rc(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 Rc(this.address,this.interface,r,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Nc(_c(t),t))}return this._normalizeRunningEvent(new Oc(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=zr(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||Sc.throwError("events require a provider or a signer with a provider",zt.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=Hr(n.filter);return"string"==typeof t&&tr(t,32)?(null!=r&&Sc.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 Bc extends Dc{}const Fc=["function decimals() external view returns (uint8)"],Lc="cow-sdk://bridging/providers",Uc=`${D}/src/bridging/providers`,Gc={to:"0x0000000000000000000000000000000000000001",data:"0x0",value:BigInt(0)},Hc=[{chainId:exports.SupportedChainId.MAINNET,address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"USD Coin",symbol:"USDC",decimals:6},{chainId:exports.SupportedChainId.MAINNET,address:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",logoUrl:"https://swap.cow.fi/assets/network-gnosis-chain-logo-Do_DEWQv.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18},{chainId:exports.SupportedChainId.SEPOLIA,address:"0x0625aFB445C3B6B7B929342a04A22599fd5dBB59",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"CoW Protocol Token",symbol:"COW",decimals:18},{chainId:exports.AdditionalTargetChainId.OPTIMISM,address:"0x4200000000000000000000000000000000000006",logoUrl:"https://swap.cow.fi/assets/network-mainnet-logo-BJe1wK_m.svg",name:"Wrapped Ether",symbol:"WETH",decimals:18}],qc={[exports.SupportedChainId.MAINNET]:["0xDEf1CA1fb7FBcDC777520aa7f396b4E015F497aB"],[exports.AdditionalTargetChainId.OPTIMISM]:["0x68f180fcCe6836688e9084f035309E29Bf0A2095"],[exports.SupportedChainId.SEPOLIA]:["0xB4F1737Af37711e9A5890D9510c9bB60e170CB0D"]},jc=[{chainId:exports.SupportedChainId.MAINNET,tokens:{usdc:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",wbtc:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",dai:"0x6B175474E89094C44Da98b954EedeAC495271d0F",usdt:"0xdAC17F958D2ee523a2206206994597C13D831ec7"}},{chainId:exports.SupportedChainId.POLYGON,tokens:{usdc:"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",weth:"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",wbtc:"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6",dai:"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",usdt:"0xc2132D05D31c914a87C6611C10748AEb04B58e8F"}},{chainId:exports.SupportedChainId.ARBITRUM_ONE,tokens:{usdc:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",wbtc:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"}},{chainId:exports.SupportedChainId.BASE,tokens:{usdc:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",weth:"0x4200000000000000000000000000000000000006",dai:"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb"}},{chainId:exports.AdditionalTargetChainId.OPTIMISM,tokens:{usdc:"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",weth:"0x4200000000000000000000000000000000000006",wbtc:"0x68f180fcCe6836688e9084f035309E29Bf0A2095",dai:"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",usdt:"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"}}].reduce((e,t)=>(e[t.chainId]=t,e),{});class Vc{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,Wc))}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,zc))}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 Se(`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 m(`Invalid response for Across API call ${e}. The response doesn't pass the validation. Did the API change?`,t)}return t})}const o=function(){if(!t.ok)return Promise.resolve(t.json()).then(function(e){throw new m("Across Api Error",e)})}();return o&&o.then?o.then(i):i(o)})}catch(e){return Promise.reject(e)}}}function zc(e){return"object"==typeof e&&null!==e&&"totalRelayFee"in e&&Kc(e.totalRelayFee)&&"relayerCapitalFee"in e&&Kc(e.relayerCapitalFee)&&"relayerGasFee"in e&&Kc(e.relayerGasFee)&&"lpFee"in e&&Kc(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 Kc(e){return"object"==typeof e&&null!==e&&"pct"in e&&"total"in e}function Wc(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 Qc=10n**18n;function Jc(e){return jc[e]}function Yc(e,t,r){const{amount:n,sellTokenDecimals:i,buyTokenDecimals:o}=e,s=Xe(n,i),a=s.big,u=Xe(s.num,o).big,l=BigInt(r.totalRelayFee.pct),c=Zc(u,l),d=a-Zc(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,Xc(f),Number(10000n*f/Qc)),amountInSellCurrency:d,amountInBuyCurrency:h}},slippageBps:t};var f}function Xc(e){if(e>Qc||e<0n)throw new Error("Fee cannot exceed 100% or be negative")}function Zc(e,t){return Xc(t),e*(Qc-t)/Qc}let $c;function ed(e,t,r){if(!e.s){if(r instanceof td){if(!r.s)return void(r.o=ed.bind(null,e,t));1&t&&(t=r.s),r=r.v}if(r&&r.then)return void r.then(ed.bind(null,e,t),ed.bind(null,e,2));e.s=t,e.v=r;const n=e.o;n&&n(e)}}const td=/*#__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{ed(n,1,e(this.v))}catch(e){ed(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?ed(n,1,t?t(i):i):r?ed(n,1,r(i)):ed(n,2,i)}catch(e){ed(n,2,e)}},n},e}(),rd="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033",nd={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 id{constructor(e,t){this.chainId=void 0,this.customOptions=void 0,this.chainId=e,this.customOptions=t}proxyOf(e){const t=i.defaultAbiCoder.encode(["address"],[e]),r=i.solidityKeccak256(["bytes","bytes"],[this.proxyCreationCode(),i.defaultAbiCoder.encode(["address","address"],[this.getImplementationAddress(),e])]);return i.getCreate2Address(this.getFactoryAddress(),t,r)}encodeExecuteHooksForFactory(e,t,r,n,i){return($c||($c=ct.createInterface()),$c).encodeFunctionData("executeHooks",[e,t,r,n,i])}signCalls(e,t,r,n,o){try{const a=this;return Promise.resolve(n.getAddress()).then(function(u){const l=a.proxyOf(u),{domain:c,types:d,message:h}=a.infoToSign(e,t,r,l);return Promise.resolve(function(e,t,r,n,o){try{let a,u;function l(e){return a?e:i.joinSignature(i.splitSignature(c))}let c=null;const d=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 td,d=ed.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 ed(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());ed(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)}ed(c,1,e)}}(e,[[function(){return s.SigningScheme.EIP712},function(){if(!s.isTypedDataSigner(t))throw new Error("signer does not support signing typed data");return Promise.resolve(t._signTypedData(r,n,o)).then(function(e){c=e,u=1})}],[function(){return s.SigningScheme.ETHSIGN},function(){return Promise.resolve(t.signMessage(i.arrayify(s.hashTypedData(r,n,o)))).then(function(e){c=e,u=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(d&&d.then?d.then(l):l(d))}catch(h){return Promise.reject(h)}}(o,n,c,d,h))})}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:nd,message:i}}getDomain(e){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:e}}proxyCreationCode(){var e;return null!==(e=this.customOptions?.proxyCreationCode)&&void 0!==e?e:rd}getFactoryAddress(){var e;return null!==(e=this.customOptions?.factoryAddress)&&void 0!==e?e:de}getImplementationAddress(){var e;return null!==(e=this.customOptions?.implementationAddress)&&void 0!==e?e:he}}const od=dn.toBigInt();class sd{constructor(e={}){this.options=void 0,this.hooksCache=new Map,this.options=e}getCowShedAccount(e,t){return this.getCowShedHooks(e,this.options?.factoryOptions).proxyOf(t)}signCalls({calls:e,signer:t,chainId:r,nonce:n=sd.getNonce(),deadline:i=od,defaultGasLimit:o,signingScheme:a=s.SigningScheme.EIP712}){try{const s=this,u=s.getCowShedHooks(r),l=t||s.options?.signer;if(!l)throw new Error("Signer is required");const c=ll(l);return Promise.resolve(c.getAddress()).then(function(t){const r=u.proxyOf(t);return Promise.resolve(u.signCalls(e,n,i,c,a)).then(function(s){const a=u.encodeExecuteHooksForFactory(e,n,i,t,s),l={to:u.getFactoryAddress(),data:a,value:BigInt(0)};return Promise.resolve(c.estimateGas(l).catch(e=>{const t=`Error estimating gas for the cow-shed call: ${JSON.stringify(l,ke,2)}. Review the factory call`;if(o)return Se(`${t}, using the default gas limit.`),o;throw new Error(`${t}, or provide the defaultGasLimit parameter.`,{cause:e})})).then(function(e){return{cowShedAccount:r,signedMulticall:l,gasLimit:BigInt(e.toString())}})})})}catch(e){return Promise.reject(e)}}getCowShedHooks(e,t){let r=this.hooksCache.get(e);return r||(r=new id(e,t),this.hooksCache.set(e,r),r)}static getNonce(){return i.formatBytes32String(Date.now().toString())}}const ad={[exports.SupportedChainId.MAINNET]:"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5",[exports.SupportedChainId.ARBITRUM_ONE]:"0xe35e9842fceaca96570b734083f4a58e8f7c5f2a",[exports.SupportedChainId.BASE]:"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",[exports.SupportedChainId.SEPOLIA]:"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662",[exports.SupportedChainId.POLYGON]:"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096",[exports.SupportedChainId.GNOSIS_CHAIN]:void 0,[exports.SupportedChainId.AVALANCHE]:void 0,[exports.AdditionalTargetChainId.OPTIMISM]:void 0},ud={[exports.SupportedChainId.MAINNET]:"0xf2ae6728b6f146556977Af0A68bFbf5bADA22863",[exports.SupportedChainId.ARBITRUM_ONE]:"0x5771A4b4029832e79a75De7B485E5fBbec28848f",[exports.SupportedChainId.BASE]:"0xd4e943dc6ddc885f6229ce33c2e3dfe402a12c81",[exports.SupportedChainId.GNOSIS_CHAIN]:void 0,[exports.SupportedChainId.SEPOLIA]:void 0,[exports.SupportedChainId.POLYGON]:void 0,[exports.AdditionalTargetChainId.OPTIMISM]:void 0,[exports.SupportedChainId.AVALANCHE]:void 0};var ld;exports.WeirollCommandFlags=void 0,(ld=exports.WeirollCommandFlags||(exports.WeirollCommandFlags={}))[ld.DELEGATECALL=0]="DELEGATECALL",ld[ld.CALL=1]="CALL",ld[ld.STATICCALL=2]="STATICCALL",ld[ld.CALL_WITH_VALUE=3]="CALL_WITH_VALUE",ld[ld.CALLTYPE_MASK=3]="CALLTYPE_MASK",ld[ld.EXTENDED_COMMAND=64]="EXTENDED_COMMAND",ld[ld.TUPLE_RETURN=128]="TUPLE_RETURN";const cd="0x9585c3062Df1C247d5E373Cfca9167F7dC2b5963",dd=[{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 hd(e){const t=e.plan(),{commands:r,state:n}=t;return new Tc(dd).encodeFunctionData("execute",[r,n])}function pd(e){const t=new u.Planner;return e(t),{to:cd,value:BigInt(0),data:hd(t)}}function fd(e,t){return u.Contract.createContract(e,t)}const md=[{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"}],yd=[{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"}],gd=["function balanceOf(address account) external view returns (uint256)"],bd=["function approve(address spender, uint256 amount) external returns (bool)"],vd=`${Lc}/across`,Ad=[L,$,j,z,X],wd=l.gql`
2
2
  query Totals {
3
3
  totals {
4
4
  tokens
@@ -11,19 +11,19 @@ require("cross-fetch/polyfill");var t,e=require("limiter"),r=require("exponentia
11
11
  feesEth
12
12
  }
13
13
  }
14
- `,lt=n.gql`
14
+ `,Td=l.gql`
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
- `,ht=n.gql`
21
+ `,Ed=l.gql`
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
- `,ct="https://api.thegraph.com/subgraphs/name/cowprotocol",ft={[exports.SupportedChainId.MAINNET]:ct+"/cow",[exports.SupportedChainId.GNOSIS_CHAIN]:ct+"/cow-gc",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null},dt={[exports.SupportedChainId.MAINNET]:ct+"/cow-staging",[exports.SupportedChainId.GNOSIS_CHAIN]:ct+"/cow-gc-staging",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null},pt=()=>Promise.resolve().then(function(){return require("./utils-63156cab.js")});class mt{static signOrder(t,e,r){try{return Promise.resolve(pt()).then(function({signOrder:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellation(t,e,r){try{return Promise.resolve(pt()).then(function({signOrderCancellation:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static signOrderCancellations(t,e,r){try{return Promise.resolve(pt()).then(function({signOrderCancellations:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomain(t){try{return Promise.resolve(pt()).then(function({getDomain:e}){return e(t)})}catch(t){return Promise.reject(t)}}static generateOrderId(t,e,r){try{return Promise.resolve(pt()).then(function({generateOrderId:n}){return n(t,e,r)})}catch(t){return Promise.reject(t)}}static getDomainSeparator(t){try{return Promise.resolve(pt()).then(function({getDomain:e}){return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return h(require("ethers/lib/utils"))})).then(function({_TypedDataEncoder:r}){return r.hashDomain(e(t))})})}catch(t){return Promise.reject(t)}}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"}]}}}var yt,gt;exports.ProofLocation=void 0,(yt=exports.ProofLocation||(exports.ProofLocation={}))[yt.PRIVATE=0]="PRIVATE",yt[yt.EMITTED=1]="EMITTED",yt[yt.SWARM=2]="SWARM",yt[yt.WAKU=3]="WAKU",yt[yt.RESERVED=4]="RESERVED",yt[yt.IPFS=5]="IPFS",exports.PollResultCode=void 0,(gt=exports.PollResultCode||(exports.PollResultCode={})).SUCCESS="SUCCESS",gt.UNEXPECTED_ERROR="UNEXPECTED_ERROR",gt.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",gt.TRY_ON_BLOCK="TRY_ON_BLOCK",gt.TRY_AT_EPOCH="TRY_AT_EPOCH",gt.DONT_TRY_AGAIN="DONT_TRY_AGAIN";const vt=[{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"DeadlineElapsed",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NonceAlreadyUsed",type:"error"},{inputs:[],name:"OnlyAdmin",type:"error"},{inputs:[],name:"OnlyAdminOrTrustedExecutorOrSelf",type:"error"},{inputs:[],name:"OnlySelf",type:"error"},{inputs:[],name:"OnlyTrustedExecutor",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"r",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"s",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"v",type:"uint8"}],name:"RSV",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousExecutor",type:"address"},{indexed:!1,internalType:"address",name:"newExecutor",type:"address"}],name:"TrustedExecutorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[{internalType:"address",name:"resolver",type:"address"}],name:"claimWithResolver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"domainSeparator",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:"bytes",name:"signature",type:"bytes"}],name:"executeHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"factory",type:"address"},{internalType:"bool",name:"claimResolver",type:"bool"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"nonce",type:"bytes32"}],name:"nonces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"nonce",type:"bytes32"}],name:"revokeNonce",outputs:[],stateMutability:"nonpayable",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[]"}],name:"trustedExecuteHooks",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"trustedExecutor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"updateImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"who",type:"address"}],name:"updateTrustedExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class bt{static createInterface(){return new i.utils.Interface(vt)}static connect(t,e){return new i.Contract(t,vt,e)}}bt.abi=vt;const At=[{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 wt{static createInterface(){return new i.utils.Interface(At)}static connect(t,e){return new i.Contract(t,At,e)}}wt.abi=At;const Et=[{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 Tt{static createInterface(){return new i.utils.Interface(Et)}static connect(t,e){return new i.Contract(t,Et,e)}}Tt.abi=Et;const It=[{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 St{static createInterface(){return new i.utils.Interface(It)}static connect(t,e){return new i.Contract(t,It,e)}}St.abi=It;const _t=[{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 Nt{static createInterface(){return new i.utils.Interface(_t)}static connect(t,e){return new i.Contract(t,_t,e)}}Nt.abi=_t;const xt=[{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 Mt{static createInterface(){return new i.utils.Interface(xt)}static connect(t,e){return new i.Contract(t,xt,e)}}Mt.abi=xt;const kt=function(t){try{return Promise.resolve(t.getBlock("latest")).then(function(t){return{blockNumber:t.number,blockTimestamp:t.timestamp}})}catch(t){return Promise.reject(t)}},Pt=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],Ct=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],Ot=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],Rt=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],Bt=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],Dt=["tuple(address handler, bytes32 salt, bytes staticInput)"];function Lt(t){return i.utils.defaultAbiCoder.encode(Dt,[t])}function Ft(t){const{handler:e,salt:r,staticInput:n}=i.utils.defaultAbiCoder.decode(Dt,t)[0];return{handler:e,salt:r,staticInput:n}}function Ut(t,e){try{i.utils.defaultAbiCoder.encode(t,e)}catch(t){return!1}return!0}function qt(t){return new Date(1e3*t).toISOString()}function Gt(t){if(Pt.includes(t))return o.OrderBalance.ERC20;if(Ct.includes(t))return o.OrderBalance.EXTERNAL;if(Ot.includes(t))return o.OrderBalance.INTERNAL;throw new Error(`Unknown balance type: ${t}`)}function Ht(t){if(Rt.includes(t))return o.OrderKind.SELL;if(Bt.includes(t))return o.OrderKind.BUY;throw new Error(`Unknown kind: ${t}`)}function zt(t){const{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,buyTokenBalance:o,sellTokenBalance:s,feeAmount:a,kind:u,receiver:l,validTo:h,partiallyFillable:c,appData:f}=t;return{sellToken:e,sellAmount:r,buyToken:n,buyAmount:i,feeAmount:a,receiver:l,partiallyFillable:c,appData:f,validTo:Number(h),kind:Ht(u.toString()),sellTokenBalance:Gt(s.toString()),buyTokenBalance:Gt(o.toString())}}function jt(t){return t.isValid}let Qt,Kt;function Vt(){return Qt||(Qt=Tt.createInterface()),Qt}function Yt(t,e){return Kt||(Kt=Tt.connect(S[t],e)),Kt}class Jt{constructor(t){this.handler=void 0,this.salt=void 0,this.data=void 0,this.staticInput=void 0,this.hasOffChainInput=void 0;const{handler:e,salt:r=i.utils.keccak256(i.utils.randomBytes(32)),data:n,hasOffChainInput:o=!1}=t;if(!i.ethers.utils.isAddress(e))throw new Error(`Invalid handler: ${e}`);if(!i.ethers.utils.isHexString(r)||32!==i.ethers.utils.hexDataLength(r))throw new Error(`Invalid salt: ${r}`);this.handler=e,this.salt=r,this.data=n,this.staticInput=this.transformDataToStruct(n),this.hasOffChainInput=o}get context(){}assertIsValid(){const t=this.isValid();if(!jt(t))throw new Error(`Invalid order: ${t.reason}`)}get createCalldata(){this.assertIsValid();const t=this.context,e=Vt(),r={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(t){const n=t.factoryArgs?i.utils.defaultAbiCoder.encode(t.factoryArgs.argsType,t.factoryArgs.args):"0x";return e.encodeFunctionData("createWithContext",[r,t.address,n,!0])}return e.encodeFunctionData("create",[r,!0])}get removeCalldata(){return this.assertIsValid(),Vt().encodeFunctionData("remove",[this.id])}get id(){return i.utils.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:i.constants.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(t){return i.utils.keccak256(Lt(t))}get offChainInput(){return"0x"}encodeStaticInputHelper(t,e){return i.utils.defaultAbiCoder.encode(t,[e])}poll(t){try{const e=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=t,s=Yt(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=e.isValid();return jt(i)?Promise.resolve(e.pollValidate(t)).then(function(i){return i||Promise.resolve(e.isAuthorized(t)).then(function(i){return i?Promise.resolve(s.getTradeableOrderWithSignature(n,e.leaf,e.offChainInput,[])).then(function([i,s]){return Promise.resolve(function(t,e,r){try{return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return h(require("@cowprotocol/contracts"))})).then(function({computeOrderUid:n}){return Promise.resolve(mt.getDomain(t)).then(function(t){return n(t,r,e)})})}catch(t){return Promise.reject(t)}}(r,n,zt(i))).then(function(r){return Promise.resolve(o.getOrder(r).then(()=>!0).catch(()=>!1)).then(function(n){let o;function a(t){return o?t:{result:exports.PollResultCode.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(e.handlePollFailedAlreadyPresent(r,i,t)).then(function(t){if(t)return o=1,t;const e={result:exports.PollResultCode.TRY_NEXT_BLOCK,reason:"Order already in orderbook"};return o=1,e})}();return u&&u.then?u.then(a):a(u)})})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${e.id} is not authorized for ${n} on chain ${r}`}})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`InvalidConditionalOrder. Reason: ${i.reason}`}}()}catch(t){return a(t)}return u&&u.then?u.then(void 0,a):u}(0,function(t){return{result:exports.PollResultCode.UNEXPECTED_ERROR,error:t}}))}catch(t){return Promise.reject(t)}}isAuthorized(t){const{chainId:e,owner:r,provider:n}=t;return Yt(e,n).callStatic.singleOrders(r,this.id)}cabinet(t){const{chainId:e,owner:r,provider:n}=t;return Yt(e,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(t,e,r,n){try{const{handler:o,salt:s,staticInput:a}=Ft(t);if(o!=e)throw new Error("HandlerMismatch");const[u]=i.utils.defaultAbiCoder.decode(r,a);return n(u,s)}catch(t){throw"HandlerMismatch"===t.message?t:new Error("InvalidSerializedConditionalOrder")}}}const Wt=["address","bytes32","bytes"],Xt=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Zt{constructor(t,e,r,n=exports.ProofLocation.PRIVATE){if(this.chain=void 0,this.location=void 0,this.orders={},this.tree=void 0,this.ctx=void 0,this.chain=t,this.location=n,e&&0===Object.keys(e).length)throw new Error("orders must have non-zero length");if(e&&!r||!e&&r)throw new Error("orders cannot have undefined root");for(const t in e)if(e.hasOwnProperty(t)){const r=e[t];if(!Zt.orderTypeRegistry.hasOwnProperty(r.orderType))throw new Error(`Unknown order type: ${r.orderType}`)}if(e&&(this.orders=e,this.getOrGenerateTree().root!==r))throw new Error("root mismatch")}static fromJSON(t){const{chain:e,orders:r,root:n,location:o}=JSON.parse(t,(t,e)=>{if("orders"===t&&"object"==typeof e&&null!==e){const t={};for(const r in e)if(e.hasOwnProperty(r)){const{orderType:n,...i}=e[r];if(!Zt.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);t[r]=new(0,Zt.orderTypeRegistry[n])(i)}return t}return"object"==typeof e&&null!==e&&e.hasOwnProperty("type")&&e.hasOwnProperty("hex")&&"BigNumber"===e.type?i.BigNumber.from(e):e}),s=new Zt(e,r,n);return s.location=o,s}toJSON(){const t=this.getOrGenerateTree().root;return JSON.stringify({...this,root:t},(t,e)=>{if("tree"!==t){if("object"==typeof e&&null!==e&&"orderType"in e){const t=e;return{...t,orderType:t.orderType}}return e}})}add(t){t.assertIsValid(),this.orders[t.id]=t,this.reset()}remove(t){delete this.orders[t],this.reset()}update(t,e){const r=e(this.orders[t],this.ctx);delete this.orders[t],this.orders[r.id]=r,this.reset()}getById(t){return this.orders[t]}getByIndex(t){return this.orders[this.orderIds[t]]}get orderIds(){return Object.keys(this.orders)}get root(){return this.getOrGenerateTree().root}getOrGenerateTree(){return this.tree||(this.tree=s.StandardMerkleTree.of(Object.values(this.orders).map(t=>[...Object.values(t.leaf)]),Wt)),this.tree}static decodeFromJSON(t){return JSON.parse(t)}prepareProofStruct(t,e,r){try{const n=this;void 0===t&&(t=n.location);const o=function(){try{switch(t){case exports.ProofLocation.PRIVATE:return Promise.resolve("0x");case exports.ProofLocation.EMITTED:return Promise.resolve(n.encodeToABI(e));case exports.ProofLocation.SWARM:case exports.ProofLocation.WAKU:case exports.ProofLocation.IPFS:if(!r)throw new Error("Must provide an uploader function");return Promise.resolve(function(t,i){try{var o=Promise.resolve(r(n.encodeToJSON(e)))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(e){throw new Error(`Error uploading to decentralized storage ${t}: ${e}`)}));default:throw new Error("Unsupported location")}}catch(t){return Promise.reject(t)}};return Promise.resolve(o().then(e=>{try{return i.utils.hexlify(i.utils.arrayify(e)),n.location=t,{location:t,data:e}}catch(t){throw new Error("data returned by uploader is invalid")}}).catch(t=>{throw new Error(`Error preparing proof struct: ${t}`)}))}catch(t){return Promise.reject(t)}}static poll(t,e,r,n,i){try{function o(r){return Promise.resolve(s.getTradeableOrderWithSignature(t,e.params,r,e.proof))}const s=Yt(r,n);return Promise.resolve(i?Promise.resolve(i(t,e.params)).then(o):o("0x"))}catch(a){return Promise.reject(a)}}dumpProofs(t){return this.encodeToJSON(t)}dumpProofsAndParams(t){return this.getProofs(t)}getProofs(t){return[...this.getOrGenerateTree().entries()].map(([e,r])=>t&&t(r)||void 0===t?{idx:e,value:r}:void 0).reduce((t,e)=>{if(e){const r={handler:e.value[0],salt:e.value[1],staticInput:e.value[2]};t.push({proof:this.getOrGenerateTree().getProof(e.idx),params:r})}return t},[])}encodeToABI(t){return i.utils.defaultAbiCoder.encode(Xt,[this.getProofs(t)])}encodeToJSON(t){return JSON.stringify(this.getProofs(t))}reset(){this.tree=void 0}static registerOrderType(t,e){Zt.orderTypeRegistry[t]=e}static resetOrderTypeRegistry(){Zt.orderTypeRegistry={}}}Zt.orderTypeRegistry={};const $t="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",te="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",ee=i.BigNumber.from(2).pow(32).sub(1),re=i.BigNumber.from(31536e3),ne=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var ie,oe;exports.DurationType=void 0,(ie=exports.DurationType||(exports.DurationType={})).AUTO="AUTO",ie.LIMIT_DURATION="LIMIT_DURATION",exports.StartTimeValue=void 0,(oe=exports.StartTimeValue||(exports.StartTimeValue={})).AT_MINING_TIME="AT_MINING_TIME",oe.AT_EPOCH="AT_EPOCH";const se={startType:exports.StartTimeValue.AT_MINING_TIME},ae={durationType:exports.DurationType.AUTO};class ue extends Jt{constructor(t){const{handler:e,salt:r,data:n,hasOffChainInput:i}=t;if(e!==$t)throw new Error(`InvalidHandler: Expected: ${$t}, provided: ${e}`);super({handler:$t,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(t,e){return new ue({handler:$t,data:t,salt:e})}static fromParams(t){return ue.deserialize(Lt(t))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:te,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const t=(()=>{const{sellToken:t,sellAmount:e,buyToken:r,buyAmount:n,startTime:o=se,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=ae}=this.data;if(t==r)return"InvalidSameToken";if(t==i.constants.AddressZero||r==i.constants.AddressZero)return"InvalidToken";if(!e.gt(i.constants.Zero))return"InvalidSellAmount";if(!n.gt(i.constants.Zero))return"InvalidMinBuyAmount";if(o.startType===exports.StartTimeValue.AT_EPOCH){const t=o.epoch;if(!t.gte(i.constants.Zero)||!t.lt(ee))return"InvalidStartTime"}return s.gt(i.constants.One)&&s.lte(ee)?a.gt(i.constants.Zero)&&a.lte(re)?u.durationType!==exports.DurationType.LIMIT_DURATION||u.duration.lte(a)?Ut(ne,[this.staticInput])?void 0:"InvalidData":"InvalidSpan":"InvalidFrequency":"InvalidNumParts"})();return t?{isValid:!1,reason:t}:{isValid:!0}}startTimestamp(t){try{const e=this,{startTime:r}=e.data;return r?.startType===exports.StartTimeValue.AT_EPOCH?Promise.resolve(r.epoch.toNumber()):Promise.resolve(e.cabinet(t)).then(function(t){const e=i.utils.defaultAbiCoder.decode(["uint256"],t)[0];if(e.gt(ee))throw new Error(`Cabinet epoch out of range: ${e.toString()}`);const r=e.toNumber();if(0===r)throw new Error("Cabinet is not set. Required for TWAP orders that start at mining time.");return r})}catch(t){return Promise.reject(t)}}endTimestamp(t){const{numberOfParts:e,timeBetweenParts:r,durationOfPart:n}=this.data;return n&&n.durationType===exports.DurationType.LIMIT_DURATION?t+e.sub(1).mul(r).add(n.duration).toNumber():t+e.mul(r).toNumber()}pollValidate(t){try{const e=this;return Promise.resolve(kt(t.provider)).then(function(r){const{blockInfo:n=r}=t,{blockTimestamp:i}=n;return function(r,n){try{var o=Promise.resolve(e.startTimestamp(t)).then(function(t){if(t>i)return{result:exports.PollResultCode.TRY_AT_EPOCH,epoch:t,reason:`TWAP hasn't started yet. Starts at ${t} (${qt(t)})`};const r=e.endTimestamp(t);return i>=r?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${qt(r)})`}:void 0})}catch(t){return n(t)}return o&&o.then?o.then(void 0,n):o}(0,function(t){return t?.message?.includes("Cabinet is not set")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${t?.message}. User likely removed the order.`}:t?.message?.includes("Cabinet epoch out of range")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${t?.message}`}:{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`Unexpected error: ${t.message}`,error:t}})})}catch(t){return Promise.reject(t)}}handlePollFailedAlreadyPresent(t,e,r){try{const t=this;return Promise.resolve(kt(r.provider)).then(function(e){const{blockInfo:n=e}=r,{blockTimestamp:i}=n,o=t.data.timeBetweenParts.toNumber(),{numberOfParts:s}=t.data;return Promise.resolve(t.startTimestamp(r)).then(function(t){if(i<t)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${t} (${qt(t)})`,error:void 0};const e=s.mul(o).add(t).toNumber();if(i>=e)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${e} (${qt(e)})`,error:void 0};const r=Math.floor((i-t)/o);if(r===s.toNumber()-1)return{result:exports.PollResultCode.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=t+(r+1)*o;return{result:exports.PollResultCode.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} (${qt(n)})`}})})}catch(t){return Promise.reject(t)}}serialize(){return Lt(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(ne,this.staticInput)}static deserialize(t){return super.deserializeHelper(t,$t,ne,(t,e)=>new ue({handler:$t,salt:e,data:he(t)}))}toString(){const{sellAmount:t,sellToken:e,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=se,timeBetweenParts:s,durationOfPart:a=ae,receiver:u,appData:l}=this.data,h=o.startType===exports.StartTimeValue.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),c=a.durationType===exports.DurationType.AUTO?"AUTO":a.duration.toNumber(),f={sellAmount:t.toString(),sellToken:e,buyAmount:r.toString(),buyToken:n,numberOfParts:i.toString(),startTime:h,timeBetweenParts:s.toNumber(),durationOfPart:c,receiver:u,appData:l};return`${this.orderType} (${this.id}): ${JSON.stringify(f)}`}transformDataToStruct(t){return le(t)}transformStructToData(t){return he(t)}}function le(t){const{sellAmount:e,buyAmount:r,numberOfParts:n,startTime:o=se,timeBetweenParts:s,durationOfPart:a=ae,...u}=t,{partSellAmount:l,minPartLimit:h}=n&&!n.isZero()?{partSellAmount:e.div(n),minPartLimit:r.div(n)}:{partSellAmount:i.constants.Zero,minPartLimit:i.constants.Zero},c=a.durationType===exports.DurationType.AUTO?i.constants.Zero:a.duration;return{partSellAmount:l,minPartLimit:h,t0:o.startType===exports.StartTimeValue.AT_MINING_TIME?i.constants.Zero:o.epoch,n:n,t:s,span:c,...u}}function he(t){const{n:e,partSellAmount:r,minPartLimit:n,t:i,t0:o,span:s,sellToken:a,buyToken:u,receiver:l,appData:h}=t,c=s.isZero()?{durationType:exports.DurationType.AUTO}:{durationType:exports.DurationType.LIMIT_DURATION,duration:s},f=s.isZero()?{startType:exports.StartTimeValue.AT_MINING_TIME}:{startType:exports.StartTimeValue.AT_EPOCH,epoch:o};return{sellAmount:r.mul(e),buyAmount:n.mul(e),startTime:f,numberOfParts:e,timeBetweenParts:i,durationOfPart:c,sellToken:a,buyToken:u,receiver:l,appData:h}}const ce={[$t]:t=>ue.fromParams(t)},fe={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"}]};let de,pe;function me(){return pe||(pe=wt.createInterface()),pe}const ye="0x60a034608e57601f61037138819003918201601f19168301916001600160401b038311848410176093578084926040948552833981010312608e57604b602060458360a9565b920160a9565b6080527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516102b490816100bd8239608051818181608f01526101720152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203608e5756fe60806040526004361015610018575b3661019457610194565b6000803560e01c908163025b22bc1461003b575063f851a4400361000e5761010d565b3461010a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010a5773ffffffffffffffffffffffffffffffffffffffff60043581811691828203610106577f0000000000000000000000000000000000000000000000000000000000000000163314600014610101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8280a280f35b61023d565b8380fd5b80fd5b346101645760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164576020610146610169565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b333003610101577f000000000000000000000000000000000000000000000000000000000000000090565b60ff7f68df44b1011761f481358c0f49a711192727fb02c377d697bcb0ea8ff8393ac0541615806101ef575b1561023d5760046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b507f400ada75000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000006000351614156101c0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e1561027a573d90f35b3d90fdfea2646970667358221220c7c26ff3040b96a28e96d6d27b743972943aeaef81cc821544c5fe1e24f9b17264736f6c63430008190033";function ge(t,e,r){if(!t.s){if(r instanceof ve){if(!r.s)return void(r.o=ge.bind(null,t,e));1&e&&(e=r.s),r=r.v}if(r&&r.then)return void r.then(ge.bind(null,t,e),ge.bind(null,t,2));t.s=e,t.v=r;const n=t.o;n&&n(t)}}const ve=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(e,r){const n=new t,i=this.s;if(i){const t=1&i?e:r;if(t){try{ge(n,1,t(this.v))}catch(t){ge(n,2,t)}return n}return this}return this.o=function(t){try{const i=t.v;1&t.s?ge(n,1,e?e(i):i):r?ge(n,1,r(i)):ge(n,2,i)}catch(t){ge(n,2,t)}},n},t}(),be="Order";function Ae(t){Ae.enabled&&console.log(`[COW TRADING SDK] ${t}`)}Ae.enabled=!1;const we=1800,Ee=50,Te={[exports.EcdsaSigningScheme.EIP712]:exports.SigningScheme.EIP712,[exports.EcdsaSigningScheme.ETHSIGN]:exports.SigningScheme.ETHSIGN},Ie=BigInt(15e4);function Se({from:t,networkCostsAmount:e="0"},r,n){const{sellAmount:i,buyAmount:o,sellToken:s,sellTokenDecimals:a,buyToken:u,buyTokenDecimals:l,kind:h,partiallyFillable:c=!1,slippageBps:f=Ee,partnerFee:d,validFor:p}=r,m=r.receiver||t,y=r.validTo||Math.floor(Date.now()/1e3)+(p||we),g={sellToken:s,buyToken:u,sellAmount:i,buyAmount:o,receiver:m,validTo:y,kind:h,feeAmount:e,appData:n,partiallyFillable:c},{afterSlippage:v}=st({orderParams:g,slippagePercentBps:f,partnerFeeBps:d?.bps,sellDecimals:a,buyDecimals:l});return{sellToken:s,buyToken:u,sellAmount:v.sellAmount.toString(),buyAmount:v.buyAmount.toString(),validTo:y,kind:h,partiallyFillable:c,appData:n,receiver:m,feeAmount:"0",sellTokenBalance:exports.SellTokenSource.ERC20,buyTokenBalance:exports.BuyTokenDestination.ERC20}}const _e=function(t,e,r,n){try{return Promise.resolve(mt.generateOrderId(t,{...e,sellTokenBalance:e.sellTokenBalance,buyTokenBalance:e.buyTokenBalance,validTo:P,sellToken:_[t]},{owner:("staging"===n?k:M)[t]})).then(function({orderDigest:n,orderId:i}){let o;function s(n){if(n){console.error("ETH FLOW","[calculateUniqueOrderId] ❌ Collision detected: "+i,{sellAmount:e.sellAmount,fee:e.feeAmount});const n=_e(t,function(t){const e=BigInt(t.buyAmount);return{...t,buyAmount:(e-BigInt(1)).toString()}}(e),r);return o=1,n}return i}return r?Promise.resolve(r(i,n)).then(s):s(r)})}catch(t){return Promise.reject(t)}};var Ne="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xe(t){var e={exports:{}};return t(e,e.exports),e.exports}var Me={__proto__:null,default:{}},ke=xe(function(t){!function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function i(t,e,r){if(i.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=i:e.BN=i,i.BN=i,i.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Me.Buffer}catch(t){}function s(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+t)}function a(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,n,i){for(var o=0,s=0,a=Math.min(t.length,n),u=e;u<a;u++){var l=t.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(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}if(i.isBN=function(t){return t instanceof i||null!==t&&"object"==typeof t&&t.constructor.wordSize===i.wordSize&&Array.isArray(t.words)},i.max=function(t,e){return t.cmp(e)>0?t:e},i.min=function(t,e){return t.cmp(e)<0?t:e},i.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<t.length&&(16===e?this._parseHex(t,i,n):(this._parseBase(t,e,i),"le"===n&&this._initArray(this.toArray(),e,n)))},i.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},i.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.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=t.length-1,o=0;i>=0;i-=3)this.words[o]|=(s=t[i]|t[i-1]<<8|t[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<t.length;i+=3)this.words[o]|=(s=t[i]|t[i+1]<<8|t[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(t,e,r){this.length=Math.ceil((t.length-e)/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=t.length-1;n>=e;n-=2)i=a(t,e,n)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,this.words[s+=1]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n<t.length;n+=2)i=a(t,e,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(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,s=o%n,a=Math.min(o,o-s)+r,l=0,h=r;h<a;h+=n)l=u(t,h,h+n,e),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==s){var c=1;for(l=u(t,h,t.length,e),h=0;h<s;h++)c*=e;this.imuln(c),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}this._strip()},i.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},i.prototype._move=function(t){l(t,this)},i.prototype.clone=function(){var t=new i(null);return this.copy(t),t},i.prototype._expand=function(t){for(;this.length<t;)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")]=h}catch(t){i.prototype.inspect=h}else i.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var c=["","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"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[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 p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.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,h=67108863&a,c=Math.min(u,e.length-1),f=Math.max(0,u-t.length+1);f<=c;f++)l+=(s=(i=0|t.words[u-f|0])*(o=0|e.words[f])+h)/67108864|0,h=67108863&s;r.words[u]=0|h,a=0|l}return 0!==a?r.words[u]=0|a:r.length--,r._strip()}i.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){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?c[6-u.length]+u+n:u+n}for(0!==o&&(n=o.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var l=f[t],h=d[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modrn(h).toString(t);n=(p=p.idivn(h)).isZero()?m+n:c[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%e!=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 t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},i.prototype.toJSON=function(){return this.toString(16,2)},o&&(i.prototype.toBuffer=function(t,e){return this.toArrayLike(o,t,e)}),i.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},i.prototype.toArrayLike=function(t,e,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(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},i.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r++]=255&s,r<t.length&&(t[r++]=s>>8&255),r<t.length&&(t[r++]=s>>16&255),6===o?(r<t.length&&(t[r++]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r<t.length)for(t[r++]=n;r<t.length;)t[r++]=0},i.prototype._toArrayLikeBE=function(t,e){for(var r=t.length-1,n=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|n;t[r--]=255&s,r>=0&&(t[r--]=s>>8&255),r>=0&&(t[r--]=s>>16&255),6===o?(r>=0&&(t[r--]=s>>24&255),n=0,o=0):(n=s>>>24,o+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},i.prototype._countBits=Math.clz32?function(t){return 32-Math.clz32(t)}:function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},i.prototype.bitLength=function(){var t=this._countBits(this.words[this.length-1]);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},i.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).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(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},i.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},i.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},i.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this._strip()},i.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},i.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},i.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this._strip()},i.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},i.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},i.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;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(t){return this.clone().inotn(t)},i.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},i.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+(0|n.words[o])+i),i=e>>>26;for(;0!==i&&o<r.length;o++)this.words[o]=67108863&(e=(0|r.words[o])+i),i=e>>>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(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,s=0;s<n.length;s++)o=(e=(0|r.words[s])-(0|n.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<r.length;s++)o=(e=(0|r.words[s])+o)>>26,this.words[s]=67108863&e;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(t){return this.clone().isub(t)};var m=function(t,e,r){var n,i,o,s=t.words,a=e.words,u=r.words,l=0,h=0|s[0],c=8191&h,f=h>>>13,d=0|s[1],p=8191&d,m=d>>>13,y=0|s[2],g=8191&y,v=y>>>13,b=0|s[3],A=8191&b,w=b>>>13,E=0|s[4],T=8191&E,I=E>>>13,S=0|s[5],_=8191&S,N=S>>>13,x=0|s[6],M=8191&x,k=x>>>13,P=0|s[7],C=8191&P,O=P>>>13,R=0|s[8],B=8191&R,D=R>>>13,L=0|s[9],F=8191&L,U=L>>>13,q=0|a[0],G=8191&q,H=q>>>13,z=0|a[1],j=8191&z,Q=z>>>13,K=0|a[2],V=8191&K,Y=K>>>13,J=0|a[3],W=8191&J,X=J>>>13,Z=0|a[4],$=8191&Z,tt=Z>>>13,et=0|a[5],rt=8191&et,nt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,lt=at>>>13,ht=0|a[8],ct=8191&ht,ft=ht>>>13,dt=0|a[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19;var yt=(l+(n=Math.imul(c,G))|0)+((8191&(i=(i=Math.imul(c,H))+Math.imul(f,G)|0))<<13)|0;l=((o=Math.imul(f,H))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(p,G),i=(i=Math.imul(p,H))+Math.imul(m,G)|0,o=Math.imul(m,H);var gt=(l+(n=n+Math.imul(c,j)|0)|0)+((8191&(i=(i=i+Math.imul(c,Q)|0)+Math.imul(f,j)|0))<<13)|0;l=((o=o+Math.imul(f,Q)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(g,G),i=(i=Math.imul(g,H))+Math.imul(v,G)|0,o=Math.imul(v,H),n=n+Math.imul(p,j)|0,i=(i=i+Math.imul(p,Q)|0)+Math.imul(m,j)|0,o=o+Math.imul(m,Q)|0;var vt=(l+(n=n+Math.imul(c,V)|0)|0)+((8191&(i=(i=i+Math.imul(c,Y)|0)+Math.imul(f,V)|0))<<13)|0;l=((o=o+Math.imul(f,Y)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(A,G),i=(i=Math.imul(A,H))+Math.imul(w,G)|0,o=Math.imul(w,H),n=n+Math.imul(g,j)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(v,j)|0,o=o+Math.imul(v,Q)|0,n=n+Math.imul(p,V)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,Y)|0;var bt=(l+(n=n+Math.imul(c,W)|0)|0)+((8191&(i=(i=i+Math.imul(c,X)|0)+Math.imul(f,W)|0))<<13)|0;l=((o=o+Math.imul(f,X)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(T,G),i=(i=Math.imul(T,H))+Math.imul(I,G)|0,o=Math.imul(I,H),n=n+Math.imul(A,j)|0,i=(i=i+Math.imul(A,Q)|0)+Math.imul(w,j)|0,o=o+Math.imul(w,Q)|0,n=n+Math.imul(g,V)|0,i=(i=i+Math.imul(g,Y)|0)+Math.imul(v,V)|0,o=o+Math.imul(v,Y)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,X)|0;var At=(l+(n=n+Math.imul(c,$)|0)|0)+((8191&(i=(i=i+Math.imul(c,tt)|0)+Math.imul(f,$)|0))<<13)|0;l=((o=o+Math.imul(f,tt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(_,G),i=(i=Math.imul(_,H))+Math.imul(N,G)|0,o=Math.imul(N,H),n=n+Math.imul(T,j)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(I,j)|0,o=o+Math.imul(I,Q)|0,n=n+Math.imul(A,V)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(w,V)|0,o=o+Math.imul(w,Y)|0,n=n+Math.imul(g,W)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,X)|0,n=n+Math.imul(p,$)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,tt)|0;var wt=(l+(n=n+Math.imul(c,rt)|0)|0)+((8191&(i=(i=i+Math.imul(c,nt)|0)+Math.imul(f,rt)|0))<<13)|0;l=((o=o+Math.imul(f,nt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(M,G),i=(i=Math.imul(M,H))+Math.imul(k,G)|0,o=Math.imul(k,H),n=n+Math.imul(_,j)|0,i=(i=i+Math.imul(_,Q)|0)+Math.imul(N,j)|0,o=o+Math.imul(N,Q)|0,n=n+Math.imul(T,V)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(I,V)|0,o=o+Math.imul(I,Y)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(w,W)|0,o=o+Math.imul(w,X)|0,n=n+Math.imul(g,$)|0,i=(i=i+Math.imul(g,tt)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0;var Et=(l+(n=n+Math.imul(c,ot)|0)|0)+((8191&(i=(i=i+Math.imul(c,st)|0)+Math.imul(f,ot)|0))<<13)|0;l=((o=o+Math.imul(f,st)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(C,G),i=(i=Math.imul(C,H))+Math.imul(O,G)|0,o=Math.imul(O,H),n=n+Math.imul(M,j)|0,i=(i=i+Math.imul(M,Q)|0)+Math.imul(k,j)|0,o=o+Math.imul(k,Q)|0,n=n+Math.imul(_,V)|0,i=(i=i+Math.imul(_,Y)|0)+Math.imul(N,V)|0,o=o+Math.imul(N,Y)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(I,W)|0,o=o+Math.imul(I,X)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(w,$)|0,o=o+Math.imul(w,tt)|0,n=n+Math.imul(g,rt)|0,i=(i=i+Math.imul(g,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0;var Tt=(l+(n=n+Math.imul(c,ut)|0)|0)+((8191&(i=(i=i+Math.imul(c,lt)|0)+Math.imul(f,ut)|0))<<13)|0;l=((o=o+Math.imul(f,lt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(B,G),i=(i=Math.imul(B,H))+Math.imul(D,G)|0,o=Math.imul(D,H),n=n+Math.imul(C,j)|0,i=(i=i+Math.imul(C,Q)|0)+Math.imul(O,j)|0,o=o+Math.imul(O,Q)|0,n=n+Math.imul(M,V)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(k,V)|0,o=o+Math.imul(k,Y)|0,n=n+Math.imul(_,W)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(w,rt)|0,o=o+Math.imul(w,nt)|0,n=n+Math.imul(g,ot)|0,i=(i=i+Math.imul(g,st)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,st)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,lt)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,lt)|0;var It=(l+(n=n+Math.imul(c,ct)|0)|0)+((8191&(i=(i=i+Math.imul(c,ft)|0)+Math.imul(f,ct)|0))<<13)|0;l=((o=o+Math.imul(f,ft)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(F,G),i=(i=Math.imul(F,H))+Math.imul(U,G)|0,o=Math.imul(U,H),n=n+Math.imul(B,j)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,j)|0,o=o+Math.imul(D,Q)|0,n=n+Math.imul(C,V)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(O,V)|0,o=o+Math.imul(O,Y)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(k,W)|0,o=o+Math.imul(k,X)|0,n=n+Math.imul(_,$)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(I,rt)|0,o=o+Math.imul(I,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,st)|0)+Math.imul(w,ot)|0,o=o+Math.imul(w,st)|0,n=n+Math.imul(g,ut)|0,i=(i=i+Math.imul(g,lt)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,lt)|0,n=n+Math.imul(p,ct)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(m,ct)|0,o=o+Math.imul(m,ft)|0;var St=(l+(n=n+Math.imul(c,pt)|0)|0)+((8191&(i=(i=i+Math.imul(c,mt)|0)+Math.imul(f,pt)|0))<<13)|0;l=((o=o+Math.imul(f,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(F,j),i=(i=Math.imul(F,Q))+Math.imul(U,j)|0,o=Math.imul(U,Q),n=n+Math.imul(B,V)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(D,V)|0,o=o+Math.imul(D,Y)|0,n=n+Math.imul(C,W)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,X)|0,n=n+Math.imul(M,$)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(k,$)|0,o=o+Math.imul(k,tt)|0,n=n+Math.imul(_,rt)|0,i=(i=i+Math.imul(_,nt)|0)+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(T,ot)|0,i=(i=i+Math.imul(T,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,lt)|0)+Math.imul(w,ut)|0,o=o+Math.imul(w,lt)|0,n=n+Math.imul(g,ct)|0,i=(i=i+Math.imul(g,ft)|0)+Math.imul(v,ct)|0,o=o+Math.imul(v,ft)|0;var _t=(l+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,mt)|0)+Math.imul(m,pt)|0))<<13)|0;l=((o=o+Math.imul(m,mt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(F,V),i=(i=Math.imul(F,Y))+Math.imul(U,V)|0,o=Math.imul(U,Y),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,W)|0,o=o+Math.imul(D,X)|0,n=n+Math.imul(C,$)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(k,rt)|0,o=o+Math.imul(k,nt)|0,n=n+Math.imul(_,ot)|0,i=(i=i+Math.imul(_,st)|0)+Math.imul(N,ot)|0,o=o+Math.imul(N,st)|0,n=n+Math.imul(T,ut)|0,i=(i=i+Math.imul(T,lt)|0)+Math.imul(I,ut)|0,o=o+Math.imul(I,lt)|0,n=n+Math.imul(A,ct)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(w,ct)|0,o=o+Math.imul(w,ft)|0;var Nt=(l+(n=n+Math.imul(g,pt)|0)|0)+((8191&(i=(i=i+Math.imul(g,mt)|0)+Math.imul(v,pt)|0))<<13)|0;l=((o=o+Math.imul(v,mt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(F,W),i=(i=Math.imul(F,X))+Math.imul(U,W)|0,o=Math.imul(U,X),n=n+Math.imul(B,$)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(D,$)|0,o=o+Math.imul(D,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(O,rt)|0,o=o+Math.imul(O,nt)|0,n=n+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(k,ot)|0,o=o+Math.imul(k,st)|0,n=n+Math.imul(_,ut)|0,i=(i=i+Math.imul(_,lt)|0)+Math.imul(N,ut)|0,o=o+Math.imul(N,lt)|0,n=n+Math.imul(T,ct)|0,i=(i=i+Math.imul(T,ft)|0)+Math.imul(I,ct)|0,o=o+Math.imul(I,ft)|0;var xt=(l+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,mt)|0)+Math.imul(w,pt)|0))<<13)|0;l=((o=o+Math.imul(w,mt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(F,$),i=(i=Math.imul(F,tt))+Math.imul(U,$)|0,o=Math.imul(U,tt),n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(D,rt)|0,o=o+Math.imul(D,nt)|0,n=n+Math.imul(C,ot)|0,i=(i=i+Math.imul(C,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,n=n+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,lt)|0)+Math.imul(k,ut)|0,o=o+Math.imul(k,lt)|0,n=n+Math.imul(_,ct)|0,i=(i=i+Math.imul(_,ft)|0)+Math.imul(N,ct)|0,o=o+Math.imul(N,ft)|0;var Mt=(l+(n=n+Math.imul(T,pt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(I,pt)|0))<<13)|0;l=((o=o+Math.imul(I,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(F,rt),i=(i=Math.imul(F,nt))+Math.imul(U,rt)|0,o=Math.imul(U,nt),n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,st)|0)+Math.imul(D,ot)|0,o=o+Math.imul(D,st)|0,n=n+Math.imul(C,ut)|0,i=(i=i+Math.imul(C,lt)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,lt)|0,n=n+Math.imul(M,ct)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(k,ct)|0,o=o+Math.imul(k,ft)|0;var kt=(l+(n=n+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,mt)|0)+Math.imul(N,pt)|0))<<13)|0;l=((o=o+Math.imul(N,mt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(F,ot),i=(i=Math.imul(F,st))+Math.imul(U,ot)|0,o=Math.imul(U,st),n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,lt)|0)+Math.imul(D,ut)|0,o=o+Math.imul(D,lt)|0,n=n+Math.imul(C,ct)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(O,ct)|0,o=o+Math.imul(O,ft)|0;var Pt=(l+(n=n+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,mt)|0)+Math.imul(k,pt)|0))<<13)|0;l=((o=o+Math.imul(k,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(F,ut),i=(i=Math.imul(F,lt))+Math.imul(U,ut)|0,o=Math.imul(U,lt),n=n+Math.imul(B,ct)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(D,ct)|0,o=o+Math.imul(D,ft)|0;var Ct=(l+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,mt)|0)+Math.imul(O,pt)|0))<<13)|0;l=((o=o+Math.imul(O,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(F,ct),i=(i=Math.imul(F,ft))+Math.imul(U,ct)|0,o=Math.imul(U,ft);var Ot=(l+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,mt)|0)+Math.imul(D,pt)|0))<<13)|0;l=((o=o+Math.imul(D,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var Rt=(l+(n=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,mt))+Math.imul(U,pt)|0))<<13)|0;return l=((o=Math.imul(U,mt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=yt,u[1]=gt,u[2]=vt,u[3]=bt,u[4]=At,u[5]=wt,u[6]=Et,u[7]=Tt,u[8]=It,u[9]=St,u[10]=_t,u[11]=Nt,u[12]=xt,u[13]=Mt,u[14]=kt,u[15]=Pt,u[16]=Ct,u[17]=Ot,u[18]=Rt,0!==l&&(u[19]=l,r.length++),r};function y(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.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,e.length-1),l=Math.max(0,o-t.length+1);l<=u;l++){var h=(0|t.words[o-l])*(0|e.words[l]),c=67108863&h;a=67108863&(c=c+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(c>>>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(t,e,r){return y(t,e,r)}Math.imul||(m=p),i.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?m(this,t,e):r<63?p(this,t,e):r<1024?y(this,t,e):g(this,t,e)},i.prototype.mul=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},i.prototype.mulf=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),g(this,t,e)},i.prototype.imul=function(t){return this.clone().mulTo(t,this)},i.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,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++),e?this.ineg():this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++)e[r]=t.words[r/26|0]>>>r%26&1;return e}(t);if(0===e.length)return new i(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var o=r.sqr();n<e.length;n++,o=o.sqr())0!==e[n]&&(r=r.mul(o));return r},i.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o;this.words[e]=(0|this.words[e])-a<<n|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},i.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-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 h=0;for(l=this.length-1;l>=0&&(0!==h||l>=i);l--){var c=0|this.words[l];this.words[l]=h<<26-o|c>>>o,h=c&a}return u&&0!==h&&(u.words[u.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.ushln=function(t){return this.clone().iushln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.ushrn=function(t){return this.clone().iushrn(t)},i.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return!(this.length<=n||!(this.words[n]&1<<e))},i.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;return r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n?this:(0!==e&&n++,this.length=Math.min(n,this.length),0!==e&&(this.words[this.length-1]&=67108863^67108863>>>e<<e),this._strip())},i.prototype.maskn=function(t){return this.clone().imaskn(t)},i.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},i.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},i.prototype.addn=function(t){return this.clone().iaddn(t)},i.prototype.subn=function(t){return this.clone().isubn(t)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(t,e,n){var i,o;this._expand(t.length+n);var s=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+s;var a=(0|t.words[i])*e;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(t,e){var r,n=this.clone(),o=t,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"!==e){(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 h=n.clone()._ishlnsubmul(o,1,u);0===h.negative&&(n=h,a&&(a.words[u]=1));for(var c=u-1;c>=0;c--){var f=67108864*(0|n.words[o.length+c])+(0|n.words[o.length+c-1]);for(f=Math.min(f/s|0,67108863),n._ishlnsubmul(o,f,c);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(o,1,c),n.isZero()||(n.negative^=1);a&&(a.words[c]=f)}return a&&a._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},i.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(o=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:o,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(o=a.div.neg()),{div:o,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new i(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modrn(t.words[0]))}:this._wordDiv(t,e);var o,s,a},i.prototype.div=function(t){return this.divmod(t,"div",!1).div},i.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},i.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%t;return e?-i:i},i.prototype.modn=function(t){return this.modrn(t)},i.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o=new i(1),s=new i(0),a=new i(0),u=new i(1),l=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++l;for(var h=n.clone(),c=e.clone();!e.isZero();){for(var f=0,d=1;0==(e.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(o.isOdd()||s.isOdd())&&(o.iadd(h),s.isub(c)),o.iushrn(1),s.iushrn(1);for(var p=0,m=1;0==(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(h),u.isub(c)),a.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(a),s.isub(u)):(n.isub(e),a.isub(o),u.isub(s))}return{a:a,b:u,gcd:n.iushln(l)}},i.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var o,s=new i(1),a=new i(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,h=1;0==(e.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(e.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var c=0,f=1;0==(n.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(n.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(o=0===e.cmpn(1)?s:a).cmpn(0)<0&&o.iadd(t),o},i.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},i.prototype.invm=function(t){return this.egcd(t).a.umod(t)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;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(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){n<i?e=-1:n>i&&(e=1);break}}return e},i.prototype.gtn=function(t){return 1===this.cmpn(t)},i.prototype.gt=function(t){return 1===this.cmp(t)},i.prototype.gten=function(t){return this.cmpn(t)>=0},i.prototype.gte=function(t){return this.cmp(t)>=0},i.prototype.ltn=function(t){return-1===this.cmpn(t)},i.prototype.lt=function(t){return-1===this.cmp(t)},i.prototype.lten=function(t){return this.cmpn(t)<=0},i.prototype.lte=function(t){return this.cmp(t)<=0},i.prototype.eqn=function(t){return 0===this.cmpn(t)},i.prototype.eq=function(t){return 0===this.cmp(t)},i.red=function(t){return new I(t)},i.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},i.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},i.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},i.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},i.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},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(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function A(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function T(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(t){if("string"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){I.call(this,t),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)}b.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<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},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},n(A,b),A.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i<n;i++)e.words[i]=t.words[i];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var o=t.words[9];for(e.words[e.length++]=o&r,i=10;i<t.length;i++){var s=0|t.words[i];t.words[i-10]=(s&r)<<4|o>>>22,o=s}t.words[i-10]=o>>>=22,t.length-=0===o&&t.length>10?10:9},A.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];t.words[r]=67108863&(e+=977*n),e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},n(w,b),n(E,b),n(T,b),T.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,i=67108863&n;n>>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function(t){if(v[t])return v[t];var e;if("k256"===t)e=new A;else if("p224"===t)e=new w;else if("p192"===t)e=new E;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new T}return v[t]=e,e},I.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},I.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},I.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(l(t,t.umod(this.m)._forceRed(this)),t)},I.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},I.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},I.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},I.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},I.prototype.isqr=function(t){return this.imul(t,t.clone())},I.prototype.sqr=function(t){return this.mul(t,t)},I.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new i(1)).iushrn(2);return this.pow(t,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),h=this.m.bitLength();for(h=new i(2*h*h).toRed(this);0!==this.pow(h,l).cmp(u);)h.redIAdd(u);for(var c=this.pow(h,o),f=this.pow(t,o.addn(1).iushrn(1)),d=this.pow(t,o),p=s;0!==d.cmp(a);){for(var m=d,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y<p);var g=this.pow(c,new i(1).iushln(p-y-1));f=f.redMul(g),c=g.redSqr(),d=d.redMul(c),p=y}return f},I.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},I.prototype.pow=function(t,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var o=r[0],s=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),n=e.length-1;n>=0;n--){for(var l=e.words[n],h=u-1;h>=0;h--){var c=l>>h&1;o!==r[0]&&(o=this.sqr(o)),0!==c||0!==s?(s<<=1,s|=c,(4==++a||0===n&&0===h)&&(o=this.mul(o,r[s]),a=0,s=0)):a=0}u=26}return o},I.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},I.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new S(t)},n(S,I),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),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)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new i(0)._forceRed(this);var r=t.mul(e),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)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,Ne)});let Pe=!1,Ce=!1;const Oe={debug:1,default:2,info:2,warning:3,error:4,off:5};let Re=Oe.default,Be=null;const De=function(){try{const t=[];if(["NFD","NFC","NFKD","NFKC"].forEach(e=>{try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(r){t.push(e)}}),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();var Le,Fe;!function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(Le||(Le={})),function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",t.TRANSACTION_REPLACED="TRANSACTION_REPLACED",t.ACTION_REJECTED="ACTION_REJECTED"}(Fe||(Fe={}));const Ue="0123456789abcdef";class qe{constructor(t){Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==Oe[r]&&this.throwArgumentError("invalid log level name","logLevel",t),Re>Oe[r]||console.log.apply(console,e)}debug(...t){this._log(qe.levels.DEBUG,t)}info(...t){this._log(qe.levels.INFO,t)}warn(...t){this._log(qe.levels.WARNING,t)}makeError(t,e,r){if(Ce)return this.makeError("censored error",e,{});e||(e=qe.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach(t=>{const e=r[t];try{if(e instanceof Uint8Array){let r="";for(let t=0;t<e.length;t++)r+=Ue[e[t]>>4],r+=Ue[15&e[t]];n.push(t+"=Uint8Array(0x"+r+")")}else n.push(t+"="+JSON.stringify(e))}catch(e){n.push(t+"="+JSON.stringify(r[t].toString()))}}),n.push(`code=${e}`),n.push(`version=${this.version}`);const i=t;let o="";switch(e){case Fe.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Fe.CALL_EXCEPTION:case Fe.INSUFFICIENT_FUNDS:case Fe.MISSING_NEW:case Fe.NONCE_EXPIRED:case Fe.REPLACEMENT_UNDERPRICED:case Fe.TRANSACTION_REPLACED:case Fe.UNPREDICTABLE_GAS_LIMIT:o=e}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),n.length&&(t+=" ("+n.join(", ")+")");const s=new Error(t);return s.reason=i,s.code=e,Object.keys(r).forEach(function(t){s[t]=r[t]}),s}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(t,e,r){return this.throwError(t,qe.errors.INVALID_ARGUMENT,{argument:e,value:r})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(t){De&&this.throwError("platform missing String.prototype.normalize",qe.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:De})}checkSafeUint53(t,e){"number"==typeof t&&(null==e&&(e="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(e,qe.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(e,qe.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,e,r){r=r?": "+r:"",t<e&&this.throwError("missing argument"+r,qe.errors.MISSING_ARGUMENT,{count:t,expectedCount:e}),t>e&&this.throwError("too many arguments"+r,qe.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:e})}checkNew(t,e){t!==Object&&null!=t||this.throwError("missing new",qe.errors.MISSING_NEW,{name:e.name})}checkAbstract(t,e){t===e?this.throwError("cannot instantiate abstract class "+JSON.stringify(e.name)+" directly; use a sub-class",qe.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",qe.errors.MISSING_NEW,{name:e.name})}static globalLogger(){return Be||(Be=new qe("logger/5.7.0")),Be}static setCensorship(t,e){if(!t&&e&&this.globalLogger().throwError("cannot permanently disable censorship",qe.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Pe){if(!t)return;this.globalLogger().throwError("error censorship permanent",qe.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Ce=!!t,Pe=!!e}static setLogLevel(t){const e=Oe[t.toLowerCase()];null!=e?Re=e:qe.globalLogger().warn("invalid log level - "+t)}static from(t){return new qe(t)}}qe.errors=Fe,qe.levels=Le;const Ge=new qe("bytes/5.7.0");function He(t){return!!t.toHexString}function ze(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return ze(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function je(t){return We(t)&&!(t.length%2)||Ke(t)}function Qe(t){return"number"==typeof t&&t==t&&t%1==0}function Ke(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if("string"==typeof t)return!1;if(!Qe(t.length)||t.length<0)return!1;for(let e=0;e<t.length;e++){const r=t[e];if(!Qe(r)||r<0||r>=256)return!1}return!0}function Ve(t,e){if(e||(e={}),"number"==typeof t){Ge.checkSafeUint53(t,"invalid arrayify value");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),ze(new Uint8Array(e))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),He(t)&&(t=t.toHexString()),We(t)){let r=t.substring(2);r.length%2&&("left"===e.hexPad?r="0"+r:"right"===e.hexPad?r+="0":Ge.throwArgumentError("hex data is odd-length","value",t));const n=[];for(let t=0;t<r.length;t+=2)n.push(parseInt(r.substring(t,t+2),16));return ze(new Uint8Array(n))}return Ke(t)?ze(new Uint8Array(t)):Ge.throwArgumentError("invalid arrayify value","value",t)}function Ye(t){const e=t.map(t=>Ve(t)),r=e.reduce((t,e)=>t+e.length,0),n=new Uint8Array(r);return e.reduce((t,e)=>(n.set(e,t),t+e.length),0),ze(n)}function Je(t){let e=Ve(t);if(0===e.length)return e;let r=0;for(;r<e.length&&0===e[r];)r++;return r&&(e=e.slice(r)),e}function We(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}const Xe="0123456789abcdef";function Ze(t,e){if(e||(e={}),"number"==typeof t){Ge.checkSafeUint53(t,"invalid hexlify value");let e="";for(;t;)e=Xe[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e="0"+e),"0x"+e):"0x00"}if("bigint"==typeof t)return(t=t.toString(16)).length%2?"0x0"+t:"0x"+t;if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),He(t))return t.toHexString();if(We(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":Ge.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(Ke(t)){let e="0x";for(let r=0;r<t.length;r++){let n=t[r];e+=Xe[(240&n)>>4]+Xe[15&n]}return e}return Ge.throwArgumentError("invalid hexlify value","value",t)}function $e(t){if("string"!=typeof t)t=Ze(t);else if(!We(t)||t.length%2)return null;return(t.length-2)/2}function tr(t,e,r){return"string"!=typeof t?t=Ze(t):(!We(t)||t.length%2)&&Ge.throwArgumentError("invalid hexData","value",t),e=2+2*e,null!=r?"0x"+t.substring(e,2+2*r):"0x"+t.substring(e)}function er(t){let e="0x";return t.forEach(t=>{e+=Ze(t).substring(2)}),e}function rr(t){const e=function(t){"string"!=typeof t&&(t=Ze(t)),We(t)||Ge.throwArgumentError("invalid hex string","value",t),t=t.substring(2);let e=0;for(;e<t.length&&"0"===t[e];)e++;return"0x"+t.substring(e)}(Ze(t,{hexPad:"left"}));return"0x"===e?"0x0":e}function nr(t,e){for("string"!=typeof t?t=Ze(t):We(t)||Ge.throwArgumentError("invalid hex string","value",t),t.length>2*e+2&&Ge.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}function ir(t){const e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(je(t)){let r=Ve(t);64===r.length?(e.v=27+(r[32]>>7),r[32]&=127,e.r=Ze(r.slice(0,32)),e.s=Ze(r.slice(32,64))):65===r.length?(e.r=Ze(r.slice(0,32)),e.s=Ze(r.slice(32,64)),e.v=r[64]):Ge.throwArgumentError("invalid signature string","signature",t),e.v<27&&(0===e.v||1===e.v?e.v+=27:Ge.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=Ze(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){const r=function(t,e){(t=Ve(t)).length>e&&Ge.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(e);return r.set(t,e-t.length),ze(r)}(Ve(e._vs),32);e._vs=Ze(r);const n=r[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=n:e.recoveryParam!==n&&Ge.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),r[0]&=127;const i=Ze(r);null==e.s?e.s=i:e.s!==i&&Ge.throwArgumentError("signature v mismatch _vs","signature",t)}null==e.recoveryParam?null==e.v?Ge.throwArgumentError("signature missing v and recoveryParam","signature",t):e.recoveryParam=0===e.v||1===e.v?e.v:1-e.v%2:null==e.v?e.v=27+e.recoveryParam:e.recoveryParam!==(0===e.v||1===e.v?e.v:1-e.v%2)&&Ge.throwArgumentError("signature recoveryParam mismatch v","signature",t),null!=e.r&&We(e.r)?e.r=nr(e.r,32):Ge.throwArgumentError("signature missing or invalid r","signature",t),null!=e.s&&We(e.s)?e.s=nr(e.s,32):Ge.throwArgumentError("signature missing or invalid s","signature",t);const r=Ve(e.s);r[0]>=128&&Ge.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(r[0]|=128);const n=Ze(r);e._vs&&(We(e._vs)||Ge.throwArgumentError("signature invalid _vs","signature",t),e._vs=nr(e._vs,32)),null==e._vs?e._vs=n:e._vs!==n&&Ge.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}var or=ke.BN;const sr=new qe("bignumber/5.7.0"),ar={},ur=9007199254740991;let lr=!1;class hr{constructor(t,e){t!==ar&&sr.throwError("cannot call constructor directly; use BigNumber.from",qe.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return fr(dr(this).fromTwos(t))}toTwos(t){return fr(dr(this).toTwos(t))}abs(){return"-"===this._hex[0]?hr.from(this._hex.substring(1)):this}add(t){return fr(dr(this).add(dr(t)))}sub(t){return fr(dr(this).sub(dr(t)))}div(t){return hr.from(t).isZero()&&pr("division-by-zero","div"),fr(dr(this).div(dr(t)))}mul(t){return fr(dr(this).mul(dr(t)))}mod(t){const e=dr(t);return e.isNeg()&&pr("division-by-zero","mod"),fr(dr(this).umod(e))}pow(t){const e=dr(t);return e.isNeg()&&pr("negative-power","pow"),fr(dr(this).pow(e))}and(t){const e=dr(t);return(this.isNegative()||e.isNeg())&&pr("unbound-bitwise-result","and"),fr(dr(this).and(e))}or(t){const e=dr(t);return(this.isNegative()||e.isNeg())&&pr("unbound-bitwise-result","or"),fr(dr(this).or(e))}xor(t){const e=dr(t);return(this.isNegative()||e.isNeg())&&pr("unbound-bitwise-result","xor"),fr(dr(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&pr("negative-width","mask"),fr(dr(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&pr("negative-width","shl"),fr(dr(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&pr("negative-width","shr"),fr(dr(this).shrn(t))}eq(t){return dr(this).eq(dr(t))}lt(t){return dr(this).lt(dr(t))}lte(t){return dr(this).lte(dr(t))}gt(t){return dr(this).gt(dr(t))}gte(t){return dr(this).gte(dr(t))}isNegative(){return"-"===this._hex[0]}isZero(){return dr(this).isZero()}toNumber(){try{return dr(this).toNumber()}catch(t){pr("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return sr.throwError("this platform does not support BigInt",qe.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?lr||(lr=!0,sr.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):sr.throwError(16===arguments[0]?"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()":"BigNumber.toString does not accept parameters",qe.errors.UNEXPECTED_ARGUMENT,{})),dr(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:"BigNumber",hex:this.toHexString()}}static from(t){if(t instanceof hr)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new hr(ar,cr(t)):t.match(/^-?[0-9]+$/)?new hr(ar,cr(new or(t))):sr.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&pr("underflow","BigNumber.from",t),(t>=ur||t<=-ur)&&pr("overflow","BigNumber.from",t),hr.from(String(t));const e=t;if("bigint"==typeof e)return hr.from(e.toString());if(Ke(e))return hr.from(Ze(e));if(e)if(e.toHexString){const t=e.toHexString();if("string"==typeof t)return hr.from(t)}else{let t=e._hex;if(null==t&&"BigNumber"===e.type&&(t=e.hex),"string"==typeof t&&(We(t)||"-"===t[0]&&We(t.substring(1))))return hr.from(t)}return sr.throwArgumentError("invalid BigNumber value","value",t)}static isBigNumber(t){return!(!t||!t._isBigNumber)}}function cr(t){if("string"!=typeof t)return cr(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&sr.throwArgumentError("invalid hex","value",t),"0x00"===(t=cr(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function fr(t){return hr.from(cr(t))}function dr(t){const e=hr.from(t).toHexString();return new or("-"===e[0]?"-"+e.substring(3):e.substring(2),16)}function pr(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),sr.throwError(t,qe.errors.NUMERIC_FAULT,n)}var mr=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const yr=new qe("properties/5.7.0");function gr(t,e,r){Object.defineProperty(t,e,{enumerable:!0,value:r,writable:!1})}function vr(t,e){for(let r=0;r<32;r++){if(t[e])return t[e];if(!t.prototype||"object"!=typeof t.prototype)break;t=Object.getPrototypeOf(t.prototype).constructor}return null}function br(t){return mr(this,void 0,void 0,function*(){const e=Object.keys(t).map(e=>Promise.resolve(t[e]).then(t=>({key:e,value:t})));return(yield Promise.all(e)).reduce((t,e)=>(t[e.key]=e.value,t),{})})}function Ar(t){const e={};for(const r in t)e[r]=t[r];return e}const wr={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Er(t){if(null==t||wr[typeof t])return!0;if(Array.isArray(t)||"object"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let r=0;r<e.length;r++){let n=null;try{n=t[e[r]]}catch(t){continue}if(!Er(n))return!1}return!0}return yr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function Tr(t){if(Er(t))return t;if(Array.isArray(t))return Object.freeze(t.map(t=>Ir(t)));if("object"==typeof t){const e={};for(const r in t){const n=t[r];void 0!==n&&gr(e,r,Ir(n))}return e}return yr.throwArgumentError("Cannot deepCopy "+typeof t,"object",t)}function Ir(t){return Tr(t)}class Sr{constructor(t){for(const e in t)this[e]=Ir(t[e])}}const _r=new qe("abstract-provider/5.7.0");class Nr extends Sr{static isForkEvent(t){return!(!t||!t._isForkEvent)}}class xr{constructor(){_r.checkAbstract(new.target,xr),gr(this,"_isProvider",!0)}getFeeData(){return t=this,r=function*(){const{block:t,gasPrice:e}=yield br({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch(t=>null)});let r=null,n=null,i=null;return t&&t.baseFeePerGas&&(r=t.baseFeePerGas,i=hr.from("1500000000"),n=t.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:i,gasPrice:e}},new((e=void 0)||(e=Promise))(function(n,i){function o(t){try{a(r.next(t))}catch(t){i(t)}}function s(t){try{a(r.throw(t))}catch(t){i(t)}}function a(t){var r;t.done?n(t.value):(r=t.value,r instanceof e?r:new e(function(t){t(r)})).then(o,s)}a((r=r.apply(t,[])).next())});var t,e,r}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}}const Mr=new qe("networks/5.7.1");function kr(t){const e=function(e,r){null==r&&(r={});const n=[];if(e.InfuraProvider&&"-"!==r.infura)try{n.push(new e.InfuraProvider(t,r.infura))}catch(t){}if(e.EtherscanProvider&&"-"!==r.etherscan)try{n.push(new e.EtherscanProvider(t,r.etherscan))}catch(t){}if(e.AlchemyProvider&&"-"!==r.alchemy)try{n.push(new e.AlchemyProvider(t,r.alchemy))}catch(t){}if(e.PocketProvider&&"-"!==r.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const o=new e.PocketProvider(t,r.pocket);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}}if(e.CloudflareProvider&&"-"!==r.cloudflare)try{n.push(new e.CloudflareProvider(t))}catch(t){}if(e.AnkrProvider&&"-"!==r.ankr)try{const i=["ropsten"],o=new e.AnkrProvider(t,r.ankr);o.network&&-1===i.indexOf(o.network.name)&&n.push(o)}catch(t){}if(0===n.length)return null;if(e.FallbackProvider){let i=1;return null!=r.quorum?i=r.quorum:"homestead"===t&&(i=2),new e.FallbackProvider(n,i)}return n[0]};return e.renetwork=function(t){return kr(t)},e}function Pr(t,e){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(t,e):null};return r.renetwork=function(e){return Pr(t,e)},r}const Cr={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:kr("homestead")},Or={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:kr("ropsten")},Rr={chainId:63,name:"classicMordor",_defaultProvider:Pr("https://www.ethercluster.com/mordor","classicMordor")},Br={unspecified:{chainId:0,name:"unspecified"},homestead:Cr,mainnet:Cr,morden:{chainId:2,name:"morden"},ropsten:Or,testnet:Or,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:kr("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:kr("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:kr("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:kr("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:Pr("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:Rr,classicTestnet:Rr,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Pr("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:kr("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:kr("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function Dr(t){t=atob(t);const e=[];for(let r=0;r<t.length;r++)e.push(t.charCodeAt(r));return Ve(e)}function Lr(t){t=Ve(t);let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}class Fr{constructor(t){gr(this,"alphabet",t),gr(this,"base",t.length),gr(this,"_alphabetMap",{}),gr(this,"_leader",t.charAt(0));for(let e=0;e<t.length;e++)this._alphabetMap[t.charAt(e)]=e}encode(t){let e=Ve(t);if(0===e.length)return"";let r=[0];for(let t=0;t<e.length;++t){let n=e[t];for(let t=0;t<r.length;++t)n+=r[t]<<8,r[t]=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 t=0;0===e[t]&&t<e.length-1;++t)n+=this._leader;for(let t=r.length-1;t>=0;--t)n+=this.alphabet[r[t]];return n}decode(t){if("string"!=typeof t)throw new TypeError("Expected String");let e=[];if(0===t.length)return new Uint8Array(e);e.push(0);for(let r=0;r<t.length;r++){let n=this._alphabetMap[t[r]];if(void 0===n)throw new Error("Non-base"+this.base+" character");let i=n;for(let t=0;t<e.length;++t)i+=e[t]*this.base,e[t]=255&i,i>>=8;for(;i>0;)e.push(255&i),i>>=8}for(let r=0;t[r]===this._leader&&r<t.length-1;++r)e.push(0);return Ve(new Uint8Array(e.reverse()))}}new Fr("abcdefghijklmnopqrstuvwxyz234567");const Ur=new Fr("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),qr=/*#__PURE__*/hr.from(0);var Gr=xe(function(t){!function(){var e="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=Ne:i&&(n=self);var o=!n.JS_SHA3_NO_COMMON_JS&&t.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],h=[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],c=[224,256,384,512],f=[128,256],d=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var m=function(t,e,r){return function(n){return new k(t,e,t).update(n)[r]()}},y=function(t,e,r){return function(n,i){return new k(t,e,i).update(n)[r]()}},g=function(t,e,r){return function(e,n,i,o){return E["cshake"+t].update(e,n,i,o)[r]()}},v=function(t,e,r){return function(e,n,i,o){return E["kmac"+t].update(e,n,i,o)[r]()}},b=function(t,e,r,n){for(var i=0;i<d.length;++i){var o=d[i];t[o]=e(r,n,o)}return t},A=function(t,e){var r=m(t,e,"hex");return r.create=function(){return new k(t,e,t)},r.update=function(t){return r.create().update(t)},b(r,m,t,e)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:c,createMethod:A},{name:"sha3",padding:[6,1536,393216,100663296],bits:c,createMethod:A},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(t,e){var r=y(t,e,"hex");return r.create=function(r){return new k(t,e,r)},r.update=function(t,e){return r.create(e).update(t)},b(r,y,t,e)}},{name:"cshake",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=g(t,0,"hex");return n.create=function(n,i,o){return i||o?new k(t,e,n).bytepad([i,o],r):E["shake"+t].create(n)},n.update=function(t,e,r,i){return n.create(e,r,i).update(t)},b(n,g,t,e)}},{name:"kmac",padding:u,bits:f,createMethod:function(t,e){var r=p[t],n=v(t,0,"hex");return n.create=function(n,i,o){return new P(t,e,i).bytepad(["KMAC",o],r).bytepad([n],r)},n.update=function(t,e,r,i){return n.create(t,r,i).update(e)},b(n,v,t,e)}}],E={},T=[],I=0;I<w.length;++I)for(var S=w[I],_=S.bits,N=0;N<_.length;++N){var x=S.name+"_"+_[N];if(T.push(x),E[x]=S.createMethod(_[N],S.padding),"sha3"!==S.name){var M=S.name+_[N];T.push(M),E[M]=E[x]}}function k(t,e,r){this.blocks=[],this.s=[],this.padding=e,this.outputBits=r,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<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 P(t,e,r){k.call(this,t,e,r)}k.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var i,o,a=this.blocks,u=this.byteCount,h=t.length,c=this.blockCount,f=0,d=this.s;f<h;){if(this.reset)for(this.reset=!1,a[0]=this.block,i=1;i<c+1;++i)a[i]=0;if(r)for(i=this.start;f<h&&i<u;++f)a[i>>2]|=t[f]<<l[3&i++];else for(i=this.start;f<h&&i<u;++f)(o=t.charCodeAt(f))<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&t.charCodeAt(++f)),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[c],i=0;i<c;++i)d[i]^=a[i];C(d),this.reset=!0}else this.start=i}return this},k.prototype.encode=function(t,e){var r=255&t,n=1,i=[r];for(r=255&(t>>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},k.prototype.encodeString=function(t){var r,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(e);if(null===t)throw new Error(e);if(s&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||s&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}var i=0;if(r)i=t.length;else for(var o=0;o<t.length;++o){var a=t.charCodeAt(o);a<128?i+=1:a<2048?i+=2:a<55296||a>=57344?i+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++o)),i+=4)}return i+=this.encode(8*i),this.update(t),i},k.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n<t.length;++n)r+=this.encodeString(t[n]);var i=[];return i.length=e-r%e,this.update(i),this},k.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex,r=this.blockCount,n=this.s;if(t[e>>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e<r+1;++e)t[e]=0;for(t[r-1]|=2147483648,e=0;e<r;++e)n[e]^=t[e];C(n)}},k.prototype.toString=k.prototype.hex=function(){this.finalize();for(var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,u="";s<n;){for(o=0;o<e&&s<n;++o,++s)u+=a[(t=r[o])>>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];s%e==0&&(C(r),o=0)}return i&&(u+=a[(t=r[o])>>4&15]+a[15&t],i>1&&(u+=a[t>>12&15]+a[t>>8&15]),i>2&&(u+=a[t>>20&15]+a[t>>16&15])),u},k.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,s=0,a=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var u=new Uint32Array(t);s<n;){for(o=0;o<e&&s<n;++o,++s)u[s]=r[o];s%e==0&&C(r)}return i&&(u[o]=r[o],t=t.slice(0,a)),t},k.prototype.buffer=k.prototype.arrayBuffer,k.prototype.digest=k.prototype.array=function(){this.finalize();for(var t,e,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[t=a<<2]=255&(e=n[s]),u[t+1]=e>>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;a%r==0&&C(n)}return o&&(u[t=a<<2]=255&(e=n[s]),o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u},(P.prototype=new k).finalize=function(){return this.encode(this.outputBits,!0),k.prototype.finalize.call(this)};var C=function(t){var e,r,n,i,o,s,a,u,l,c,f,d,p,m,y,g,v,b,A,w,E,T,I,S,_,N,x,M,k,P,C,O,R,B,D,L,F,U,q,G,H,z,j,Q,K,V,Y,J,W,X,Z,$,tt,et,rt,nt,it,ot,st,at,ut,lt,ht;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],u=t[4]^t[14]^t[24]^t[34]^t[44],l=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],f=t[7]^t[17]^t[27]^t[37]^t[47],r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^((a=t[3]^t[13]^t[23]^t[33]^t[43])<<1|(s=t[2]^t[12]^t[22]^t[32]^t[42])>>>31),t[0]^=e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,r=o^(l<<1|u>>>31),t[2]^=e=i^(u<<1|l>>>31),t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,r=a^(f<<1|c>>>31),t[4]^=e=s^(c<<1|f>>>31),t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,r=l^(p<<1|d>>>31),t[6]^=e=u^(d<<1|p>>>31),t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,r=f^(o<<1|i>>>31),t[8]^=e=c^(i<<1|o>>>31),t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,y=t[1],V=t[11]<<4|t[10]>>>28,Y=t[10]<<4|t[11]>>>28,M=t[20]<<3|t[21]>>>29,k=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,z=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,B=t[2]<<1|t[3]>>>31,D=t[3]<<1|t[2]>>>31,v=t[12]<<12|t[13]>>>20,J=t[22]<<10|t[23]>>>22,W=t[23]<<10|t[22]>>>22,P=t[33]<<13|t[32]>>>19,C=t[32]<<13|t[33]>>>19,lt=t[42]<<2|t[43]>>>30,ht=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,L=t[14]<<6|t[15]>>>26,F=t[15]<<6|t[14]>>>26,A=t[24]<<11|t[25]>>>21,X=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,O=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,S=t[6]<<28|t[7]>>>4,_=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,U=t[26]<<25|t[27]>>>7,q=t[27]<<25|t[26]>>>7,w=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,Q=t[8]<<27|t[9]>>>5,K=t[9]<<27|t[8]>>>5,N=t[18]<<20|t[19]>>>12,x=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,G=t[38]<<8|t[39]>>>24,H=t[39]<<8|t[38]>>>24,T=t[48]<<14|t[49]>>>18,I=t[49]<<14|t[48]>>>18,t[0]=(m=t[0])^~(g=t[13]<<12|t[12]>>>20)&(b=t[25]<<11|t[24]>>>21),t[1]=y^~v&A,t[10]=S^~N&M,t[11]=_^~x&k,t[20]=B^~L&U,t[21]=D^~F&q,t[30]=Q^~V&J,t[31]=K^~Y&W,t[40]=et^~nt&ot,t[41]=rt^~it&st,t[2]=g^~b&w,t[3]=v^~A&E,t[12]=N^~M&P,t[13]=x^~k&C,t[22]=L^~U&G,t[23]=F^~q&H,t[32]=V^~J&X,t[33]=Y^~W&Z,t[42]=nt^~ot&at,t[43]=it^~st&ut,t[4]=b^~w&T,t[5]=A^~E&I,t[14]=M^~P&O,t[15]=k^~C&R,t[24]=U^~G&z,t[25]=q^~H&j,t[34]=J^~X&$,t[35]=W^~Z&tt,t[44]=ot^~at&lt,t[45]=st^~ut&ht,t[6]=w^~T&m,t[7]=E^~I&y,t[16]=P^~O&S,t[17]=C^~R&_,t[26]=G^~z&B,t[27]=H^~j&D,t[36]=X^~$&Q,t[37]=Z^~tt&K,t[46]=at^~lt&et,t[47]=ut^~ht&rt,t[8]=T^~m&g,t[9]=I^~y&v,t[18]=O^~S&N,t[19]=R^~_&x,t[28]=z^~B&L,t[29]=j^~D&F,t[38]=$^~Q&V,t[39]=tt^~K&Y,t[48]=lt^~et&nt,t[49]=ht^~rt&it,t[0]^=h[n],t[1]^=h[n+1]};if(o)t.exports=E;else for(I=0;I<T.length;++I)n[T[I]]=E[T[I]]}()});function Hr(t){return"0x"+Gr.keccak_256(Ve(t))}const zr=new qe("strings/5.7.0");var jr,Qr;function Kr(t,e,r,n,i){if(t===Qr.BAD_PREFIX||t===Qr.UNEXPECTED_CONTINUE){let t=0;for(let n=e+1;n<r.length&&r[n]>>6==2;n++)t++;return t}return t===Qr.OVERRUN?r.length-e-1:0}!function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(jr||(jr={})),function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(Qr||(Qr={}));const Vr=Object.freeze({error:function(t,e,r,n,i){return zr.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,"bytes",r)},ignore:Kr,replace:function(t,e,r,n,i){return t===Qr.OVERLONG?(n.push(i),0):(n.push(65533),Kr(t,e,r))}});function Yr(t,e){null==e&&(e=Vr.error),t=Ve(t);const r=[];let n=0;for(;n<t.length;){const i=t[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+=e(128==(192&i)?Qr.UNEXPECTED_CONTINUE:Qr.BAD_PREFIX,n-1,t,r);continue}o=3,s=65535}if(n-1+o>=t.length){n+=e(Qr.OVERRUN,n-1,t,r);continue}let a=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=t[n];if(128!=(192&i)){n+=e(Qr.MISSING_CONTINUE,n,t,r),a=null;break}a=a<<6|63&i,n++}null!==a&&(a>1114111?n+=e(Qr.OUT_OF_RANGE,n-1-o,t,r,a):a>=55296&&a<=57343?n+=e(Qr.UTF16_SURROGATE,n-1-o,t,r,a):a<=s?n+=e(Qr.OVERLONG,n-1-o,t,r,a):r.push(a))}return r}function Jr(t,e=jr.current){e!=jr.current&&(zr.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);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)){e++;const i=t.charCodeAt(e);if(e>=t.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 Ve(r)}function Wr(t,e){return Yr(t,e).map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t)))).join("")}function Xr(t){return Hr(Jr(t))}const Zr="hash/5.7.0";function $r(t,e){null==e&&(e=1);const r=[],n=r.forEach,i=function(t,e){n.call(t,function(t){e>0&&Array.isArray(t)?i(t,e-1):r.push(t)})};return i(t,e),r}function tn(t){return 1&t?~t>>1:t>>1}function en(t,e){let r=Array(t);for(let n=0,i=-1;n<t;n++)r[n]=i+=1+e();return r}function rn(t,e){let r=Array(t);for(let n=0,i=0;n<t;n++)r[n]=i+=tn(e());return r}function nn(t,e){let r=en(t(),t),n=t(),i=en(n,t),o=function(t,e){let r=Array(t);for(let n=0;n<t;n++)r[n]=1+e();return r}(n,t);for(let t=0;t<n;t++)for(let e=0;e<o[t];e++)r.push(i[t]+e);return e?r.map(t=>e[t]):r}function on(t,e,r){let n=Array(t).fill(void 0).map(()=>[]);for(let i=0;i<e;i++)rn(t,r).forEach((t,e)=>n[e].push(t));return n}function sn(t,e){let r=1+e(),n=e(),i=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(r)}return e}(e);return $r(on(i.length,1+t,e).map((t,e)=>{const o=t[0],s=t.slice(1);return Array(i[e]).fill(void 0).map((t,e)=>{let i=e*n;return[o+e*r,s.map(t=>t+i)]})}))}function an(t,e){return on(1+e(),1+t,e).map(t=>[t[0],t.slice(1)])}const un=function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),i=1,o=[0,1];for(let t=1;t<n;t++)o.push(i+=r());let s=r(),a=e;e+=s;let u=0,l=0;function h(){return 0==u&&(l=l<<8|t[e++],u=8),l>>--u&1}const c=Math.pow(2,31),f=c>>>1,d=f>>1,p=c-1;let m=0;for(let t=0;t<31;t++)m=m<<1|h();let y=[],g=0,v=c;for(;;){let t=Math.floor(((m-g+1)*i-1)/v),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t<o[n]?r=n:e=n}if(0==e)break;y.push(e);let s=g+Math.floor(v*o[e]/i),a=g+Math.floor(v*o[e+1]/i)-1;for(;0==((s^a)&f);)m=m<<1&p|h(),s=s<<1&p,a=a<<1&p|1;for(;s&~a&d;)m=m&f|m<<1&p>>>1|h(),s=s<<1^f,a=(a^f)<<1|f|1;g=s,v=1+a-s}let b=n-4;return y.map(e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}})}(Dr("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=="))),ln=new Set(nn(un)),hn=new Set(nn(un)),cn=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(sn(r,t))}for(;;){let r=t()-1;if(r<0)break;e.push(an(r,t))}return function(t){const e={};for(let r=0;r<t.length;r++){const n=t[r];e[n[0]]=n[1]}return e}($r(e))}(un),fn=function(t){let e=nn(t).sort((t,e)=>t-e);return function r(){let n=[];for(;;){let i=nn(t,e);if(0==i.length)break;n.push({set:new Set(i),node:r()})}n.sort((t,e)=>e.set.size-t.set.size);let i=t(),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}}()}(un),dn=45,pn=95;function mn(t){return function(t,e=jr.current){return Yr(Jr(t,e))}(t)}function yn(t){return t.filter(t=>65039!=t)}function gn(t){for(let e of t.split(".")){let t=mn(e);try{for(let e=t.lastIndexOf(pn)-1;e>=0;e--)if(t[e]!==pn)throw new Error("underscore only allowed at start");if(t.length>=4&&t.every(t=>t<128)&&t[2]===dn&&t[3]===dn)throw new Error("invalid label extension")}catch(t){throw new Error(`Invalid label "${e}": ${t.message}`)}}return t}function vn(t,e){var r;let n,i,o=fn,s=[],a=t.length;for(e&&(e.length=0);a;){let u=t[--a];if(o=null===(r=o.branches.find(t=>t.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==t[a-1]&&a--),o.valid&&(n=s.slice(),2==o.valid&&n.splice(1,1),e&&e.push(...t.slice(a).reverse()),t.length=a)}return n}const bn=new qe(Zr),An=new Uint8Array(32);function wn(t){if(0===t.length)throw new Error("invalid ENS name; empty component");return t}function En(t){const e=Jr(function(t){return gn(function(t,e){let r=mn(t).reverse(),n=[];for(;r.length;){let t=vn(r);if(t){n.push(...e(t));continue}let i=r.pop();if(ln.has(i)){n.push(i);continue}if(hn.has(i))continue;let o=cn[i];if(!o)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);n.push(...o)}return gn(function(t){return t.normalize("NFC")}(String.fromCodePoint(...n)))}(t,yn))}(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t<e.length;t++)46===e[t]&&(r.push(wn(e.slice(n,t))),n=t+1);if(n>=e.length)throw new Error("invalid ENS name; empty component");return r.push(wn(e.slice(n))),r}function Tn(t){"string"!=typeof t&&bn.throwArgumentError("invalid ENS name; not a string","name",t);let e=An;const r=En(t);for(;r.length;)e=Hr(Ye([e,Hr(r.pop())]));return Ze(e)}An.fill(0);const In=new qe("rlp/5.7.0");function Sn(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function _n(t,e,r){let n=0;for(let i=0;i<r;i++)n=256*n+t[e+i];return n}function Nn(t){if(Array.isArray(t)){let e=[];if(t.forEach(function(t){e=e.concat(Nn(t))}),e.length<=55)return e.unshift(192+e.length),e;const r=Sn(e.length);return r.unshift(247+r.length),r.concat(e)}je(t)||In.throwArgumentError("RLP object must be BytesLike","object",t);const e=Array.prototype.slice.call(Ve(t));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const r=Sn(e.length);return r.unshift(183+r.length),r.concat(e)}function xn(t){return Ze(Nn(t))}function Mn(t,e,r,n){const i=[];for(;r<e+1+n;){const o=kn(t,r);i.push(o.result),(r+=o.consumed)>e+1+n&&In.throwError("child data too short",qe.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:i}}function kn(t,e){if(0===t.length&&In.throwError("data too short",qe.errors.BUFFER_OVERRUN,{}),t[e]>=248){const r=t[e]-247;e+1+r>t.length&&In.throwError("data short segment too short",qe.errors.BUFFER_OVERRUN,{});const n=_n(t,e+1,r);return e+1+r+n>t.length&&In.throwError("data long segment too short",qe.errors.BUFFER_OVERRUN,{}),Mn(t,e,e+1+r,r+n)}if(t[e]>=192){const r=t[e]-192;return e+1+r>t.length&&In.throwError("data array too short",qe.errors.BUFFER_OVERRUN,{}),Mn(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;e+1+r>t.length&&In.throwError("data array too short",qe.errors.BUFFER_OVERRUN,{});const n=_n(t,e+1,r);return e+1+r+n>t.length&&In.throwError("data array too short",qe.errors.BUFFER_OVERRUN,{}),{consumed:1+r+n,result:Ze(t.slice(e+1+r,e+1+r+n))}}if(t[e]>=128){const r=t[e]-128;return e+1+r>t.length&&In.throwError("data too short",qe.errors.BUFFER_OVERRUN,{}),{consumed:1+r,result:Ze(t.slice(e+1,e+1+r))}}return{consumed:1,result:Ze(t[e])}}function Pn(t){const e=Ve(t),r=kn(e,0);return r.consumed!==e.length&&In.throwArgumentError("invalid rlp data","data",t),r.result}const Cn=new qe("address/5.7.0");function On(t){We(t,20)||Cn.throwArgumentError("invalid address","address",t);const e=(t=t.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=Ve(Hr(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const Rn={};for(let t=0;t<10;t++)Rn[String(t)]=String(t);for(let t=0;t<26;t++)Rn[String.fromCharCode(65+t)]=String(10+t);const Bn=Math.floor(function(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}(9007199254740991));function Dn(t){let e=null;if("string"!=typeof t&&Cn.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=On(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&Cn.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map(t=>Rn[t]).join("");for(;e.length>=Bn;){let t=e.substring(0,Bn);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r="0"+r;return r}(t)&&Cn.throwArgumentError("bad icap checksum","address",t),r=t.substring(4),e=new or(r,36).toString(16);e.length<40;)e="0"+e;e=On("0x"+e)}else Cn.throwArgumentError("invalid address","address",t);var r;return e}const Ln=new qe(Zr),Fn=new Uint8Array(32);Fn.fill(0);const Un=hr.from(-1),qn=hr.from(0),Gn=hr.from(1),Hn=hr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),zn=nr(Gn.toHexString(),32),jn=nr(qn.toHexString(),32),Qn={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Kn=["name","version","chainId","verifyingContract","salt"];function Vn(t){return function(e){return"string"!=typeof e&&Ln.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const Yn={name:Vn("name"),version:Vn("version"),chainId:function(t){try{return hr.from(t).toString()}catch(t){}return Ln.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",t)},verifyingContract:function(t){try{return Dn(t).toLowerCase()}catch(t){}return Ln.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){try{const e=Ve(t);if(32!==e.length)throw new Error("bad length");return Ze(e)}catch(t){}return Ln.throwArgumentError('invalid domain value "salt"',"domain.salt",t)}};function Jn(t){{const e=t.match(/^(u?)int(\d*)$/);if(e){const r=""===e[1],n=parseInt(e[2]||"256");(n%8!=0||n>256||e[2]&&e[2]!==String(n))&&Ln.throwArgumentError("invalid numeric width","type",t);const i=Hn.mask(r?n-1:n),o=r?i.add(Gn).mul(Un):qn;return function(e){const r=hr.from(e);return(r.lt(o)||r.gt(i))&&Ln.throwArgumentError(`value out-of-bounds for ${t}`,"value",e),nr(r.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const r=parseInt(e[1]);return(0===r||r>32||e[1]!==String(r))&&Ln.throwArgumentError("invalid bytes width","type",t),function(e){return Ve(e).length!==r&&Ln.throwArgumentError(`invalid length for ${t}`,"value",e),function(t){const e=Ve(t),r=e.length%32;return r?er([e,Fn.slice(r)]):Ze(e)}(e)}}}switch(t){case"address":return function(t){return nr(Dn(t),32)};case"bool":return function(t){return t?zn:jn};case"bytes":return function(t){return Hr(t)};case"string":return function(t){return Xr(t)}}return null}function Wn(t,e){return`${t}(${e.map(({name:t,type:e})=>e+" "+t).join(",")})`}class Xn{constructor(t){gr(this,"types",Object.freeze(Ir(t))),gr(this,"_encoderCache",{}),gr(this,"_types",{});const e={},r={},n={};Object.keys(t).forEach(t=>{e[t]={},r[t]=[],n[t]={}});for(const n in t){const i={};t[n].forEach(o=>{i[o.name]&&Ln.throwArgumentError(`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,"types",t),i[o.name]=!0;const s=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];s===n&&Ln.throwArgumentError(`circular type reference to ${JSON.stringify(s)}`,"types",t),Jn(s)||(r[s]||Ln.throwArgumentError(`unknown type ${JSON.stringify(s)}`,"types",t),r[s].push(n),e[n][s]=!0)})}const i=Object.keys(r).filter(t=>0===r[t].length);0===i.length?Ln.throwArgumentError("missing primary type","types",t):i.length>1&&Ln.throwArgumentError(`ambiguous primary types or unused types: ${i.map(t=>JSON.stringify(t)).join(", ")}`,"types",t),gr(this,"primaryType",i[0]),function i(o,s){s[o]&&Ln.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",t),s[o]=!0,Object.keys(e[o]).forEach(t=>{r[t]&&(i(t,s),Object.keys(s).forEach(e=>{n[e][t]=!0}))}),delete s[o]}(this.primaryType,{});for(const e in n){const r=Object.keys(n[e]);r.sort(),this._types[e]=Wn(e,t[e])+r.map(e=>Wn(e,t[e])).join("")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=Jn(t);if(e)return e}const e=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(e){const t=e[1],r=this.getEncoder(t),n=parseInt(e[3]);return e=>{n>=0&&e.length!==n&&Ln.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e);let i=e.map(r);return this._types[t]&&(i=i.map(Hr)),Hr(er(i))}}const r=this.types[t];if(r){const e=Xr(this._types[t]);return t=>{const n=r.map(({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this._types[r]?Hr(n):n});return n.unshift(e),er(n)}}return Ln.throwArgumentError(`unknown type: ${t}`,"type",t)}encodeType(t){const e=this._types[t];return e||Ln.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return Hr(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(Jn(t))return r(t,e);const n=t.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const t=n[1],i=parseInt(n[3]);return i>=0&&e.length!==i&&Ln.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e),e.map(e=>this._visit(t,e,r))}const i=this.types[t];return i?i.reduce((t,{name:n,type:i})=>(t[n]=this._visit(i,e[n],r),t),{}):Ln.throwArgumentError(`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Xn(t)}static getPrimaryType(t){return Xn.from(t).primaryType}static hashStruct(t,e,r){return Xn.from(e).hashStruct(t,r)}static hashDomain(t){const e=[];for(const r in t){const n=Qn[r];n||Ln.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",t),e.push({name:r,type:n})}return e.sort((t,e)=>Kn.indexOf(t.name)-Kn.indexOf(e.name)),Xn.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,r){return er(["0x1901",Xn.hashDomain(t),Xn.from(e).hash(r)])}static hash(t,e,r){return Hr(Xn.encode(t,e,r))}static resolveNames(t,e,r,n){return i=this,s=function*(){t=Ar(t);const i={};t.verifyingContract&&!We(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const o=Xn.from(e);o.visit(r,(t,e)=>("address"!==t||We(e,20)||(i[e]="0x"),e));for(const t in i)i[t]=yield n(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),r=o.visit(r,(t,e)=>"address"===t&&i[e]?i[e]:e),{domain:t,value:r}},new((o=void 0)||(o=Promise))(function(t,e){function r(t){try{a(s.next(t))}catch(t){e(t)}}function n(t){try{a(s.throw(t))}catch(t){e(t)}}function a(e){var i;e.done?t(e.value):(i=e.value,i instanceof o?i:new o(function(t){t(i)})).then(r,n)}a((s=s.apply(i,[])).next())});var i,o,s}static getPayload(t,e,r){Xn.hashDomain(t);const n={},i=[];Kn.forEach(e=>{const r=t[e];null!=r&&(n[e]=Yn[e](r),i.push({name:e,type:Qn[e]}))});const o=Xn.from(e),s=Ar(e);return s.EIP712Domain?Ln.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",e):s.EIP712Domain=i,o.encode(r),{types:s,domain:n,primaryType:o.primaryType,message:o.visit(r,(t,e)=>{if(t.match(/^bytes(\d*)/))return Ze(Ve(e));if(t.match(/^u?int/))return hr.from(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return"string"!=typeof e&&Ln.throwArgumentError("invalid string","value",e),e}return Ln.throwArgumentError("unsupported type","type",t)})}}}var Zn=$n;function $n(t,e){if(!t)throw new Error(e||"Assertion failed")}function ti(t,e){return 55296==(64512&t.charCodeAt(e))&&!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1))}function ei(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function ri(t){return 1===t.length?"0"+t:t}function ni(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}$n.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var ii={inherits:xe(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),toArray:function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)r.push(parseInt(t[i]+t[i+1],16))}else for(var n=0,i=0;i<t.length;i++){var o=t.charCodeAt(i);o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=63&o|128):ti(t,i)?(o=65536+((1023&o)<<10)+(1023&t.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<t.length;i++)r[i]=0|t[i];return r},toHex:function(t){for(var e="",r=0;r<t.length;r++)e+=ri(t[r].toString(16));return e},htonl:ei,toHex32:function(t,e){for(var r="",n=0;n<t.length;n++){var i=t[n];"little"===e&&(i=ei(i)),r+=ni(i.toString(16))}return r},zero2:ri,zero8:ni,join32:function(t,e,r,n){var i=r-e;Zn(i%4==0);for(var o=new Array(i/4),s=0,a=e;s<o.length;s++,a+=4)o[s]=("big"===n?t[a]<<24|t[a+1]<<16|t[a+2]<<8|t[a+3]:t[a+3]<<24|t[a+2]<<16|t[a+1]<<8|t[a])>>>0;return o},split32:function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n<t.length;n++,i+=4){var o=t[n];"big"===e?(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(t,e){return t>>>e|t<<32-e},rotl32:function(t,e){return t<<e|t>>>32-e},sum32:function(t,e){return t+e>>>0},sum32_3:function(t,e,r){return t+e+r>>>0},sum32_4:function(t,e,r,n){return t+e+r+n>>>0},sum32_5:function(t,e,r,n,i){return t+e+r+n+i>>>0},sum64:function(t,e,r,n){var i=n+t[e+1]>>>0;t[e]=(i<n?1:0)+r+t[e]>>>0,t[e+1]=i},sum64_hi:function(t,e,r,n){return(e+n>>>0<e?1:0)+t+r>>>0},sum64_lo:function(t,e,r,n){return e+n>>>0},sum64_4_hi:function(t,e,r,n,i,o,s,a){var u=0,l=e;return u+=(l=l+n>>>0)<e?1:0,u+=(l=l+o>>>0)<o?1:0,t+r+i+s+(u+=(l=l+a>>>0)<a?1:0)>>>0},sum64_4_lo:function(t,e,r,n,i,o,s,a){return e+n+o+a>>>0},sum64_5_hi:function(t,e,r,n,i,o,s,a,u,l){var h=0,c=e;return h+=(c=c+n>>>0)<e?1:0,h+=(c=c+o>>>0)<o?1:0,h+=(c=c+a>>>0)<a?1:0,t+r+i+s+u+(h+=(c=c+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(t,e,r,n,i,o,s,a,u,l){return e+n+o+a+l>>>0},rotr64_hi:function(t,e,r){return(e<<32-r|t>>>r)>>>0},rotr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0},shr64_hi:function(t,e,r){return t>>>r},shr64_lo:function(t,e,r){return(t<<32-r|e>>>r)>>>0}};function oi(){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 si=oi;oi.prototype.update=function(t,e){if(t=ii.toArray(t,e),this.pending=this.pending?this.pending.concat(t):t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=ii.join32(t,0,t.length-r,this.endian);for(var n=0;n<t.length;n+=this._delta32)this._update(t,n,n+this._delta32)}return this},oi.prototype.digest=function(t){return this.update(this._pad()),Zn(null===this.pending),this._digest(t)},oi.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,r=e-(t+this.padLength)%e,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(t<<=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++]=t>>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>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 ai={BlockHash:si},ui=ii.rotr32;function li(t,e,r){return t&e^~t&r}function hi(t,e,r){return t&e^t&r^e&r}var ci=li,fi=hi,di=ii.rotl32,pi=ii.sum32,mi=ii.sum32_5,yi=function(t,e,r,n){return 0===t?li(e,r,n):1===t||3===t?function(t,e,r){return t^e^r}(e,r,n):2===t?hi(e,r,n):void 0},gi=ai.BlockHash,vi=[1518500249,1859775393,2400959708,3395469782];function bi(){if(!(this instanceof bi))return new bi;gi.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}ii.inherits(bi,gi);var Ai=bi;bi.blockSize=512,bi.outSize=160,bi.hmacStrength=80,bi.padLength=64,bi.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=di(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),h=mi(di(i,5),yi(l,o,s,a),u,r[n],vi[l]);u=a,a=s,s=di(o,30),o=i,i=h}this.h[0]=pi(this.h[0],i),this.h[1]=pi(this.h[1],o),this.h[2]=pi(this.h[2],s),this.h[3]=pi(this.h[3],a),this.h[4]=pi(this.h[4],u)},bi.prototype._digest=function(t){return"hex"===t?ii.toHex32(this.h,"big"):ii.split32(this.h,"big")};var wi=ii.sum32,Ei=ii.sum32_4,Ti=ii.sum32_5,Ii=ci,Si=fi,_i=function(t){return ui(t,2)^ui(t,13)^ui(t,22)},Ni=function(t){return ui(t,6)^ui(t,11)^ui(t,25)},xi=function(t){return ui(t,7)^ui(t,18)^t>>>3},Mi=function(t){return ui(t,17)^ui(t,19)^t>>>10},ki=ai.BlockHash,Pi=[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 Ci(){if(!(this instanceof Ci))return new Ci;ki.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Pi,this.W=new Array(64)}ii.inherits(Ci,ki);var Oi=Ci;function Ri(){if(!(this instanceof Ri))return new Ri;Oi.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Ci.blockSize=512,Ci.outSize=256,Ci.hmacStrength=192,Ci.padLength=64,Ci.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n<r.length;n++)r[n]=Ei(Mi(r[n-2]),r[n-7],xi(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],h=this.h[6],c=this.h[7];for(Zn(this.k.length===r.length),n=0;n<r.length;n++){var f=Ti(c,Ni(u),Ii(u,l,h),this.k[n],r[n]),d=wi(_i(i),Si(i,o,s));c=h,h=l,l=u,u=wi(a,f),a=s,s=o,o=i,i=wi(f,d)}this.h[0]=wi(this.h[0],i),this.h[1]=wi(this.h[1],o),this.h[2]=wi(this.h[2],s),this.h[3]=wi(this.h[3],a),this.h[4]=wi(this.h[4],u),this.h[5]=wi(this.h[5],l),this.h[6]=wi(this.h[6],h),this.h[7]=wi(this.h[7],c)},Ci.prototype._digest=function(t){return"hex"===t?ii.toHex32(this.h,"big"):ii.split32(this.h,"big")},ii.inherits(Ri,Oi);var Bi=Ri;Ri.blockSize=512,Ri.outSize=224,Ri.hmacStrength=192,Ri.padLength=64,Ri.prototype._digest=function(t){return"hex"===t?ii.toHex32(this.h.slice(0,7),"big"):ii.split32(this.h.slice(0,7),"big")};var Di=ii.rotr64_hi,Li=ii.rotr64_lo,Fi=ii.shr64_hi,Ui=ii.shr64_lo,qi=ii.sum64,Gi=ii.sum64_hi,Hi=ii.sum64_lo,zi=ii.sum64_4_hi,ji=ii.sum64_4_lo,Qi=ii.sum64_5_hi,Ki=ii.sum64_5_lo,Vi=ai.BlockHash,Yi=[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 Ji(){if(!(this instanceof Ji))return new Ji;Vi.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=Yi,this.W=new Array(160)}ii.inherits(Ji,Vi);var Wi=Ji;function Xi(t,e,r,n,i){var o=t&r^~t&i;return o<0&&(o+=4294967296),o}function Zi(t,e,r,n,i,o){var s=e&n^~e&o;return s<0&&(s+=4294967296),s}function $i(t,e,r,n,i){var o=t&r^t&i^r&i;return o<0&&(o+=4294967296),o}function to(t,e,r,n,i,o){var s=e&n^e&o^n&o;return s<0&&(s+=4294967296),s}function eo(t,e){var r=Di(t,e,28)^Di(e,t,2)^Di(e,t,7);return r<0&&(r+=4294967296),r}function ro(t,e){var r=Li(t,e,28)^Li(e,t,2)^Li(e,t,7);return r<0&&(r+=4294967296),r}function no(t,e){var r=Di(t,e,14)^Di(t,e,18)^Di(e,t,9);return r<0&&(r+=4294967296),r}function io(t,e){var r=Li(t,e,14)^Li(t,e,18)^Li(e,t,9);return r<0&&(r+=4294967296),r}function oo(t,e){var r=Di(t,e,1)^Di(t,e,8)^Fi(t,e,7);return r<0&&(r+=4294967296),r}function so(t,e){var r=Li(t,e,1)^Li(t,e,8)^Ui(t,e,7);return r<0&&(r+=4294967296),r}function ao(t,e){var r=Di(t,e,19)^Di(e,t,29)^Fi(t,e,6);return r<0&&(r+=4294967296),r}function uo(t,e){var r=Li(t,e,19)^Li(e,t,29)^Ui(t,e,6);return r<0&&(r+=4294967296),r}function lo(){if(!(this instanceof lo))return new lo;Wi.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Ji.blockSize=1024,Ji.outSize=512,Ji.hmacStrength=192,Ji.padLength=128,Ji.prototype._prepareBlock=function(t,e){for(var r=this.W,n=0;n<32;n++)r[n]=t[e+n];for(;n<r.length;n+=2){var i=ao(r[n-4],r[n-3]),o=uo(r[n-4],r[n-3]),s=r[n-14],a=r[n-13],u=oo(r[n-30],r[n-29]),l=so(r[n-30],r[n-29]),h=r[n-32],c=r[n-31];r[n]=zi(i,o,s,a,u,l,h,c),r[n+1]=ji(i,o,s,a,u,l,h,c)}},Ji.prototype._update=function(t,e){this._prepareBlock(t,e);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],h=this.h[7],c=this.h[8],f=this.h[9],d=this.h[10],p=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],v=this.h[15];Zn(this.k.length===r.length);for(var b=0;b<r.length;b+=2){var A=g,w=v,E=no(c,f),T=io(c,f),I=Xi(c,0,d,0,m),S=Zi(0,f,0,p,0,y),_=this.k[b],N=this.k[b+1],x=r[b],M=r[b+1],k=Qi(A,w,E,T,I,S,_,N,x,M),P=Ki(A,w,E,T,I,S,_,N,x,M);A=eo(n,i),w=ro(n,i),E=$i(n,0,o,0,a),T=to(0,i,0,s,0,u);var C=Gi(A,w,E,T),O=Hi(A,w,E,T);g=m,v=y,m=d,y=p,d=c,p=f,c=Gi(l,h,k,P),f=Hi(h,h,k,P),l=a,h=u,a=o,u=s,o=n,s=i,n=Gi(k,P,C,O),i=Hi(k,P,C,O)}qi(this.h,0,n,i),qi(this.h,2,o,s),qi(this.h,4,a,u),qi(this.h,6,l,h),qi(this.h,8,c,f),qi(this.h,10,d,p),qi(this.h,12,m,y),qi(this.h,14,g,v)},Ji.prototype._digest=function(t){return"hex"===t?ii.toHex32(this.h,"big"):ii.split32(this.h,"big")},ii.inherits(lo,Wi);var ho=lo;lo.blockSize=1024,lo.outSize=384,lo.hmacStrength=192,lo.padLength=128,lo.prototype._digest=function(t){return"hex"===t?ii.toHex32(this.h.slice(0,12),"big"):ii.split32(this.h.slice(0,12),"big")};var co={sha1:Ai,sha224:Bi,sha256:Oi,sha384:ho,sha512:Wi},fo=ii.rotl32,po=ii.sum32,mo=ii.sum32_3,yo=ii.sum32_4,go=ai.BlockHash;function vo(){if(!(this instanceof vo))return new vo;go.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}ii.inherits(vo,go);var bo=vo;function Ao(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function wo(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function Eo(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}vo.blockSize=512,vo.outSize=160,vo.hmacStrength=192,vo.padLength=64,vo.prototype._update=function(t,e){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,h=o,c=s,f=0;f<80;f++){var d=po(fo(yo(r,Ao(f,n,i,o),t[To[f]+e],wo(f)),So[f]),s);r=s,s=o,o=fo(i,10),i=n,n=d,d=po(fo(yo(a,Ao(79-f,u,l,h),t[Io[f]+e],Eo(f)),_o[f]),c),a=c,c=h,h=fo(l,10),l=u,u=d}d=mo(this.h[1],i,h),this.h[1]=mo(this.h[2],o,c),this.h[2]=mo(this.h[3],s,a),this.h[3]=mo(this.h[4],r,u),this.h[4]=mo(this.h[0],n,l),this.h[0]=d},vo.prototype._digest=function(t){return"hex"===t?ii.toHex32(this.h,"little"):ii.split32(this.h,"little")};var To=[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],Io=[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],So=[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],_o=[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],No={ripemd160:bo};function xo(t,e,r){if(!(this instanceof xo))return new xo(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(ii.toArray(e,r))}var Mo=xo;xo.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),Zn(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},xo.prototype.update=function(t,e){return this.inner.update(t,e),this},xo.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)};var ko=xe(function(t,e){var r=e;r.utils=ii,r.common=ai,r.sha=co,r.ripemd=No,r.hmac=Mo,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}),Po=ko;function Co(t){return"0x"+Po.sha256().update(Ve(t)).digest("hex")}new qe("sha2/5.7.0");var Oo=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};function Ro(t,e){return Oo(this,void 0,void 0,function*(){null==e&&(e={});const r={method:e.method||"GET",headers:e.headers||{},body:e.body||void 0};if(!0!==e.skipFetchSetup&&(r.mode="cors",r.cache="no-cache",r.credentials="same-origin",r.redirect="follow",r.referrer="client"),null!=e.fetchOptions){const t=e.fetchOptions;t.mode&&(r.mode=t.mode),t.cache&&(r.cache=t.cache),t.credentials&&(r.credentials=t.credentials),t.redirect&&(r.redirect=t.redirect),t.referrer&&(r.referrer=t.referrer)}const n=yield fetch(t,r),i=yield n.arrayBuffer(),o={};return n.headers.forEach?n.headers.forEach((t,e)=>{o[e.toLowerCase()]=t}):n.headers.keys().forEach(t=>{o[t.toLowerCase()]=n.headers.get(t)}),{headers:o,statusCode:n.status,statusMessage:n.statusText,body:Ve(new Uint8Array(i))}})}var Bo=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Do=new qe("web/5.7.1");function Lo(t){return new Promise(e=>{setTimeout(e,t)})}function Fo(t,e){if(null==t)return null;if("string"==typeof t)return t;if(je(t)){if(e&&("text"===e.split("/")[0]||"application/json"===e.split(";")[0].trim()))try{return Wr(t)}catch(t){}return Ze(t)}return t}function Uo(t,e,r){let n=null;if(null!=e){n=Jr(e);const r="string"==typeof t?{url:t}:Ar(t);r.headers?0!==Object.keys(r.headers).filter(t=>"content-type"===t.toLowerCase()).length||(r.headers=Ar(r.headers),r.headers["content-type"]="application/json"):r.headers={"content-type":"application/json"},t=r}return function(t,e,r){const n="object"==typeof t&&null!=t.throttleLimit?t.throttleLimit:12;Do.assertArgument(n>0&&n%1==0,"invalid connection throttle limit","connection.throttleLimit",n);const i="object"==typeof t?t.throttleCallback:null,o="object"==typeof t&&"number"==typeof t.throttleSlotInterval?t.throttleSlotInterval:100;Do.assertArgument(o>0&&o%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",o);const s="object"==typeof t&&!!t.errorPassThrough,a={};let u=null;const l={method:"GET"};let h=!1,c=12e4;if("string"==typeof t)u=t;else if("object"==typeof t){if(null!=t&&null!=t.url||Do.throwArgumentError("missing URL","connection.url",t),u=t.url,"number"==typeof t.timeout&&t.timeout>0&&(c=t.timeout),t.headers)for(const e in t.headers)a[e.toLowerCase()]={key:e,value:String(t.headers[e])},["if-none-match","if-modified-since"].indexOf(e.toLowerCase())>=0&&(h=!0);l.allowGzip=!!t.allowGzip,null!=t.user&&null!=t.password&&("https:"!==u.substring(0,6)&&!0!==t.allowInsecureAuthentication&&Do.throwError("basic authentication requires a secure https url",qe.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:t.user,password:"[REDACTED]"}),a.authorization={key:"Authorization",value:"Basic "+Lr(Jr(t.user+":"+t.password))}),null!=t.skipFetchSetup&&(l.skipFetchSetup=!!t.skipFetchSetup),null!=t.fetchOptions&&(l.fetchOptions=Ar(t.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),d=u?u.match(f):null;if(d)try{const t={statusCode:200,statusMessage:"OK",headers:{"content-type":d[1]||"text/plain"},body:d[2]?Dr(d[3]):(p=d[3],Jr(p.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16)))))};let e=t.body;return r&&(e=r(t.body,t)),Promise.resolve(e)}catch(t){Do.throwError("processing response error",qe.errors.SERVER_ERROR,{body:Fo(d[1],d[2]),error:t,requestBody:null,requestMethod:"GET",url:u})}var p;e&&(l.method="POST",l.body=e,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(e.length)}));const m={};Object.keys(a).forEach(t=>{const e=a[t];m[e.key]=e.value}),l.headers=m;const y=function(){let t=null;return{promise:new Promise(function(e,r){c&&(t=setTimeout(()=>{null!=t&&(t=null,r(Do.makeError("timeout",qe.errors.TIMEOUT,{requestBody:Fo(l.body,m["content-type"]),requestMethod:l.method,timeout:c,url:u})))},c))}),cancel:function(){null!=t&&(clearTimeout(t),t=null)}}}(),g=function(){return Bo(this,void 0,void 0,function*(){for(let t=0;t<n;t++){let e=null;try{if(e=yield Ro(u,l),t<n)if(301===e.statusCode||302===e.statusCode){if("GET"===l.method&&(e.headers.location||"").match(/^https:/)){u=e.headers.location;continue}}else if(429===e.statusCode){let r=!0;if(i&&(r=yield i(t,u)),r){let r=0;const n=e.headers["retry-after"];r="string"==typeof n&&n.match(/^[1-9][0-9]*$/)?1e3*parseInt(n):o*parseInt(String(Math.random()*Math.pow(2,t))),yield Lo(r);continue}}}catch(t){e=t.response,null==e&&(y.cancel(),Do.throwError("missing response",qe.errors.SERVER_ERROR,{requestBody:Fo(l.body,m["content-type"]),requestMethod:l.method,serverError:t,url:u}))}let a=e.body;if(h&&304===e.statusCode?a=null:!s&&(e.statusCode<200||e.statusCode>=300)&&(y.cancel(),Do.throwError("bad response",qe.errors.SERVER_ERROR,{status:e.statusCode,headers:e.headers,body:Fo(a,e.headers?e.headers["content-type"]:null),requestBody:Fo(l.body,m["content-type"]),requestMethod:l.method,url:u})),r)try{const t=yield r(a,e);return y.cancel(),t}catch(r){if(r.throttleRetry&&t<n){let e=!0;if(i&&(e=yield i(t,u)),e){const e=o*parseInt(String(Math.random()*Math.pow(2,t)));yield Lo(e);continue}}y.cancel(),Do.throwError("processing response error",qe.errors.SERVER_ERROR,{body:Fo(a,e.headers?e.headers["content-type"]:null),error:r,requestBody:Fo(l.body,m["content-type"]),requestMethod:l.method,url:u})}return y.cancel(),a}return Do.throwError("failed response",qe.errors.SERVER_ERROR,{requestBody:Fo(l.body,m["content-type"]),requestMethod:l.method,url:u})})}();return Promise.race([y.promise,g])}(t,n,(t,e)=>{let n=null;if(null!=t)try{n=JSON.parse(Wr(t))}catch(e){Do.throwError("invalid JSON",qe.errors.SERVER_ERROR,{body:t,error:e})}return r&&(n=r(n,e)),n})}function qo(t,e){return e||(e={}),null==(e=Ar(e)).floor&&(e.floor=0),null==e.ceiling&&(e.ceiling=1e4),null==e.interval&&(e.interval=250),new Promise(function(r,n){let i=null,o=!1;const s=()=>!o&&(o=!0,i&&clearTimeout(i),!0);e.timeout&&(i=setTimeout(()=>{s()&&n(new Error("timeout"))},e.timeout));const a=e.retryLimit;let u=0;!function i(){return t().then(function(t){if(void 0!==t)s()&&r(t);else if(e.oncePoll)e.oncePoll.once("poll",i);else if(e.onceBlock)e.onceBlock.once("block",i);else if(!o){if(u++,u>a)return void(s()&&n(new Error("retry limit reached")));let t=e.interval*parseInt(String(Math.random()*Math.pow(2,u)));t<e.floor&&(t=e.floor),t>e.ceiling&&(t=e.ceiling),setTimeout(i,t)}return null},function(t){s()&&n(t)})}()})}for(var Go="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Ho={},zo=0;zo<Go.length;zo++){var jo=Go.charAt(zo);if(void 0!==Ho[jo])throw new TypeError(jo+" is ambiguous");Ho[jo]=zo}function Qo(t){var e=t>>25;return(33554431&t)<<5^996825010&-(e>>0&1)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}const Ko="providers/5.7.2";function Vo(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var Yo=Jo;function Jo(t,e){if(!t)throw new Error(e||"Assertion failed")}Jo.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)};var Wo=Vo(function(t,e){var r=e;function n(t){return 1===t.length?"0"+t:t}function i(t){for(var e="",r=0;r<t.length;r++)e+=n(t[r].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!=typeof t){for(var n=0;n<t.length;n++)r[n]=0|t[n];return r}if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),n=0;n<t.length;n+=2)r.push(parseInt(t[n]+t[n+1],16));else for(n=0;n<t.length;n++){var i=t.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(t,e){return"hex"===e?i(t):t}}),Xo=Vo(function(t,e){var r=e;r.assert=Yo,r.toArray=Wo.toArray,r.zero2=Wo.zero2,r.toHex=Wo.toHex,r.encode=Wo.encode,r.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<<e+1,o=t.clone(),s=0;s<n.length;s++){var a,u=o.andln(i-1);o.isOdd()?o.isubn(a=u>(i>>1)-1?(i>>1)-u:u):a=0,n[s]=a,o.iushrn(1)}return n},r.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var s,a,u=t.andln(3)+i&3,l=e.andln(3)+o&3;3===u&&(u=-1),3===l&&(l=-1),s=0==(1&u)?0:3!=(n=t.andln(7)+i&7)&&5!==n||2!==l?u:-u,r[0].push(s),a=0==(1&l)?0:3!=(n=e.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),t.iushrn(1),e.iushrn(1)}return r},r.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new ke(t,"hex","le")}}),Zo=Xo.getNAF,$o=Xo.getJSF,ts=Xo.assert;function es(t,e){this.type=t,this.p=new ke(e.p,16),this.red=e.prime?ke.red(e.prime):ke.mont(this.p),this.zero=new ke(0).toRed(this.red),this.one=new ke(1).toRed(this.red),this.two=new ke(2).toRed(this.red),this.n=e.n&&new ke(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.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 rs=es;function ns(t,e){this.curve=t,this.type=e,this.precomputed=null}es.prototype.point=function(){throw new Error("Not implemented")},es.prototype.validate=function(){throw new Error("Not implemented")},es.prototype._fixedNafMul=function(t,e){ts(t.precomputed);var r=t._getDoubles(),n=Zo(e,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),h=this.jpoint(null,null,null),c=i;c>0;c--){for(o=0;o<a.length;o++)(s=a[o])===c?h=h.mixedAdd(r.points[o]):s===-c&&(h=h.mixedAdd(r.points[o].neg()));l=l.add(h)}return l.toP()},es.prototype._wnafMul=function(t,e){for(var r=4,n=t._getNAFPoints(r),i=n.points,o=Zo(e,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];ts(0!==l),s="affine"===t.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"===t.type?s.toP():s},es.prototype._wnafMulAdd=function(t,e,r,n,i){var o,s,a,u=this._wnafT1,l=this._wnafT2,h=this._wnafT3,c=0;for(o=0;o<n;o++){var f=(a=e[o])._getNAFPoints(t);u[o]=f.wnd,l[o]=f.points}for(o=n-1;o>=1;o-=2){var d=o-1,p=o;if(1===u[d]&&1===u[p]){var m=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(m[1]=e[d].add(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].add(e[p].neg())):(m[1]=e[d].toJ().mixedAdd(e[p]),m[2]=e[d].toJ().mixedAdd(e[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=$o(r[d],r[p]);for(c=Math.max(g[0].length,c),h[d]=new Array(c),h[p]=new Array(c),s=0;s<c;s++)h[d][s]=y[3*(1+(0|g[0][s]))+(1+(0|g[1][s]))],h[p][s]=0,l[d]=m}else h[d]=Zo(r[d],u[d],this._bitLength),h[p]=Zo(r[p],u[p],this._bitLength),c=Math.max(h[d].length,c),c=Math.max(h[p].length,c)}var v=this.jpoint(null,null,null),b=this._wnafT4;for(o=c;o>=0;o--){for(var A=0;o>=0;){var w=!0;for(s=0;s<n;s++)b[s]=0|h[s][o],0!==b[s]&&(w=!1);if(!w)break;A++,o--}if(o>=0&&A++,v=v.dblp(A),o<0)break;for(s=0;s<n;s++){var E=b[s];0!==E&&(E>0?a=l[s][E-1>>1]:E<0&&(a=l[s][-E-1>>1].neg()),v="affine"===a.type?v.mixedAdd(a):v.add(a))}}for(o=0;o<n;o++)l[o]=null;return i?v:v.toP()},es.BasePoint=ns,ns.prototype.eq=function(){throw new Error("Not implemented")},ns.prototype.validate=function(){return this.curve.validate(this)},es.prototype.decodePoint=function(t,e){t=Xo.toArray(t,e);var r=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*r)return 6===t[0]?ts(t[t.length-1]%2==0):7===t[0]&&ts(t[t.length-1]%2==1),this.point(t.slice(1,1+r),t.slice(1+r,1+2*r));if((2===t[0]||3===t[0])&&t.length-1===r)return this.pointFromX(t.slice(1,1+r),3===t[0]);throw new Error("Unknown point format")},ns.prototype.encodeCompressed=function(t){return this.encode(t,!0)},ns.prototype._encode=function(t){var e=this.curve.p.byteLength(),r=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",e))},ns.prototype.encode=function(t,e){return Xo.encode(this._encode(e),t)},ns.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},ns.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},ns.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)n=n.dbl();r.push(n)}return{step:t,points:r}},ns.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],r=(1<<t)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)e[i]=e[i-1].add(n);return{wnd:t,points:e}},ns.prototype._getBeta=function(){return null},ns.prototype.dblp=function(t){for(var e=this,r=0;r<t;r++)e=e.dbl();return e};var is=Vo(function(t){t.exports="function"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}}),os=Xo.assert;function ss(t){rs.call(this,"short",t),this.a=new ke(t.a,16).toRed(this.red),this.b=new ke(t.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(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}is(ss,rs);var as=ss;function us(t,e,r,n){rs.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new ke(e,16),this.y=new ke(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 ls(t,e,r,n){rs.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new ke(0)):(this.x=new ke(e,16),this.y=new ke(r,16),this.z=new ke(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}ss.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new ke(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new ke(t.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(e))?r=i[0]:os(0===this.g.mul(r=i[1]).x.cmp(this.g.x.redMul(e)))}return{beta:e,lambda:r,basis:t.basis?t.basis.map(function(t){return{a:new ke(t.a,16),b:new ke(t.b,16)}}):this._getEndoBasis(r)}}},ss.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:ke.mont(t),r=new ke(2).toRed(e).redInvm(),n=r.redNeg(),i=new ke(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(i).fromRed(),n.redSub(i).fromRed()]},ss.prototype._getEndoBasis=function(t){for(var e,r,n,i,o,s,a,u,l,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,f=this.n.clone(),d=new ke(1),p=new ke(0),m=new ke(0),y=new ke(1),g=0;0!==c.cmpn(0);){var v=f.div(c);u=f.sub(v.mul(c)),l=m.sub(v.mul(d));var b=y.sub(v.mul(p));if(!n&&u.cmp(h)<0)e=a.neg(),r=d,n=u.neg(),i=l;else if(n&&2==++g)break;a=u,f=c,c=u,m=d,d=l,y=p,p=b}o=u.neg(),s=l;var A=n.sqr().add(i.sqr());return o.sqr().add(s.sqr()).cmp(A)>=0&&(o=e,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}]},ss.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).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:t.sub(s).sub(a),k2:u.add(l).neg()}},ss.prototype.pointFromX=function(t,e){(t=new ke(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.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(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},ss.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},ss.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[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),h=0;h<2*o;h++)n[h]=null,i[h]=null;return l},is(us,rs.BasePoint),ss.prototype.point=function(t,e,r){return new us(this,t,e,r)},ss.prototype.pointFromJSON=function(t,e){return us.fromJSON(this,t,e)},us.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var r=this.curve,n=function(t){return r.point(t.x.redMul(r.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(n)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(n)}}}return e}},us.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]},us.fromJSON=function(t,e,r){"string"==typeof e&&(e=JSON.parse(e));var n=t.point(e[0],e[1],r);if(!e[2])return n;function i(e){return t.point(e[0],e[1],r)}var o=e[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},us.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)+">"},us.prototype.isInfinity=function(){return this.inf},us.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},us.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).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)},us.prototype.getX=function(){return this.x.fromRed()},us.prototype.getY=function(){return this.y.fromRed()},us.prototype.mul=function(t){return t=new ke(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},us.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},us.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},us.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},us.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.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 e},us.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},is(ls,rs.BasePoint),ss.prototype.jpoint=function(t,e,r){return new ls(this,t,e,r)},ls.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},ls.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},ls.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),s=t.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(),h=l.redMul(a),c=n.redMul(l),f=u.redSqr().redIAdd(h).redISub(c).redISub(c),d=u.redMul(c.redISub(f)).redISub(o.redMul(h)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(f,d,p)},ls.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).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),h=r.redMul(u),c=a.redSqr().redIAdd(l).redISub(h).redISub(h),f=a.redMul(h.redISub(c)).redISub(i.redMul(l)),d=this.z.redMul(s);return this.curve.jpoint(c,f,d)},ls.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e<t;e++)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(e=0;e<t;e++){var h=o.redSqr(),c=l.redSqr(),f=c.redSqr(),d=h.redAdd(h).redIAdd(h).redIAdd(n.redMul(u)),p=o.redMul(c),m=d.redSqr().redISub(p.redAdd(p)),y=p.redISub(m),g=d.redMul(y);g=g.redIAdd(g).redISub(f);var v=l.redMul(a);e+1<t&&(u=u.redMul(f)),o=m,a=v,l=g}return this.curve.jpoint(o,l.redMul(i),a)},ls.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},ls.prototype._zeroDbl=function(){var t,e,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),t=u,e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.x.redSqr(),c=this.y.redSqr(),f=c.redSqr(),d=this.x.redAdd(c).redSqr().redISub(h).redISub(f);d=d.redIAdd(d);var p=h.redAdd(h).redIAdd(h),m=p.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),t=m.redISub(d).redISub(d),e=p.redMul(d.redISub(t)).redISub(y),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(t,e,r)},ls.prototype._threeDbl=function(){var t,e,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);t=u;var l=o.redIAdd(o);l=(l=l.redIAdd(l)).redIAdd(l),e=a.redMul(s.redISub(u)).redISub(l),r=this.y.redAdd(this.y)}else{var h=this.z.redSqr(),c=this.y.redSqr(),f=this.x.redMul(c),d=this.x.redSub(h).redMul(this.x.redAdd(h));d=d.redAdd(d).redIAdd(d);var p=f.redIAdd(f),m=(p=p.redIAdd(p)).redAdd(p);t=d.redSqr().redISub(m),r=this.y.redAdd(this.z).redSqr().redISub(c).redISub(h);var y=c.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),e=d.redMul(p.redISub(t)).redISub(y)}return this.curve.jpoint(t,e,r)},ls.prototype._dbl=function(){var t=this.curve.a,e=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=e.redSqr(),s=r.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),u=e.redAdd(e),l=(u=u.redIAdd(u)).redMul(s),h=a.redSqr().redISub(l.redAdd(l)),c=l.redISub(h),f=s.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=a.redMul(c).redISub(f),p=r.redAdd(r).redMul(n);return this.curve.jpoint(h,d,p)},ls.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr(),n=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).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),h=e.redMul(l);h=(h=h.redIAdd(h)).redIAdd(h);var c=this.x.redMul(a).redISub(h);c=(c=c.redIAdd(c)).redIAdd(c);var f=this.y.redMul(l.redMul(u.redISub(l)).redISub(s.redMul(a)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var d=this.z.redAdd(s).redSqr().redISub(r).redISub(a);return this.curve.jpoint(c,f,d)},ls.prototype.mul=function(t,e){return t=new ke(t,e),this.curve._wnafMul(this,t)},ls.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),r=t.z.redSqr();if(0!==this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0))return!1;var n=e.redMul(this.z),i=r.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)},ls.prototype.eqXToP=function(t){var e=this.z.redSqr(),r=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(r))return!0;for(var n=t.clone(),i=this.curve.redN.redMul(e);;){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}},ls.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)+">"},ls.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var hs=Vo(function(t,e){var r=e;r.base=rs,r.short=as,r.mont=null,r.edwards=null}),cs=Vo(function(t,e){var r,n=e,i=Xo.assert;function o(t){this.curve="short"===t.type?new hs.short(t):"edwards"===t.type?new hs.edwards(t):new hs.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var r=new o(e);return Object.defineProperty(n,t,{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:Po.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:Po.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:Po.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:Po.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:Po.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:Po.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:Po.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(t){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:Po.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})});function fs(t){if(!(this instanceof fs))return new fs(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=Wo.toArray(t.entropy,t.entropyEnc||"hex"),r=Wo.toArray(t.nonce,t.nonceEnc||"hex"),n=Wo.toArray(t.pers,t.persEnc||"hex");Yo(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}var ds=fs;fs.prototype._init=function(t,e,r){var n=t.concat(e).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},fs.prototype._hmac=function(){return new Po.hmac(this.hash,this.K)},fs.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},fs.prototype.reseed=function(t,e,r,n){"string"!=typeof e&&(n=r,r=e,e=null),t=Wo.toArray(t,e),r=Wo.toArray(r,n),Yo(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},fs.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=Wo.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length<t;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var o=i.slice(0,t);return this._update(r),this._reseed++,Wo.encode(o,e)};var ps=Xo.assert;function ms(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}var ys=ms;ms.fromPublic=function(t,e,r){return e instanceof ms?e:new ms(t,{pub:e,pubEnc:r})},ms.fromPrivate=function(t,e,r){return e instanceof ms?e:new ms(t,{priv:e,privEnc:r})},ms.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.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"}},ms.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},ms.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},ms.prototype._importPrivate=function(t,e){this.priv=new ke(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},ms.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?ps(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||ps(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},ms.prototype.derive=function(t){return t.validate()||ps(t.validate(),"public point not validated"),t.mul(this.priv).getX()},ms.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},ms.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},ms.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var gs=Xo.assert;function vs(t,e){if(t instanceof vs)return t;this._importDER(t,e)||(gs(t.r&&t.s,"Signature without r or s"),this.r=new ke(t.r,16),this.s=new ke(t.s,16),this.recoveryParam=void 0===t.recoveryParam?null:t.recoveryParam)}var bs=vs;function As(){this.place=0}function ws(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,s=e.place;o<n;o++,s++)i<<=8,i|=t[s],i>>>=0;return!(i<=127)&&(e.place=s,i)}function Es(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e<r;)e++;return 0===e?t:t.slice(e)}function Ts(t,e){if(e<128)t.push(e);else{var r=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}vs.prototype._importDER=function(t,e){t=Xo.toArray(t,e);var r=new As;if(48!==t[r.place++])return!1;var n=ws(t,r);if(!1===n)return!1;if(n+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var i=ws(t,r);if(!1===i)return!1;var o=t.slice(r.place,i+r.place);if(r.place+=i,2!==t[r.place++])return!1;var s=ws(t,r);if(!1===s)return!1;if(t.length!==s+r.place)return!1;var a=t.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 ke(o),this.s=new ke(a),this.recoveryParam=null,!0},vs.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=Es(e),r=Es(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];Ts(n,e.length),(n=n.concat(e)).push(2),Ts(n,r.length);var i=n.concat(r),o=[48];return Ts(o,i.length),o=o.concat(i),Xo.encode(o,t)};var Is=function(){throw new Error("unsupported")},Ss=Xo.assert;function _s(t){if(!(this instanceof _s))return new _s(t);"string"==typeof t&&(Ss(Object.prototype.hasOwnProperty.call(cs,t),"Unknown curve "+t),t=cs[t]),t instanceof cs.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var Ns=_s;_s.prototype.keyPair=function(t){return new ys(this,t)},_s.prototype.keyFromPrivate=function(t,e){return ys.fromPrivate(this,t,e)},_s.prototype.keyFromPublic=function(t,e){return ys.fromPublic(this,t,e)},_s.prototype.genKeyPair=function(t){t||(t={});for(var e=new ds({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||Is(),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new ke(2));;){var i=new ke(e.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},_s.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},_s.prototype.sign=function(t,e,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new ke(t,16));for(var i=this.n.byteLength(),o=e.getPrivate().toArray("be",i),s=t.toArray("be",i),a=new ds({hash:this.hash,entropy:o,nonce:s,pers:n.pers,persEnc:n.persEnc||"utf8"}),u=this.n.sub(new ke(1)),l=0;;l++){var h=n.k?n.k(l):new ke(a.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(u)>=0)){var c=this.g.mul(h);if(!c.isInfinity()){var f=c.getX(),d=f.umod(this.n);if(0!==d.cmpn(0)){var p=h.invm(this.n).mul(d.mul(e.getPrivate()).iadd(t));if(0!==(p=p.umod(this.n)).cmpn(0)){var m=(c.getY().isOdd()?1:0)|(0!==f.cmp(d)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),m^=1),new bs({r:d,s:p,recoveryParam:m})}}}}}},_s.prototype.verify=function(t,e,r,n){t=this._truncateToN(new ke(t,16)),r=this.keyFromPublic(r,n);var i=(e=new bs(e,"hex")).r,o=e.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s,a=o.invm(this.n),u=a.mul(t).umod(this.n),l=a.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(u,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},_s.prototype.recoverPubKey=function(t,e,r,n){Ss((3&r)===r,"The recovery param is more than two bits"),e=new bs(e,n);var i=this.n,o=new ke(t),s=e.r,a=e.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 h=e.r.invm(i),c=i.sub(o).mul(h).umod(i),f=a.mul(h).umod(i);return this.g.mulAdd(c,s,f)},_s.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new bs(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var xs=Vo(function(t,e){var r=e;r.version="6.5.4",r.utils=Xo,r.rand=function(){throw new Error("unsupported")},r.curve=hs,r.curves=cs,r.ec=Ns,r.eddsa=null}).ec;const Ms=new qe("signing-key/5.7.0");let ks=null;function Ps(){return ks||(ks=new xs("secp256k1")),ks}class Cs{constructor(t){gr(this,"curve","secp256k1"),gr(this,"privateKey",Ze(t)),32!==$e(this.privateKey)&&Ms.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const e=Ps().keyFromPrivate(Ve(this.privateKey));gr(this,"publicKey","0x"+e.getPublic(!1,"hex")),gr(this,"compressedPublicKey","0x"+e.getPublic(!0,"hex")),gr(this,"_isSigningKey",!0)}_addPoint(t){const e=Ps().keyFromPublic(Ve(this.publicKey)),r=Ps().keyFromPublic(Ve(t));return"0x"+e.pub.add(r.pub).encodeCompressed("hex")}signDigest(t){const e=Ps().keyFromPrivate(Ve(this.privateKey)),r=Ve(t);32!==r.length&&Ms.throwArgumentError("bad digest length","digest",t);const n=e.sign(r,{canonical:!0});return ir({recoveryParam:n.recoveryParam,r:nr("0x"+n.r.toString(16),32),s:nr("0x"+n.s.toString(16),32)})}computeSharedSecret(t){const e=Ps().keyFromPrivate(Ve(this.privateKey)),r=Ps().keyFromPublic(Ve(Os(t)));return nr("0x"+e.derive(r.getPublic()).toString(16),32)}static isSigningKey(t){return!(!t||!t._isSigningKey)}}function Os(t,e){const r=Ve(t);if(32===r.length){const t=new Cs(r);return e?"0x"+Ps().keyFromPrivate(r).getPublic(!0,"hex"):t.publicKey}return 33===r.length?e?Ze(r):"0x"+Ps().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?e?"0x"+Ps().keyFromPublic(r).getPublic(!0,"hex"):Ze(r):Ms.throwArgumentError("invalid public or private key","key","[REDACTED]")}const Rs=new qe("transactions/5.7.0");var Bs;function Ds(t){return"0x"===t?null:Dn(t)}function Ls(t){return"0x"===t?qr:hr.from(t)}function Fs(t,e){return function(t){return Dn(tr(Hr(tr(Os(t),1)),12))}(function(t,e){const r=ir(e),n={r:Ve(r.r),s:Ve(r.s)};return"0x"+Ps().recoverPubKey(Ve(t),n,r.recoveryParam).encode("hex",!1)}(Ve(t),e))}function Us(t,e){const r=Je(hr.from(t).toHexString());return r.length>32&&Rs.throwArgumentError("invalid length for "+e,"transaction:"+e,t),r}function qs(t,e){return{address:Dn(t),storageKeys:(e||[]).map((e,r)=>(32!==$e(e)&&Rs.throwArgumentError("invalid access list storageKey",`accessList[${t}:${r}]`,e),e.toLowerCase()))}}function Gs(t){if(Array.isArray(t))return t.map((t,e)=>Array.isArray(t)?(t.length>2&&Rs.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${e}]`,t),qs(t[0],t[1])):qs(t.address,t.storageKeys));const e=Object.keys(t).map(e=>{const r=t[e].reduce((t,e)=>(t[e]=!0,t),{});return qs(e,Object.keys(r).sort())});return e.sort((t,e)=>t.address.localeCompare(e.address)),e}function Hs(t){return Gs(t).map(t=>[t.address,t.storageKeys])}function zs(t,e){if(null!=t.gasPrice){const e=hr.from(t.gasPrice),r=hr.from(t.maxFeePerGas||0);e.eq(r)||Rs.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:e,maxFeePerGas:r})}const r=[Us(t.chainId||0,"chainId"),Us(t.nonce||0,"nonce"),Us(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),Us(t.maxFeePerGas||0,"maxFeePerGas"),Us(t.gasLimit||0,"gasLimit"),null!=t.to?Dn(t.to):"0x",Us(t.value||0,"value"),t.data||"0x",Hs(t.accessList||[])];if(e){const t=ir(e);r.push(Us(t.recoveryParam,"recoveryParam")),r.push(Je(t.r)),r.push(Je(t.s))}return er(["0x02",xn(r)])}function js(t,e){const r=[Us(t.chainId||0,"chainId"),Us(t.nonce||0,"nonce"),Us(t.gasPrice||0,"gasPrice"),Us(t.gasLimit||0,"gasLimit"),null!=t.to?Dn(t.to):"0x",Us(t.value||0,"value"),t.data||"0x",Hs(t.accessList||[])];if(e){const t=ir(e);r.push(Us(t.recoveryParam,"recoveryParam")),r.push(Je(t.r)),r.push(Je(t.s))}return er(["0x01",xn(r)])}function Qs(t,e,r){try{const r=Ls(e[0]).toNumber();if(0!==r&&1!==r)throw new Error("bad recid");t.v=r}catch(t){Rs.throwArgumentError("invalid v for transaction type: 1","v",e[0])}t.r=nr(e[1],32),t.s=nr(e[2],32);try{const e=Hr(r(t));t.from=Fs(e,{r:t.r,s:t.s,recoveryParam:t.v})}catch(t){}}!function(t){t[t.legacy=0]="legacy",t[t.eip2930=1]="eip2930",t[t.eip1559=2]="eip1559"}(Bs||(Bs={}));const Ks=new qe(Ko);class Vs{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const t={},e=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 t.transaction={hash:o,type:u,accessList:Vs.allowNull(this.accessList.bind(this),null),blockHash:Vs.allowNull(o,null),blockNumber:Vs.allowNull(a,null),transactionIndex:Vs.allowNull(a,null),confirmations:Vs.allowNull(a,null),from:e,gasPrice:Vs.allowNull(r),maxPriorityFeePerGas:Vs.allowNull(r),maxFeePerGas:Vs.allowNull(r),gasLimit:r,to:Vs.allowNull(e,null),value:r,nonce:a,data:i,r:Vs.allowNull(this.uint256),s:Vs.allowNull(this.uint256),v:Vs.allowNull(a),creates:Vs.allowNull(e,null),raw:Vs.allowNull(i)},t.transactionRequest={from:Vs.allowNull(e),nonce:Vs.allowNull(a),gasLimit:Vs.allowNull(r),gasPrice:Vs.allowNull(r),maxPriorityFeePerGas:Vs.allowNull(r),maxFeePerGas:Vs.allowNull(r),to:Vs.allowNull(e),value:Vs.allowNull(r),data:Vs.allowNull(t=>this.data(t,!0)),type:Vs.allowNull(a),accessList:Vs.allowNull(this.accessList.bind(this),null)},t.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:e,topics:Vs.arrayOf(o),data:i,logIndex:a,blockHash:o},t.receipt={to:Vs.allowNull(this.address,null),from:Vs.allowNull(this.address,null),contractAddress:Vs.allowNull(e,null),transactionIndex:a,root:Vs.allowNull(s),gasUsed:r,logsBloom:Vs.allowNull(i),blockHash:o,transactionHash:o,logs:Vs.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:Vs.allowNull(a,null),cumulativeGasUsed:r,effectiveGasPrice:Vs.allowNull(r),status:Vs.allowNull(a),type:u},t.block={hash:Vs.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:Vs.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:r,gasUsed:r,miner:Vs.allowNull(e),extraData:i,transactions:Vs.allowNull(Vs.arrayOf(o)),baseFeePerGas:Vs.allowNull(r)},t.blockWithTransactions=Ar(t.block),t.blockWithTransactions.transactions=Vs.allowNull(Vs.arrayOf(this.transactionResponse.bind(this))),t.filter={fromBlock:Vs.allowNull(n,void 0),toBlock:Vs.allowNull(n,void 0),blockHash:Vs.allowNull(o,void 0),address:Vs.allowNull(e,void 0),topics:Vs.allowNull(this.topics.bind(this),void 0)},t.filterLog={blockNumber:Vs.allowNull(a),blockHash:Vs.allowNull(o),transactionIndex:a,removed:Vs.allowNull(this.boolean.bind(this)),address:e,data:Vs.allowFalsish(i,"0x"),topics:Vs.arrayOf(o),transactionHash:o,logIndex:a},t}accessList(t){return Gs(t||[])}number(t){return"0x"===t?0:hr.from(t).toNumber()}type(t){return"0x"===t||null==t?0:hr.from(t).toNumber()}bigNumber(t){return hr.from(t)}boolean(t){if("boolean"==typeof t)return t;if("string"==typeof t){if("true"===(t=t.toLowerCase()))return!0;if("false"===t)return!1}throw new Error("invalid boolean - "+t)}hex(t,e){return"string"==typeof t&&(e||"0x"===t.substring(0,2)||(t="0x"+t),We(t))?t.toLowerCase():Ks.throwArgumentError("invalid hash","value",t)}data(t,e){const r=this.hex(t,e);if(r.length%2!=0)throw new Error("invalid data; odd-length - "+t);return r}address(t){return Dn(t)}callAddress(t){if(!We(t,32))return null;const e=Dn(tr(t,12));return"0x0000000000000000000000000000000000000000"===e?null:e}contractAddress(t){return function(t){let e=null;try{e=Dn(t.from)}catch(e){Cn.throwArgumentError("missing from address","transaction",t)}return Dn(tr(Hr(xn([e,Je(Ve(hr.from(t.nonce).toHexString()))])),12))}(t)}blockTag(t){if(null==t)return"latest";if("earliest"===t)return"0x0";switch(t){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return t}if("number"==typeof t||We(t))return rr(t);throw new Error("invalid blockTag")}hash(t,e){const r=this.hex(t,e);return 32!==$e(r)?Ks.throwArgumentError("invalid hash","value",t):r}difficulty(t){if(null==t)return null;const e=hr.from(t);try{return e.toNumber()}catch(t){}return null}uint256(t){if(!We(t))throw new Error("invalid uint256");return nr(t,32)}_block(t,e){null!=t.author&&null==t.miner&&(t.miner=t.author);const r=null!=t._difficulty?t._difficulty:t.difficulty,n=Vs.check(e,t);return n._difficulty=null==r?null:hr.from(r),n}block(t){return this._block(t,this.formats.block)}blockWithTransactions(t){return this._block(t,this.formats.blockWithTransactions)}transactionRequest(t){return Vs.check(this.formats.transactionRequest,t)}transactionResponse(t){null!=t.gas&&null==t.gasLimit&&(t.gasLimit=t.gas),t.to&&hr.from(t.to).isZero()&&(t.to="0x0000000000000000000000000000000000000000"),null!=t.input&&null==t.data&&(t.data=t.input),null==t.to&&null==t.creates&&(t.creates=this.contractAddress(t)),1!==t.type&&2!==t.type||null!=t.accessList||(t.accessList=[]);const e=Vs.check(this.formats.transaction,t);if(null!=t.chainId){let r=t.chainId;We(r)&&(r=hr.from(r).toNumber()),e.chainId=r}else{let r=t.networkId;null==r&&null==e.v&&(r=t.chainId),We(r)&&(r=hr.from(r).toNumber()),"number"!=typeof r&&null!=e.v&&(r=(e.v-35)/2,r<0&&(r=0),r=parseInt(r)),"number"!=typeof r&&(r=0),e.chainId=r}return e.blockHash&&"x"===e.blockHash.replace(/0/g,"")&&(e.blockHash=null),e}transaction(t){return function(t){const e=Ve(t);if(e[0]>127)return function(t){const e=Pn(t);9!==e.length&&6!==e.length&&Rs.throwArgumentError("invalid raw transaction","rawTransaction",t);const r={nonce:Ls(e[0]).toNumber(),gasPrice:Ls(e[1]),gasLimit:Ls(e[2]),to:Ds(e[3]),value:Ls(e[4]),data:e[5],chainId:0};if(6===e.length)return r;try{r.v=hr.from(e[6]).toNumber()}catch(t){return r}if(r.r=nr(e[7],32),r.s=nr(e[8],32),hr.from(r.r).isZero()&&hr.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=e.slice(0,6);0!==r.chainId&&(i.push(Ze(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);const o=Hr(xn(i));try{r.from=Fs(o,{r:Ze(r.r),s:Ze(r.s),recoveryParam:n})}catch(t){}r.hash=Hr(t)}return r.type=null,r}(e);switch(e[0]){case 1:return function(t){const e=Pn(t.slice(1));8!==e.length&&11!==e.length&&Rs.throwArgumentError("invalid component count for transaction type: 1","payload",Ze(t));const r={type:1,chainId:Ls(e[0]).toNumber(),nonce:Ls(e[1]).toNumber(),gasPrice:Ls(e[2]),gasLimit:Ls(e[3]),to:Ds(e[4]),value:Ls(e[5]),data:e[6],accessList:Gs(e[7])};return 8===e.length||(r.hash=Hr(t),Qs(r,e.slice(8),js)),r}(e);case 2:return function(t){const e=Pn(t.slice(1));9!==e.length&&12!==e.length&&Rs.throwArgumentError("invalid component count for transaction type: 2","payload",Ze(t));const r=Ls(e[2]),n=Ls(e[3]),i={type:2,chainId:Ls(e[0]).toNumber(),nonce:Ls(e[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:Ls(e[4]),to:Ds(e[5]),value:Ls(e[6]),data:e[7],accessList:Gs(e[8])};return 9===e.length||(i.hash=Hr(t),Qs(i,e.slice(9),zs)),i}(e)}return Rs.throwError(`unsupported transaction type: ${e[0]}`,qe.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:e[0]})}(t)}receiptLog(t){return Vs.check(this.formats.receiptLog,t)}receipt(t){const e=Vs.check(this.formats.receipt,t);if(null!=e.root)if(e.root.length<=4){const t=hr.from(e.root).toNumber();0===t||1===t?(null!=e.status&&e.status!==t&&Ks.throwArgumentError("alt-root-status/status mismatch","value",{root:e.root,status:e.status}),e.status=t,delete e.root):Ks.throwArgumentError("invalid alt-root-status","value.root",e.root)}else 66!==e.root.length&&Ks.throwArgumentError("invalid root hash","value.root",e.root);return null!=e.status&&(e.byzantium=!0),e}topics(t){return Array.isArray(t)?t.map(t=>this.topics(t)):null!=t?this.hash(t,!0):null}filter(t){return Vs.check(this.formats.filter,t)}filterLog(t){return Vs.check(this.formats.filterLog,t)}static check(t,e){const r={};for(const n in t)try{const i=t[n](e[n]);void 0!==i&&(r[n]=i)}catch(t){throw t.checkKey=n,t.checkValue=e[n],t}return r}static allowNull(t,e){return function(r){return null==r?e:t(r)}}static allowFalsish(t,e){return function(r){return r?t(r):e}}static arrayOf(t){return function(e){if(!Array.isArray(e))throw new Error("not an array");const r=[];return e.forEach(function(e){r.push(t(e))}),r}}}var Ys=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const Js=new qe(Ko);function Ws(t){return null==t?"null":(32!==$e(t)&&Js.throwArgumentError("invalid topic","topic",t),t.toLowerCase())}function Xs(t){for(t=t.slice();t.length>0&&null==t[t.length-1];)t.pop();return t.map(t=>{if(Array.isArray(t)){const e={};t.forEach(t=>{e[Ws(t)]=!0});const r=Object.keys(e);return r.sort(),r.join("|")}return Ws(t)}).join("&")}function Zs(t){if("string"==typeof t){if(32===$e(t=t.toLowerCase()))return"tx:"+t;if(-1===t.indexOf(":"))return t}else{if(Array.isArray(t))return"filter:*:"+Xs(t);if(Nr.isForkEvent(t))throw Js.warn("not implemented"),new Error("not implemented");if(t&&"object"==typeof t)return"filter:"+(t.address||"*")+":"+Xs(t.topics||[])}throw new Error("invalid event - "+t)}function $s(){return(new Date).getTime()}function ta(t){return new Promise(e=>{setTimeout(e,t)})}const ea=["block","network","pending","poll"];class ra{constructor(t,e,r){gr(this,"tag",t),gr(this,"listener",e),gr(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 t=this.tag.split(":");return"tx"!==t[0]?null:t[1]}get filter(){const t=this.tag.split(":");if("filter"!==t[0])return null;const e=t[1],r=""===(n=t[2])?[]:n.split(/&/g).map(t=>{if(""===t)return[];const e=t.split("|").map(t=>"null"===t?null:t);return 1===e.length?e[0]:e});var n;const i={};return r.length>0&&(i.topics=r),e&&"*"!==e&&(i.address=e),i}pollable(){return this.tag.indexOf(":")>=0||ea.indexOf(this.tag)>=0}}const na={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 ia(t){return nr(hr.from(t).toHexString(),32)}function oa(t){return Ur.encode(Ye([t,tr(Co(Co(t)),0,4)]))}const sa=new RegExp("^(ipfs)://(.*)$","i"),aa=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),sa,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function ua(t,e){try{return Wr(la(t,e))}catch(t){}return null}function la(t,e){if("0x"===t)return null;const r=hr.from(tr(t,e,e+32)).toNumber(),n=hr.from(tr(t,r,r+32)).toNumber();return tr(t,r+32,r+32+n)}function ha(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):Js.throwArgumentError("unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}function ca(t){const e=Ve(t);if(e.length>32)throw new Error("internal; should not happen");const r=new Uint8Array(32);return r.set(e,32-e.length),r}function fa(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}function da(t){const e=[];let r=0;for(let n=0;n<t.length;n++)e.push(null),r+=32;for(let n=0;n<t.length;n++){const i=Ve(t[n]);e[n]=ca(r),e.push(ca(i.length)),e.push(fa(i)),r+=32+32*Math.ceil(i.length/32)}return er(e)}class pa{constructor(t,e,r,n){gr(this,"provider",t),gr(this,"name",r),gr(this,"address",t.formatter.address(e)),gr(this,"_resolvedAddress",n)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then(t=>hr.from(t).eq(1)).catch(t=>{if(t.code===qe.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,t})),this._supportsEip2544}_fetch(t,e){return Ys(this,void 0,void 0,function*(){const r={to:this.address,ccipReadEnabled:!0,data:er([t,Tn(this.name),e||"0x"])};let n=!1;var i;(yield this.supportsWildcard())&&(n=!0,r.data=er(["0x9061b923",da([(i=this.name,Ze(Ye(En(i).map(t=>{if(t.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e})))+"00"),r.data])]));try{let t=yield this.provider.call(r);return Ve(t).length%32==4&&Js.throwError("resolver threw error",qe.errors.CALL_EXCEPTION,{transaction:r,data:t}),n&&(t=la(t,0)),t}catch(t){if(t.code===qe.errors.CALL_EXCEPTION)return null;throw t}})}_fetchBytes(t,e){return Ys(this,void 0,void 0,function*(){const r=yield this._fetch(t,e);return null!=r?la(r,0):null})}_getAddress(t,e){const r=na[String(t)];if(null==r&&Js.throwError(`unsupported coin type: ${t}`,qe.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`}),"eth"===r.ilk)return this.provider.formatter.address(e);const n=Ve(e);if(null!=r.p2pkh){const t=e.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return oa(Ye([[r.p2pkh],"0x"+t[2]]))}}if(null!=r.p2sh){const t=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return oa(Ye([[r.p2sh],"0x"+t[2]]))}}if(null!=r.prefix){const t=n[1];let e=n[0];if(0===e?20!==t&&32!==t&&(e=-1):e=-1,e>=0&&n.length===2+t&&t>=1&&t<=75){const t=function(t){var e=function(t,e,r,n){for(var i=0,o=0,s=[],a=0;a<t.length;++a)for(i=i<<8|t[a],o+=8;o>=5;)s.push(i>>(o-=5)&31);return o>0&&s.push(i<<5-o&31),s}(t);if(Array.isArray(e))return e;throw new Error(e)}(n.slice(2));return t.unshift(e),function(t,e,r){if(t.length+7+e.length>(r=r||90))throw new TypeError("Exceeds length limit");var n=function(t){for(var e=1,r=0;r<t.length;++r){var n=t.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+t+")";e=Qo(e)^n>>5}for(e=Qo(e),r=0;r<t.length;++r){var i=t.charCodeAt(r);e=Qo(e)^31&i}return e}(t=t.toLowerCase());if("string"==typeof n)throw new Error(n);for(var i=t+"1",o=0;o<e.length;++o){var s=e[o];if(s>>5!=0)throw new Error("Non 5-bit word");n=Qo(n)^s,i+=Go.charAt(s)}for(o=0;o<6;++o)n=Qo(n);for(n^=1,o=0;o<6;++o)i+=Go.charAt(n>>5*(5-o)&31);return i}(r.prefix,t)}}return null}getAddress(t){return Ys(this,void 0,void 0,function*(){if(null==t&&(t=60),60===t)try{const t=yield this._fetch("0x3b3b57de");return"0x"===t||"0x0000000000000000000000000000000000000000000000000000000000000000"===t?null:this.provider.formatter.callAddress(t)}catch(t){if(t.code===qe.errors.CALL_EXCEPTION)return null;throw t}const e=yield this._fetchBytes("0xf1cb7e06",ia(t));if(null==e||"0x"===e)return null;const r=this._getAddress(t,e);return null==r&&Js.throwError("invalid or unsupported coin data",qe.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`,coinType:t,data:e}),r})}getAvatar(){return Ys(this,void 0,void 0,function*(){const t=[{type:"name",content:this.name}];try{const e=yield this.getText("avatar");if(null==e)return null;for(let r=0;r<aa.length;r++){const n=e.match(aa[r]);if(null==n)continue;const i=n[1].toLowerCase();switch(i){case"https":return t.push({type:"url",content:e}),{linkage:t,url:e};case"data":return t.push({type:"data",content:e}),{linkage:t,url:e};case"ipfs":return t.push({type:"ipfs",content:e}),{linkage:t,url:ha(e)};case"erc721":case"erc1155":{const r="erc721"===i?"0xc87b56dd":"0x0e89341c";t.push({type:i,content:e});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=nr(hr.from(s[1]).toHexString(),32);if("erc721"===i){const e=this.provider.formatter.callAddress(yield this.provider.call({to:a,data:er(["0x6352211e",u])}));if(o!==e)return null;t.push({type:"owner",content:e})}else if("erc1155"===i){const e=hr.from(yield this.provider.call({to:a,data:er(["0x00fdd58e",nr(o,32),u])}));if(e.isZero())return null;t.push({type:"balance",content:e.toString()})}const l={to:this.provider.formatter.address(s[0]),data:er([r,u])};let h=ua(yield this.provider.call(l),0);if(null==h)return null;t.push({type:"metadata-url-base",content:h}),"erc1155"===i&&(h=h.replace("{id}",u.substring(2)),t.push({type:"metadata-url-expanded",content:h})),h.match(/^ipfs:/i)&&(h=ha(h)),t.push({type:"metadata-url",content:h});const c=yield Uo(h);if(!c)return null;t.push({type:"metadata",content:JSON.stringify(c)});let f=c.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(sa))return null;t.push({type:"url-ipfs",content:f}),f=ha(f)}return t.push({type:"url",content:f}),{linkage:t,url:f}}}}}catch(t){}return null})}getContentHash(){return Ys(this,void 0,void 0,function*(){const t=yield this._fetchBytes("0xbc1c58d1");if(null==t||"0x"===t)return null;const e=t.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t=parseInt(e[3],16);if(e[4].length===2*t)return"ipfs://"+Ur.encode("0x"+e[1])}const r=t.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(r){const t=parseInt(r[3],16);if(r[4].length===2*t)return"ipns://"+Ur.encode("0x"+r[1])}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return"bzz://"+n[1];const i=t.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const t={"=":"","+":"-","/":"_"};return"sia://"+Lr("0x"+i[1]).replace(/[=+\/]/g,e=>t[e])}return Js.throwError("invalid or unsupported content hash data",qe.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:t})})}getText(t){return Ys(this,void 0,void 0,function*(){let e=Jr(t);e=Ye([ia(64),ia(e.length),e]),e.length%32!=0&&(e=Ye([e,nr("0x",32-t.length%32)]));const r=yield this._fetchBytes("0x59d1d43c",Ze(e));return null==r||"0x"===r?null:Wr(r)})}}let ma=null,ya=1;class ga extends xr{constructor(t){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),gr(this,"anyNetwork","any"===t),this.anyNetwork&&(t=this.detectNetwork()),t instanceof Promise)this._networkPromise=t,t.catch(t=>{}),this._ready().catch(t=>{});else{const e=vr(new.target,"getNetwork")(t);e?(gr(this,"_network",e),this.emit("network",e,null)):Js.throwArgumentError("invalid network","network",t)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Ys(this,void 0,void 0,function*(){if(null==this._network){let t=null;if(this._networkPromise)try{t=yield this._networkPromise}catch(t){}null==t&&(t=yield this.detectNetwork()),t||Js.throwError("no network detected",qe.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=t:gr(this,"_network",t),this.emit("network",t,null))}return this._network})}get ready(){return qo(()=>this._ready().then(t=>t,t=>{if(t.code!==qe.errors.NETWORK_ERROR||"noNetwork"!==t.event)throw t}))}static getFormatter(){return null==ma&&(ma=new Vs),ma}static getNetwork(t){return function(t){if(null==t)return null;if("number"==typeof t){for(const e in Br){const r=Br[e];if(r.chainId===t)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:t,name:"unknown"}}if("string"==typeof t){const e=Br[t];return null==e?null:{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress,_defaultProvider:e._defaultProvider||null}}const e=Br[t.name];if(!e)return"number"!=typeof t.chainId&&Mr.throwArgumentError("invalid network chainId","network",t),t;0!==t.chainId&&t.chainId!==e.chainId&&Mr.throwArgumentError("network chainId mismatch","network",t);let r=t._defaultProvider||null;var n;return null==r&&e._defaultProvider&&(r=(n=e._defaultProvider)&&"function"==typeof n.renetwork?e._defaultProvider.renetwork(t):e._defaultProvider),{name:t.name,chainId:e.chainId,ensAddress:t.ensAddress||e.ensAddress||null,_defaultProvider:r}}(null==t?"homestead":t)}ccipReadFetch(t,e,r){return Ys(this,void 0,void 0,function*(){if(this.disableCcipRead||0===r.length)return null;const n=t.to.toLowerCase(),i=e.toLowerCase(),o=[];for(let t=0;t<r.length;t++){const e=r[t],s=e.replace("{sender}",n).replace("{data}",i),a=e.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:n}),u=yield Uo({url:s,errorPassThrough:!0},a,(t,e)=>(t.status=e.statusCode,t));if(u.data)return u.data;const l=u.message||"unknown error";if(u.status>=400&&u.status<500)return Js.throwError(`response not found during CCIP fetch: ${l}`,qe.errors.SERVER_ERROR,{url:e,errorMessage:l});o.push(l)}return Js.throwError(`error encountered during CCIP fetch: ${o.map(t=>JSON.stringify(t)).join(", ")}`,qe.errors.SERVER_ERROR,{urls:r,errorMessages:o})})}_getInternalBlockNumber(t){return Ys(this,void 0,void 0,function*(){if(yield this._ready(),t>0)for(;this._internalBlockNumber;){const e=this._internalBlockNumber;try{const r=yield e;if($s()-r.respTime<=t)return r.blockNumber;break}catch(t){if(this._internalBlockNumber===e)break}}const e=$s(),r=br({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then(t=>null,t=>t)}).then(({blockNumber:t,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const i=$s();return(t=hr.from(t).toNumber())<this._maxInternalBlockNumber&&(t=this._maxInternalBlockNumber),this._maxInternalBlockNumber=t,this._setFastBlockNumber(t),{blockNumber:t,reqTime:e,respTime:i}});return this._internalBlockNumber=r,r.catch(t=>{this._internalBlockNumber===r&&(this._internalBlockNumber=null)}),(yield r).blockNumber})}poll(){return Ys(this,void 0,void 0,function*(){const t=ya++,e=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(t){return void this.emit("error",t)}if(this._setFastBlockNumber(r),this.emit("poll",t,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)Js.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit("error",Js.makeError("network block skew detected",qe.errors.NETWORK_ERROR,{blockNumber:r,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",r);else for(let t=this._emitted.block+1;t<=r;t++)this.emit("block",t);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach(t=>{if("block"===t)return;const e=this._emitted[t];"pending"!==e&&r-e>12&&delete this._emitted[t]})),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach(t=>{switch(t.type){case"tx":{const r=t.hash;let n=this.getTransactionReceipt(r).then(t=>t&&null!=t.blockNumber?(this._emitted["t:"+r]=t.blockNumber,this.emit(r,t),null):null).catch(t=>{this.emit("error",t)});e.push(n);break}case"filter":if(!t._inflight){t._inflight=!0,-2===t._lastBlockNumber&&(t._lastBlockNumber=r-1);const n=t.filter;n.fromBlock=t._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(e=>{t._inflight=!1,0!==e.length&&e.forEach(e=>{e.blockNumber>t._lastBlockNumber&&(t._lastBlockNumber=e.blockNumber),this._emitted["b:"+e.blockHash]=e.blockNumber,this._emitted["t:"+e.transactionHash]=e.blockNumber,this.emit(n,e)})}).catch(e=>{this.emit("error",e),t._inflight=!1});e.push(o)}}}),this._lastBlockNumber=r,Promise.all(e).then(()=>{this.emit("didPoll",t)}).catch(t=>{this.emit("error",t)})}else this.emit("didPoll",t)})}resetEventsBlock(t){this._lastBlockNumber=t-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Ys(this,void 0,void 0,function*(){return Js.throwError("provider does not support network detection",qe.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})})}getNetwork(){return Ys(this,void 0,void 0,function*(){const t=yield this._ready(),e=yield this.detectNetwork();if(t.chainId!==e.chainId){if(this.anyNetwork)return this._network=e,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",e,t),yield ta(0),this._network;const r=Js.makeError("underlying network changed",qe.errors.NETWORK_ERROR,{event:"changed",network:t,detectedNetwork:e});throw this.emit("error",r),r}return t})}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then(t=>{this._setFastBlockNumber(t)},t=>{}),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(t){t&&!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))):!t&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(t){if("number"!=typeof t||t<=0||parseInt(String(t))!=t)throw new Error("invalid polling interval");this._pollingInterval=t,this._poller&&(clearInterval(this._poller),this._poller=setInterval(()=>{this.poll()},this._pollingInterval))}_getFastBlockNumber(){const t=$s();return t-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=t,this._fastBlockNumberPromise=this.getBlockNumber().then(t=>((null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t),this._fastBlockNumber))),this._fastBlockNumberPromise}_setFastBlockNumber(t){null!=this._fastBlockNumber&&t<this._fastBlockNumber||(this._fastQueryDate=$s(),(null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t,this._fastBlockNumberPromise=Promise.resolve(t)))}waitForTransaction(t,e,r){return Ys(this,void 0,void 0,function*(){return this._waitForTransaction(t,null==e?1:e,r||0,null)})}_waitForTransaction(t,e,r,n){return Ys(this,void 0,void 0,function*(){const i=yield this.getTransactionReceipt(t);return(i?i.confirmations:0)>=e?i:new Promise((i,o)=>{const s=[];let a=!1;const u=function(){return!!a||(a=!0,s.forEach(t=>{t()}),!1)},l=t=>{t.confirmations<e||u()||i(t)};if(this.on(t,l),s.push(()=>{this.removeListener(t,l)}),n){let r=n.startBlock,i=null;const l=s=>Ys(this,void 0,void 0,function*(){a||(yield ta(1e3),this.getTransactionCount(n.from).then(h=>Ys(this,void 0,void 0,function*(){if(!a){if(h<=n.nonce)r=s;else{{const e=yield this.getTransaction(t);if(e&&null!=e.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===t)return;if(s.from===n.from&&s.nonce===n.nonce){if(a)return;const r=yield this.waitForTransaction(s.hash,e);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(Js.makeError("transaction was replaced",qe.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(s),hash:t,receipt:r}))}}i++}}a||this.once("block",l)}}),t=>{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 t=setTimeout(()=>{u()||o(Js.makeError("timeout exceeded",qe.errors.TIMEOUT,{timeout:r}))},r);t.unref&&t.unref(),s.push(()=>{clearTimeout(t)})}})})}getBlockNumber(){return Ys(this,void 0,void 0,function*(){return this._getInternalBlockNumber(0)})}getGasPrice(){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const t=yield this.perform("getGasPrice",{});try{return hr.from(t)}catch(e){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"getGasPrice",result:t,error:e})}})}getBalance(t,e){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield br({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getBalance",r);try{return hr.from(n)}catch(t){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"getBalance",params:r,result:n,error:t})}})}getTransactionCount(t,e){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield br({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getTransactionCount",r);try{return hr.from(n).toNumber()}catch(t){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"getTransactionCount",params:r,result:n,error:t})}})}getCode(t,e){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield br({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform("getCode",r);try{return Ze(n)}catch(t){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"getCode",params:r,result:n,error:t})}})}getStorageAt(t,e,r){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const n=yield br({address:this._getAddress(t),blockTag:this._getBlockTag(r),position:Promise.resolve(e).then(t=>rr(t))}),i=yield this.perform("getStorageAt",n);try{return Ze(i)}catch(t){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"getStorageAt",params:n,result:i,error:t})}})}_wrapTransaction(t,e,r){if(null!=e&&32!==$e(e))throw new Error("invalid response - sendTransaction");const n=t;return null!=e&&t.hash!==e&&Js.throwError("Transaction hash mismatch from Provider.sendTransaction.",qe.errors.UNKNOWN_ERROR,{expectedHash:t.hash,returnedHash:e}),n.wait=(e,n)=>Ys(this,void 0,void 0,function*(){let i;null==e&&(e=1),null==n&&(n=0),0!==e&&null!=r&&(i={data:t.data,from:t.from,nonce:t.nonce,to:t.to,value:t.value,startBlock:r});const o=yield this._waitForTransaction(t.hash,e,n,i);return null==o&&0===e?null:(this._emitted["t:"+t.hash]=o.blockNumber,0===o.status&&Js.throwError("transaction failed",qe.errors.CALL_EXCEPTION,{transactionHash:t.hash,transaction:t,receipt:o}),o)}),n}sendTransaction(t){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield Promise.resolve(t).then(t=>Ze(t)),r=this.formatter.transaction(t);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const t=yield this.perform("sendTransaction",{signedTransaction:e});return this._wrapTransaction(r,t,n)}catch(t){throw t.transaction=r,t.transactionHash=r.hash,t}})}_getTransactionRequest(t){return Ys(this,void 0,void 0,function*(){const e=yield t,r={};return["from","to"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?this._getAddress(t):null))}),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?hr.from(t):null))}),["type"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>null!=t?t:null))}),e.accessList&&(r.accessList=this.formatter.accessList(e.accessList)),["data"].forEach(t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then(t=>t?Ze(t):null))}),this.formatter.transactionRequest(yield br(r))})}_getFilter(t){return Ys(this,void 0,void 0,function*(){t=yield t;const e={};return null!=t.address&&(e.address=this._getAddress(t.address)),["blockHash","topics"].forEach(r=>{null!=t[r]&&(e[r]=t[r])}),["fromBlock","toBlock"].forEach(r=>{null!=t[r]&&(e[r]=this._getBlockTag(t[r]))}),this.formatter.filter(yield br(e))})}_call(t,e,r){return Ys(this,void 0,void 0,function*(){r>=10&&Js.throwError("CCIP read exceeded maximum redirections",qe.errors.SERVER_ERROR,{redirects:r,transaction:t});const n=t.to,i=yield this.perform("call",{transaction:t,blockTag:e});if(r>=0&&"latest"===e&&null!=n&&"0x556f1830"===i.substring(0,10)&&$e(i)%32==4)try{const o=tr(i,4),s=tr(o,0,32);hr.from(s).eq(n)||Js.throwError("CCIP Read sender did not match",qe.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const a=[],u=hr.from(tr(o,32,64)).toNumber(),l=hr.from(tr(o,u,u+32)).toNumber(),h=tr(o,u+32);for(let e=0;e<l;e++){const r=ua(h,32*e);null==r&&Js.throwError("CCIP Read contained corrupt URL string",qe.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i}),a.push(r)}const c=la(o,64);hr.from(tr(o,100,128)).isZero()||Js.throwError("CCIP Read callback selector included junk",qe.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const f=tr(o,96,100),d=la(o,128),p=yield this.ccipReadFetch(t,c,a);null==p&&Js.throwError("CCIP Read disabled or provided no URLs",qe.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:t,data:i});const m={to:n,data:er([f,da([p,d])])};return this._call(m,e,r+1)}catch(t){if(t.code===qe.errors.SERVER_ERROR)throw t}try{return Ze(i)}catch(r){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"call",params:{transaction:t,blockTag:e},result:i,error:r})}})}call(t,e){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const r=yield br({transaction:this._getTransactionRequest(t),blockTag:this._getBlockTag(e),ccipReadEnabled:Promise.resolve(t.ccipReadEnabled)});return this._call(r.transaction,r.blockTag,r.ccipReadEnabled?0:-1)})}estimateGas(t){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield br({transaction:this._getTransactionRequest(t)}),r=yield this.perform("estimateGas",e);try{return hr.from(r)}catch(t){return Js.throwError("bad result from backend",qe.errors.SERVER_ERROR,{method:"estimateGas",params:e,result:r,error:t})}})}_getAddress(t){return Ys(this,void 0,void 0,function*(){"string"!=typeof(t=yield t)&&Js.throwArgumentError("invalid address or ENS name","name",t);const e=yield this.resolveName(t);return null==e&&Js.throwError("ENS name not configured",qe.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(t)})`}),e})}_getBlock(t,e){return Ys(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;let r=-128;const n={includeTransactions:!!e};if(We(t,32))n.blockHash=t;else try{n.blockTag=yield this._getBlockTag(t),We(n.blockTag)&&(r=parseInt(n.blockTag.substring(2),16))}catch(e){Js.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",t)}return qo(()=>Ys(this,void 0,void 0,function*(){const t=yield this.perform("getBlock",n);if(null==t)return null!=n.blockHash&&null==this._emitted["b:"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(e){let e=null;for(let r=0;r<t.transactions.length;r++){const n=t.transactions[r];if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){null==e&&(e=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let t=e-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}}const r=this.formatter.blockWithTransactions(t);return r.transactions=r.transactions.map(t=>this._wrapTransaction(t)),r}return this.formatter.block(t)}),{oncePoll:this})})}getBlock(t){return this._getBlock(t,!1)}getBlockWithTransactions(t){return this._getBlock(t,!0)}getTransaction(t){return Ys(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return qo(()=>Ys(this,void 0,void 0,function*(){const r=yield this.perform("getTransaction",e);if(null==r)return null==this._emitted["t:"+t]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return this._wrapTransaction(n)}),{oncePoll:this})})}getTransactionReceipt(t){return Ys(this,void 0,void 0,function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return qo(()=>Ys(this,void 0,void 0,function*(){const r=yield this.perform("getTransactionReceipt",e);if(null==r)return null==this._emitted["t:"+t]?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 t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return n}),{oncePoll:this})})}getLogs(t){return Ys(this,void 0,void 0,function*(){yield this.getNetwork();const e=yield br({filter:this._getFilter(t)}),r=yield this.perform("getLogs",e);return r.forEach(t=>{null==t.removed&&(t.removed=!1)}),Vs.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)})}getEtherPrice(){return Ys(this,void 0,void 0,function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})})}_getBlockTag(t){return Ys(this,void 0,void 0,function*(){if("number"==typeof(t=yield t)&&t<0){t%1&&Js.throwArgumentError("invalid BlockTag","blockTag",t);let e=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return e+=t,e<0&&(e=0),this.formatter.blockTag(e)}return this.formatter.blockTag(t)})}getResolver(t){return Ys(this,void 0,void 0,function*(){let e=t;for(;;){if(""===e||"."===e)return null;if("eth"!==t&&"eth"===e)return null;const r=yield this._getResolver(e,"getResolver");if(null!=r){const n=new pa(this,r,t);return e===t||(yield n.supportsWildcard())?n:null}e=e.split(".").slice(1).join(".")}})}_getResolver(t,e){return Ys(this,void 0,void 0,function*(){null==e&&(e="ENS");const r=yield this.getNetwork();r.ensAddress||Js.throwError("network does not support ENS",qe.errors.UNSUPPORTED_OPERATION,{operation:e,network:r.name});try{const e=yield this.call({to:r.ensAddress,data:"0x0178b8bf"+Tn(t).substring(2)});return this.formatter.callAddress(e)}catch(t){}return null})}resolveName(t){return Ys(this,void 0,void 0,function*(){t=yield t;try{return Promise.resolve(this.formatter.address(t))}catch(e){if(We(t))throw e}"string"!=typeof t&&Js.throwArgumentError("invalid ENS name","name",t);const e=yield this.getResolver(t);return e?yield e.getAddress():null})}lookupAddress(t){return Ys(this,void 0,void 0,function*(){t=yield t;const e=(t=this.formatter.address(t)).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(e,"lookupAddress");if(null==r)return null;const n=ua(yield this.call({to:r,data:"0x691f3431"+Tn(e).substring(2)}),0);return(yield this.resolveName(n))!=t?null:n})}getAvatar(t){return Ys(this,void 0,void 0,function*(){let e=null;if(We(t)){const r=this.formatter.address(t).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(r,"getAvatar");if(!n)return null;e=new pa(this,n,r);try{const t=yield e.getAvatar();if(t)return t.url}catch(t){if(t.code!==qe.errors.CALL_EXCEPTION)throw t}try{const t=ua(yield this.call({to:n,data:"0x691f3431"+Tn(r).substring(2)}),0);e=yield this.getResolver(t)}catch(t){if(t.code!==qe.errors.CALL_EXCEPTION)throw t;return null}}else if(e=yield this.getResolver(t),!e)return null;const r=yield e.getAvatar();return null==r?null:r.url})}perform(t,e){return Js.throwError(t+" not implemented",qe.errors.NOT_IMPLEMENTED,{operation:t})}_startEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_stopEvent(t){this.polling=this._events.filter(t=>t.pollable()).length>0}_addEventListener(t,e,r){const n=new ra(Zs(t),e,r);return this._events.push(n),this._startEvent(n),this}on(t,e){return this._addEventListener(t,e,!1)}once(t,e){return this._addEventListener(t,e,!0)}emit(t,...e){let r=!1,n=[],i=Zs(t);return this._events=this._events.filter(t=>t.tag!==i||(setTimeout(()=>{t.listener.apply(this,e)},0),r=!0,!t.once||(n.push(t),!1))),n.forEach(t=>{this._stopEvent(t)}),r}listenerCount(t){if(!t)return this._events.length;let e=Zs(t);return this._events.filter(t=>t.tag===e).length}listeners(t){if(null==t)return this._events.map(t=>t.listener);let e=Zs(t);return this._events.filter(t=>t.tag===e).map(t=>t.listener)}off(t,e){if(null==e)return this.removeAllListeners(t);const r=[];let n=!1,i=Zs(t);return this._events=this._events.filter(t=>t.tag!==i||t.listener!=e||!!n||(n=!0,r.push(t),!1)),r.forEach(t=>{this._stopEvent(t)}),this}removeAllListeners(t){let e=[];if(null==t)e=this._events,this._events=[];else{const r=Zs(t);this._events=this._events.filter(t=>t.tag!==r||(e.push(t),!1))}return e.forEach(t=>{this._stopEvent(t)}),this}}var va=function(t,e,r,n){return new(r||(r=Promise))(function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r(function(t){t(e)})).then(s,a)}u((n=n.apply(t,e||[])).next())})};const ba=new qe(Ko),Aa=["call","estimateGas"];function wa(t,e){if(null==t)return null;if("string"==typeof t.message&&t.message.match("reverted")){const r=We(t.data)?t.data:null;if(!e||r)return{message:t.message,data:r}}if("object"==typeof t){for(const r in t){const n=wa(t[r],e);if(n)return n}return null}if("string"==typeof t)try{return wa(JSON.parse(t),e)}catch(t){}return null}function Ea(t,e,r){const n=r.transaction||r.signedTransaction;if("call"===t){const t=wa(e,!0);if(t)return t.data;ba.throwError("missing revert data in call exception; Transaction reverted without a reason string",qe.errors.CALL_EXCEPTION,{data:"0x",transaction:n,error:e})}if("estimateGas"===t){let r=wa(e.body,!1);null==r&&(r=wa(e,!1)),r&&ba.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",qe.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:t,transaction:n,error:e})}let i=e.message;throw e.code===qe.errors.SERVER_ERROR&&e.error&&"string"==typeof e.error.message?i=e.error.message:"string"==typeof e.body?i=e.body:"string"==typeof e.responseText&&(i=e.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&ba.throwError("insufficient funds for intrinsic transaction cost",qe.errors.INSUFFICIENT_FUNDS,{error:e,method:t,transaction:n}),i.match(/nonce (is )?too low/i)&&ba.throwError("nonce has already been used",qe.errors.NONCE_EXPIRED,{error:e,method:t,transaction:n}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&ba.throwError("replacement fee too low",qe.errors.REPLACEMENT_UNDERPRICED,{error:e,method:t,transaction:n}),i.match(/only replay-protected/i)&&ba.throwError("legacy pre-eip-155 transactions not supported",qe.errors.UNSUPPORTED_OPERATION,{error:e,method:t,transaction:n}),Aa.indexOf(t)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&ba.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",qe.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:n}),e}function Ta(t){return new Promise(function(e){setTimeout(e,t)})}function Ia(t){if(t.error){const e=new Error(t.error.message);throw e.code=t.error.code,e.data=t.error.data,e}return t.result}function Sa(t){return t?t.toLowerCase():t}const _a={};class Na extends u.Signer{constructor(t,e,r){if(super(),t!==_a)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");gr(this,"provider",e),null==r&&(r=0),"string"==typeof r?(gr(this,"_address",this.provider.formatter.address(r)),gr(this,"_index",null)):"number"==typeof r?(gr(this,"_index",r),gr(this,"_address",null)):ba.throwArgumentError("invalid address or index","addressOrIndex",r)}connect(t){return ba.throwError("cannot alter JSON-RPC Signer connection",qe.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new xa(_a,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then(t=>(t.length<=this._index&&ba.throwError("unknown account #"+this._index,qe.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(t[this._index])))}sendUncheckedTransaction(t){t=Ar(t);const e=this.getAddress().then(t=>(t&&(t=t.toLowerCase()),t));if(null==t.gasLimit){const r=Ar(t);r.from=e,t.gasLimit=this.provider.estimateGas(r)}return null!=t.to&&(t.to=Promise.resolve(t.to).then(t=>va(this,void 0,void 0,function*(){if(null==t)return null;const e=yield this.provider.resolveName(t);return null==e&&ba.throwArgumentError("provided ENS name resolves to null","tx.to",t),e}))),br({tx:br(t),sender:e}).then(({tx:e,sender:r})=>{null!=e.from?e.from.toLowerCase()!==r&&ba.throwArgumentError("from address mismatch","transaction",t):e.from=r;const n=this.provider.constructor.hexlifyTransaction(e,{from:!0});return this.provider.send("eth_sendTransaction",[n]).then(t=>t,t=>("string"==typeof t.message&&t.message.match(/user denied/i)&&ba.throwError("user rejected transaction",qe.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:e}),Ea("sendTransaction",t,n)))})}signTransaction(t){return ba.throwError("signing transactions is unsupported",qe.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(t){return va(this,void 0,void 0,function*(){const e=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(t);try{return yield qo(()=>va(this,void 0,void 0,function*(){const t=yield this.provider.getTransaction(r);if(null!==t)return this.provider._wrapTransaction(t,r,e)}),{oncePoll:this.provider})}catch(t){throw t.transactionHash=r,t}})}signMessage(t){return va(this,void 0,void 0,function*(){const e="string"==typeof t?Jr(t):t,r=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Ze(e),r.toLowerCase()])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ba.throwError("user rejected signing",qe.errors.ACTION_REJECTED,{action:"signMessage",from:r,messageData:t}),e}})}_legacySignMessage(t){return va(this,void 0,void 0,function*(){const e="string"==typeof t?Jr(t):t,r=yield this.getAddress();try{return yield this.provider.send("eth_sign",[r.toLowerCase(),Ze(e)])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ba.throwError("user rejected signing",qe.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:r,messageData:t}),e}})}_signTypedData(t,e,r){return va(this,void 0,void 0,function*(){const n=yield Xn.resolveNames(t,e,r,t=>this.provider.resolveName(t)),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Xn.getPayload(n.domain,e,n.value))])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ba.throwError("user rejected signing",qe.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:n.domain,types:e,value:n.value}}),t}})}unlock(t){return va(this,void 0,void 0,function*(){const e=this.provider,r=yield this.getAddress();return e.send("personal_unlockAccount",[r.toLowerCase(),t,null])})}}class xa extends Na{sendTransaction(t){return this.sendUncheckedTransaction(t).then(t=>({hash:t,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:e=>this.provider.waitForTransaction(t,e)}))}}const Ma={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};class ka extends ga{constructor(t,e){let r=e;null==r&&(r=new Promise((t,e)=>{setTimeout(()=>{this.detectNetwork().then(e=>{t(e)},t=>{e(t)})},0)})),super(r),t||(t=vr(this.constructor,"defaultUrl")()),gr(this,"connection",Object.freeze("string"==typeof t?{url:t}:Ar(t))),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 va(this,void 0,void 0,function*(){yield Ta(0);let t=null;try{t=yield this.send("eth_chainId",[])}catch(e){try{t=yield this.send("net_version",[])}catch(t){}}if(null!=t){const e=vr(this.constructor,"getNetwork");try{return e(hr.from(t).toNumber())}catch(e){return ba.throwError("could not detect network",qe.errors.NETWORK_ERROR,{chainId:t,event:"invalidNetwork",serverError:e})}}return ba.throwError("could not detect network",qe.errors.NETWORK_ERROR,{event:"noNetwork"})})}getSigner(t){return new Na(_a,this,t)}getUncheckedSigner(t){return this.getSigner(t).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then(t=>t.map(t=>this.formatter.address(t)))}send(t,e){const r={method:t,params:e,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Ir(r),provider:this});const n=["eth_chainId","eth_blockNumber"].indexOf(t)>=0;if(n&&this._cache[t])return this._cache[t];const i=Uo(this.connection,JSON.stringify(r),Ia).then(t=>(this.emit("debug",{action:"response",request:r,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",error:t,request:r,provider:this}),t});return n&&(this._cache[t]=i,setTimeout(()=>{this._cache[t]=null},0)),i}prepareRequest(t,e){switch(t){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[Sa(e.address),e.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[Sa(e.address),e.blockTag]];case"getCode":return["eth_getCode",[Sa(e.address),e.blockTag]];case"getStorageAt":return["eth_getStorageAt",[Sa(e.address),nr(e.position,32),e.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[e.signedTransaction]];case"getBlock":return e.blockTag?["eth_getBlockByNumber",[e.blockTag,!!e.includeTransactions]]:e.blockHash?["eth_getBlockByHash",[e.blockHash,!!e.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[e.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[e.transactionHash]];case"call":return["eth_call",[vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0}),e.blockTag]];case"estimateGas":return["eth_estimateGas",[vr(this.constructor,"hexlifyTransaction")(e.transaction,{from:!0})]];case"getLogs":return e.filter&&null!=e.filter.address&&(e.filter.address=Sa(e.filter.address)),["eth_getLogs",[e.filter]]}return null}perform(t,e){return va(this,void 0,void 0,function*(){if("call"===t||"estimateGas"===t){const t=e.transaction;if(t&&null!=t.type&&hr.from(t.type).isZero()&&null==t.maxFeePerGas&&null==t.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((e=Ar(e)).transaction=Ar(t),delete e.transaction.type)}}const r=this.prepareRequest(t,e);null==r&&ba.throwError(t+" not implemented",qe.errors.NOT_IMPLEMENTED,{operation:t});try{return yield this.send(r[0],r[1])}catch(r){return Ea(t,r,e)}})}_startEvent(t){"pending"===t.tag&&this._startPending(),super._startEvent(t)}_startPending(){if(null!=this._pendingFilter)return;const t=this,e=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=e,e.then(function(r){return function n(){t.send("eth_getFilterChanges",[r]).then(function(r){if(t._pendingFilter!=e)return null;let n=Promise.resolve();return r.forEach(function(e){t._emitted["t:"+e.toLowerCase()]="pending",n=n.then(function(){return t.getTransaction(e).then(function(e){return t.emit("pending",e),null})})}),n.then(function(){return Ta(1e3)})}).then(function(){if(t._pendingFilter==e)return setTimeout(function(){n()},0),null;t.send("eth_uninstallFilter",[r])}).catch(t=>{})}(),r}).catch(t=>{})}_stopEvent(t){"pending"===t.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(t)}static hexlifyTransaction(t,e){const r=Ar(Ma);if(e)for(const t in e)e[t]&&(r[t]=!0);var n,i;i=r,(n=t)&&"object"==typeof n||yr.throwArgumentError("invalid object","object",n),Object.keys(n).forEach(t=>{i[t]||yr.throwArgumentError("invalid object key - "+t,"transaction:"+t,n)});const o={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(function(e){if(null==t[e])return;const r=rr(hr.from(t[e]));"gasLimit"===e&&(e="gas"),o[e]=r}),["from","to","data"].forEach(function(e){null!=t[e]&&(o[e]=Ze(t[e]))}),t.accessList&&(o.accessList=Gs(t.accessList)),o}}const Pa=new qe(Ko);let Ca=1;function Oa(t,e){const r="Web3LegacyFetcher";return function(t,n){const i={method:t,params:n,id:Ca++,jsonrpc:"2.0"};return new Promise((t,n)=>{this.emit("debug",{action:"request",fetcher:r,request:Ir(i),provider:this}),e(i,(e,o)=>{if(e)return this.emit("debug",{action:"response",fetcher:r,error:e,request:i,provider:this}),n(e);if(this.emit("debug",{action:"response",fetcher:r,request:i,response:o,provider:this}),o.error){const t=new Error(o.error.message);return t.code=o.error.code,t.data=o.error.data,n(t)}t(o.result)})})}}class Ra extends ka{constructor(t,e){null==t&&Pa.throwArgumentError("missing provider","provider",t);let r=null,n=null,i=null;"function"==typeof t?(r="unknown:",n=t):(r=t.host||t.path||"",!r&&t.isMetaMask&&(r="metamask"),i=t,t.request?(""===r&&(r="eip-1193:"),n=function(t){return function(e,r){null==r&&(r=[]);const n={method:e,params:r};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Ir(n),provider:this}),t.request(n).then(t=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,response:t,provider:this}),t),t=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:n,error:t,provider:this}),t})}}(t)):t.sendAsync?n=Oa(0,t.sendAsync.bind(t)):t.send?n=Oa(0,t.send.bind(t)):Pa.throwArgumentError("unsupported provider","provider",t),r||(r="unknown:")),super(r,e),gr(this,"jsonRpcFetchFunc",n),gr(this,"provider",i)}send(t,e){return this.jsonRpcFetchFunc(t,e)}}function Ba(t,e){return{...t,quoteId:e.id,sellAmount:e.quote.sellAmount,buyAmount:e.quote.buyAmount}}function Da(t){return t.sellToken.toLowerCase()===p.toLowerCase()}function La(t){return"string"==typeof t?new i.ethers.Wallet(t):"request"in t||"send"in t?new Ra(t).getSigner():t}function Fa(t){return t+t*BigInt(20)/BigInt(100)}function Ua({quoteParameters:t,orderParameters:e}){return{...t,sellToken:e.sellToken}}new qe(Ko);const qa=function(t,e,r,n,i="0",o){try{return Promise.resolve(t.getAddress()).then(function(s){const a={...r,sellToken:_[n]},{quoteId:u}=a,l=function(t,e,r){return St.connect(("staging"===r?k:M)[t],e)}(n,t,a.env),h=Se({from:s,networkCostsAmount:i},a,e);return Promise.resolve(_e(n,h,o,a.env)).then(function(t){const r={...h,quoteId:u,appData:e,validTo:h.validTo.toString()};return Promise.resolve(l.estimateGas.createOrder(r,{value:h.sellAmount}).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),Ie))).then(function(e){const n=l.interface.encodeFunctionData("createOrder",[r]);return{orderId:t,transaction:{data:n,gasLimit:"0x"+Fa(e).toString(16),to:l.address,value:"0x"+BigInt(h.sellAmount).toString(16)}}})})})}catch(t){return Promise.reject(t)}},Ga=function(t,e,r,n,i="0",o){try{const{appDataKeccak256:s,fullAppData:a}=r;return Promise.resolve(qa(e,s,n,t.context.chainId,i,o)).then(function({orderId:r,transaction:n}){return Ae("Uploading app-data"),Promise.resolve(t.uploadAppData(s,a)).then(function(){return Ae("Sending on-chain order transaction"),Promise.resolve(e.sendTransaction(n)).then(function(t){return Ae(`On-chain order transaction sent, txHash: ${t.hash}, order: ${r}`),{txHash:t.hash,orderId:r}})})})}catch(t){return Promise.reject(t)}},Ha=function(t,e,r,n,i="0",o){try{let a;function s(s){if(a)return s;const{quoteId:u=null}=n,{appDataKeccak256:l,fullAppData:h}=r,c=t.context.chainId;return Promise.resolve(e.getAddress()).then(function(s){const a=Se({from:s,networkCostsAmount:i},n,r.appDataKeccak256);return Ae("Signing order..."),Promise.resolve(function(){try{return o===exports.SigningScheme.PRESIGN?Promise.resolve({signature:s,signingScheme:exports.SigningScheme.PRESIGN}):Promise.resolve(mt.signOrder(a,c,e)).then(function(t){return{signature:t.signature,signingScheme:Te[t.signingScheme]}})}catch(t){return Promise.reject(t)}}()).then(function({signature:e,signingScheme:r}){const n={...a,from:s,signature:e,signingScheme:r,quoteId:u,appData:h,appDataHash:l};return Ae("Posting order..."),Promise.resolve(t.sendOrder(n)).then(function(t){return Ae(`Order created, id: ${t}`),t})})})}void 0===o&&(o=exports.SigningScheme.EIP712);const u=function(){if(Da(n)){const o=n.quoteId;if("number"==typeof o)return Promise.resolve(Ga(t,e,r,{...n,quoteId:o},i)).then(function({orderId:t}){return a=1,t});throw new Error("quoteId is required for EthFlow orders")}}();return Promise.resolve(u&&u.then?u.then(s):s(u))}catch(l){return Promise.reject(l)}},za=function(t){try{return Promise.resolve(l.stringifyDeterministic(t)).then(function(t){return{fullAppData:t,appDataKeccak256:a.keccak256(a.toUtf8Bytes(t))}})}catch(t){return Promise.reject(t)}},ja=function({slippageBps:t,appCode:e,orderClass:r,partnerFee:n},i){try{const o=new l.MetadataApi;return Promise.resolve(o.generateAppDataDoc({appCode:e,metadata:{quote:{slippageBips:t},orderClass:{orderClass:r},partnerFee:n},...i})).then(function(t){return Promise.resolve(za(t)).then(function({fullAppData:e,appDataKeccak256:r}){return{doc:t,fullAppData:e,appDataKeccak256:r}})})}catch(t){return Promise.reject(t)}},Qa=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Ka=function(t,e,r){try{const n=La(t.signer),i=t.appCode,o=t.chainId;return Promise.resolve(n.getAddress()).then(function(s){return Promise.resolve(Va(t,{chainId:o,appCode:i,account:s},e,r)).then(function(t){return{result:{...t.result,signer:n},orderBookApi:t.orderBookApi}})})}catch(t){return Promise.reject(t)}},Va=function(t,e,r,n){try{const{appCode:i,chainId:s,account:a}=e,u=Da(t),l=u?{...t,sellToken:_[s]}:t,{sellToken:h,sellTokenDecimals:c,buyToken:f,buyTokenDecimals:d,amount:p,kind:m,partnerFee:y,validFor:g=we,slippageBps:v=Ee,env:b="prod"}=l;Ae(`Swap ${p} ${h} for ${f} on chain ${s}`);const A=n||new H({chainId:s,env:b}),w=l.receiver||a,E="sell"===m;return Ae("Building app data..."),Promise.resolve(ja({slippageBps:v,orderClass:"market",appCode:i,partnerFee:y},r?.appData)).then(function(t){const{appDataKeccak256:e,fullAppData:n}=t,i={from:a,sellToken:h,buyToken:f,receiver:w,validFor:g,appData:n,appDataHash:e,priceQuality:exports.PriceQuality.OPTIMAL,signingScheme:exports.SigningScheme.EIP712,...u?Ya:{},...E?{kind:exports.OrderQuoteSideKindSell.SELL,sellAmountBeforeFee:p}:{kind:exports.OrderQuoteSideKindBuy.BUY,buyAmountAfterFee:p},...r?.quoteRequest};return Ae("Getting quote..."),Promise.resolve(A.getQuote(i)).then(function(e){const r=st({orderParams:e.quote,slippagePercentBps:v,partnerFeeBps:y?.bps,sellDecimals:c,buyDecimals:d}),n=Se({from:a,networkCostsAmount:e.quote.feeAmount},Ba(l,e),t.appDataKeccak256);return Promise.resolve(function(t,e){try{return Promise.resolve(mt.getDomain(t)).then(function(t){return{domain:t,primaryType:be,types:{[be]:o.ORDER_TYPE_FIELDS,EIP712Domain:Qa},message:e}})}catch(t){return Promise.reject(t)}}(s,n)).then(function(i){return{result:{tradeParameters:l,amountsAndCosts:r,orderToSign:n,quoteResponse:e,appDataInfo:t,orderTypedData:i},orderBookApi:A}})})})}catch(t){return Promise.reject(t)}},Ya={signingScheme:exports.SigningScheme.EIP1271,onchainOrder:!0,verificationGasLimit:0},Ja=function({orderBookApi:t,result:{signer:e,appDataInfo:r,quoteResponse:n,tradeParameters:i}},o){try{return Promise.resolve(Ha(t,e,r,Ba(i,n),n.quote.feeAmount,o?.quoteRequest?.signingScheme))}catch(t){return Promise.reject(t)}},Wa=function(t,e,r){try{return Promise.resolve(Ka(t,e,r)).then(function(t){return Ja(t,e)})}catch(t){return Promise.reject(t)}},Xa=function(t,e,r){try{const{appCode:n,chainId:i,sellToken:o,buyToken:s,sellAmount:a,buyAmount:u,partnerFee:l,slippageBps:h=0,env:c="prod"}=t;Ae(`Limit order ${a} ${o} for ${u} ${s} on chain ${i}`);const f=La(t.signer),d=r||new H({chainId:i,env:c});return Ae("Building app data..."),Promise.resolve(ja({slippageBps:h,orderClass:"limit",appCode:n,partnerFee:l},e?.appData)).then(function(e){return Ha(d,f,e,t)})}catch(t){return Promise.reject(t)}},Za=function(t,e,r,n){try{const i=Mt.connect(r,t),o=E[e],s=i.interface.encodeFunctionData("setPreSignature",[n,!0]);return Promise.resolve(i.estimateGas.setPreSignature(n,!0).then(t=>BigInt(t.toHexString())).catch(t=>(console.error(t),Ie))).then(function(t){return{data:s,gasLimit:"0x"+Fa(t).toString(16),to:o,value:"0"}})}catch(t){return Promise.reject(t)}};exports.ALL_SUPPORTED_CHAIN_IDS=b,exports.BARN_ETH_FLOW_ADDRESS=x,exports.BARN_ETH_FLOW_ADDRESSES=k,exports.COMPOSABLE_COW=y,exports.COMPOSABLE_COW_CONTRACT_ADDRESS=S,exports.CONDITIONAL_ORDER_PARAMS_ABI=Dt,exports.COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS=E,exports.COW_PROTOCOL_VAULT_RELAYER_ADDRESS=T,exports.COW_SHED_712_TYPES=fe,exports.COW_SHED_FACTORY=g,exports.COW_SHED_IMPLEMENTATION=v,exports.COW_SHED_PROXY_INIT_CODE=ye,exports.CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS=te,exports.ConditionalOrder=Jt,exports.ConditionalOrderFactory=class{constructor(t){this.knownOrderTypes=void 0,this.knownOrderTypes=Object.entries(t).reduce((t,[e,r])=>(t[e.toLowerCase()]=r,t),{})}fromParams(t){const{handler:e}=t,r=this.knownOrderTypes[e.toLocaleLowerCase()];if(r)return r(t)}},exports.CowError=d,exports.CowShedHooks=class{constructor(t,e){this.chainId=void 0,this.customOptions=void 0,this.chainId=t,this.customOptions=e}proxyOf(t){const e=a.defaultAbiCoder.encode(["address"],[t]),r=a.solidityKeccak256(["bytes","bytes"],[this.proxyCreationCode(),a.defaultAbiCoder.encode(["address","address"],[this.getImplementationAddress(),t])]);return a.getCreate2Address(this.getFactoryAddress(),e,r)}encodeExecuteHooksForFactory(t,e,r,n,i){return me().encodeFunctionData("executeHooks",[t,e,r,n,i])}signCalls(t,e,r,n,i){try{const s=this;return Promise.resolve(n.getAddress()).then(function(u){const l=s.proxyOf(u),{domain:h,types:c,message:f}=s.infoToSign(t,e,r,l);return Promise.resolve(function(t,e,r,n,i){try{let s,u;function l(t){return s?t:a.joinSignature(a.splitSignature(h))}let h=null;const c=function(t,e){var r,n=-1;t:{for(var i=0;i<e.length;i++){var o=e[i][0];if(o){var s=o();if(s&&s.then)break t;if(s===t){n=i;break}}else n=i}if(-1!==n){do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then){r=!0;break t}var l=e[n][2];n++}while(l&&!l());return u}}const h=new ve,c=ge.bind(null,h,2);return(r?u.then(f):s.then(function r(s){for(;;){if(s===t){n=i;break}if(++i===e.length){if(-1!==n)break;return void ge(h,1,u)}if(o=e[i][0]){if((s=o())&&s.then)return void s.then(r).then(void 0,c)}else n=i}do{for(var a=e[n][1];!a;)n++,a=e[n][1];var u=a();if(u&&u.then)return void u.then(f).then(void 0,c);var l=e[n][2];n++}while(l&&!l());ge(h,1,u)})).then(void 0,c),h;function f(t){for(;;){var r=e[n][2];if(!r||r())break;n++;for(var i=e[n][1];!i;)n++,i=e[n][1];if((t=i())&&t.then)return void t.then(f).then(void 0,c)}ge(h,1,t)}}(t,[[function(){return o.SigningScheme.EIP712},function(){if(!o.isTypedDataSigner(e))throw new Error("signer does not support signing typed data");return Promise.resolve(e._signTypedData(r,n,i)).then(function(t){h=t,u=1})}],[function(){return o.SigningScheme.ETHSIGN},function(){return Promise.resolve(e.signMessage(a.arrayify(o.hashTypedData(r,n,i)))).then(function(t){h=t,u=1})}],[void 0,function(){throw new Error("invalid signing scheme")}]]);return Promise.resolve(c&&c.then?c.then(l):l(c))}catch(f){return Promise.reject(f)}}(i,n,h,c,f))})}catch(t){return Promise.reject(t)}}infoToSign(t,e,r,n){const i={calls:t,nonce:e,deadline:r};return{domain:this.getDomain(n),types:fe,message:i}}getDomain(t){return{name:"COWShed",version:"1.0.0",chainId:this.chainId,verifyingContract:t}}proxyCreationCode(){var t;return null!==(t=this.customOptions?.proxyCreationCode)&&void 0!==t?t:ye}getFactoryAddress(){var t;return null!==(t=this.customOptions?.factoryAddress)&&void 0!==t?t:g}getImplementationAddress(){var t;return null!==(t=this.customOptions?.implementationAddress)&&void 0!==t?t:v}},exports.DEFAULT_BACKOFF_OPTIONS=B,exports.DEFAULT_CONDITIONAL_ORDER_REGISTRY=ce,exports.DEFAULT_COW_API_CONTEXT=f,exports.DEFAULT_IPFS_READ_URI="https://gnosis.mypinata.cloud/ipfs",exports.DEFAULT_IPFS_WRITE_URI="https://api.pinata.cloud",exports.DEFAULT_LIMITER_OPTIONS=D,exports.DEFAULT_TOKEN_FORMATTER=(t,e)=>`${e}@${t}`,exports.DOMAIN_TYPE={EIP712Domain:[{type:"string",name:"name"},{type:"string",name:"version"},{type:"uint256",name:"chainId"},{type:"address",name:"verifyingContract"}]},exports.ENVS_LIST=c,exports.ETH_ADDRESS=p,exports.ETH_FLOW_ADDRESS=N,exports.ETH_FLOW_ADDRESSES=M,exports.EXTENSIBLE_FALLBACK_HANDLER=m,exports.EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS=I,exports.MAX_FREQUENCY=re,exports.MAX_UINT32=ee,exports.MAX_VALID_TO_EPOCH=P,exports.Multiplexer=Zt,exports.ORDER_BOOK_PROD_CONFIG=U,exports.ORDER_BOOK_STAGING_CONFIG=q,exports.ORDER_PRIMARY_TYPE=be,exports.OrderBookApi=H,exports.OrderBookApiError=O,exports.OrderSigningUtils=mt,exports.SUBGRAPH_PROD_CONFIG=ft,exports.SUBGRAPH_STAGING_CONFIG=dt,exports.SubgraphApi=class{constructor(t={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...f,...t}}getTotals(t={}){try{return Promise.resolve(this.runQuery(ut,void 0,t)).then(function(t){return t.totals[0]})}catch(t){return Promise.reject(t)}}getLastDaysVolume(t,e={}){try{return Promise.resolve(this.runQuery(lt,{days:t},e))}catch(t){return Promise.reject(t)}}getLastHoursVolume(t,e={}){try{return Promise.resolve(this.runQuery(ht,{hours:t},e))}catch(t){return Promise.reject(t)}}runQuery(t,e=undefined,r={}){try{const i=this,{chainId:o,env:s}=i.getContextWithOverride(r),a=i.getEnvConfigs(s)[o];if(null===a)throw new Error("Unsupported Network. The subgraph API is not available in the Network "+o);return Promise.resolve(function(r,i){try{var o=Promise.resolve(n.request(a,t,e))}catch(t){return i(t)}return o&&o.then?o.then(void 0,i):o}(0,function(r){throw console.error(`[subgraph:${i.API_NAME}]`,r),new d(`Error running query: ${t}. Variables: ${JSON.stringify(e)}. API: ${a}. Inner Error: ${r}`)}))}catch(t){return Promise.reject(t)}}getContextWithOverride(t={}){return{...this.context,...t}}getEnvConfigs(t){return this.context.baseUrls?this.context.baseUrls:"prod"===t?ft:dt}},exports.TWAP_ADDRESS=$t,exports.TradingSdk=class{constructor(t,e={enableLogging:!1}){this.traderParams=void 0,this.options=void 0,this.traderParams=t,this.options=e,e.enableLogging&&(Ae.enabled=!0)}getQuote(t,e){try{const r=this;return Promise.resolve(Ka(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){return{quoteResults:e.result,postSwapOrderFromQuote:()=>Ja({...e,result:{...e.result,tradeParameters:Ua({quoteParameters:e.result.tradeParameters,orderParameters:t})}})}})}catch(t){return Promise.reject(t)}}postSwapOrder(t,e){try{const r=this;return Promise.resolve(Wa(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postLimitOrder(t,e){try{const r=this;return Promise.resolve(Xa(r.mergeParams(t),e,r.options.orderBookApi))}catch(t){return Promise.reject(t)}}postSellNativeCurrencyOrder(t,e){try{const r=this;return Promise.resolve(Ka(r.mergeParams(t),e,r.options.orderBookApi)).then(function(e){const{tradeParameters:r,quoteResponse:n}=e.result;return Ga(e.orderBookApi,e.result.signer,e.result.appDataInfo,Ba(Ua({quoteParameters:r,orderParameters:t}),n))})}catch(t){return Promise.reject(t)}}getPreSignTransaction(t){try{const e=this,r=La(e.traderParams.signer);return Promise.resolve(Za(r,e.traderParams.chainId,t.account,t.orderId))}catch(t){return Promise.reject(t)}}mergeParams(t){return{...t,...this.traderParams}}},exports.Twap=ue,exports.WRAPPED_NATIVE_CURRENCIES=_,exports.buildAppData=ja,exports.calculateUniqueOrderId=_e,exports.createSetDomainVerifierTx=function(t,e){return Nt.createInterface().encodeFunctionData("setDomainVerifier",[t,e])},exports.decodeParams=Ft,exports.encodeParams=Lt,exports.formatEpoch=qt,exports.fromStructToOrder=zt,exports.generateAppDataFromDoc=za,exports.getBlockInfo=kt,exports.getCoWShedFactoryInterface=me,exports.getCoWShedInterface=function(){return de||(de=bt.createInterface()),de},exports.getDomainVerifier=function(t,e,r,n){try{const i=Nt.connect(I[r],n);return Promise.resolve(i.callStatic.domainVerifiers(t,e))}catch(t){return Promise.reject(t)}},exports.getEthFlowTransaction=qa,exports.getIsValidResult=jt,exports.getOrderToSign=Se,exports.getPreSignTransaction=Za,exports.getQuote=Va,exports.getQuoteAmountsAndCosts=st,exports.getQuoteWithSigner=Ka,exports.isComposableCow=function(t,e){return t===S[e]},exports.isExtensibleFallbackHandler=function(t,e){return t===I[e]},exports.isValidAbi=Ut,exports.logPrefix="cow-sdk:",exports.mapAddressToSupportedNetworks=w,exports.mapQuoteAmountsAndCosts=function(t,e){const{costs:{networkFee:r,partnerFee:n}}=t;function i(t){return{sellAmount:e(t.sellAmount),buyAmount:e(t.buyAmount)}}return{...t,costs:{...t.costs,networkFee:{...r,amountInSellCurrency:e(r.amountInSellCurrency),amountInBuyCurrency:e(r.amountInBuyCurrency)},partnerFee:{...n,amount:e(n.amount)}},beforeNetworkCosts:i(t.beforeNetworkCosts),afterNetworkCosts:i(t.afterNetworkCosts),afterPartnerFees:i(t.afterPartnerFees),afterSlippage:i(t.afterSlippage)}},exports.mapSupportedNetworks=A,exports.postCoWProtocolTrade=Ha,exports.postLimitOrder=Xa,exports.postSellNativeCurrencyOrder=Ga,exports.postSwapOrder=Wa,exports.postSwapOrderFromQuote=Ja,exports.request=C,exports.swapParamsToLimitOrderParams=Ba,exports.transformDataToStruct=le,exports.transformStructToData=he;
28
+ `,Sd="https://api.thegraph.com/subgraphs/name/cowprotocol",Id={[exports.SupportedChainId.MAINNET]:Sd+"/cow",[exports.SupportedChainId.GNOSIS_CHAIN]:Sd+"/cow-gc",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null,[exports.SupportedChainId.POLYGON]:null,[exports.SupportedChainId.AVALANCHE]:null},xd={[exports.SupportedChainId.MAINNET]:Sd+"/cow-staging",[exports.SupportedChainId.GNOSIS_CHAIN]:Sd+"/cow-gc-staging",[exports.SupportedChainId.ARBITRUM_ONE]:null,[exports.SupportedChainId.BASE]:null,[exports.SupportedChainId.SEPOLIA]:null,[exports.SupportedChainId.POLYGON]:null,[exports.SupportedChainId.AVALANCHE]:null};var Cd,kd;exports.ProofLocation=void 0,(Cd=exports.ProofLocation||(exports.ProofLocation={}))[Cd.PRIVATE=0]="PRIVATE",Cd[Cd.EMITTED=1]="EMITTED",Cd[Cd.SWARM=2]="SWARM",Cd[Cd.WAKU=3]="WAKU",Cd[Cd.RESERVED=4]="RESERVED",Cd[Cd.IPFS=5]="IPFS",exports.PollResultCode=void 0,(kd=exports.PollResultCode||(exports.PollResultCode={})).SUCCESS="SUCCESS",kd.UNEXPECTED_ERROR="UNEXPECTED_ERROR",kd.TRY_NEXT_BLOCK="TRY_NEXT_BLOCK",kd.TRY_ON_BLOCK="TRY_ON_BLOCK",kd.TRY_AT_EPOCH="TRY_AT_EPOCH",kd.DONT_TRY_AGAIN="DONT_TRY_AGAIN";const Pd=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)}},_d=["erc20","0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9"],Nd=["external","0xabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632"],Md=["internal","0x4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce"],Rd=["sell","0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775"],Od=["buy","0x6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc"],Dd=["tuple(address handler, bytes32 salt, bytes staticInput)"];function Bd(e){return r.utils.defaultAbiCoder.encode(Dd,[e])}function Fd(e){const{handler:t,salt:n,staticInput:i}=r.utils.defaultAbiCoder.decode(Dd,e)[0];return{handler:t,salt:n,staticInput:i}}function Ld(e,t){try{r.utils.defaultAbiCoder.encode(e,t)}catch(e){return!1}return!0}function Ud(e){return new Date(1e3*e).toISOString()}function Gd(e){if(_d.includes(e))return s.OrderBalance.ERC20;if(Nd.includes(e))return s.OrderBalance.EXTERNAL;if(Md.includes(e))return s.OrderBalance.INTERNAL;throw new Error(`Unknown balance type: ${e}`)}function Hd(e){if(Rd.includes(e))return s.OrderKind.SELL;if(Od.includes(e))return s.OrderKind.BUY;throw new Error(`Unknown kind: ${e}`)}function qd(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:Hd(u.toString()),sellTokenBalance:Gd(s.toString()),buyTokenBalance:Gd(o.toString())}}function jd(e){return e.isValid}let Vd,zd;function Kd(){return Vd||(Vd=ht.createInterface()),Vd}function Wd(e,t){return zd||(zd=ht.connect(ye[e],t)),zd}class Qd{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.utils.keccak256(r.utils.randomBytes(32)),data:i,hasOffChainInput:o=!1}=e;if(!r.ethers.utils.isAddress(t))throw new Error(`Invalid handler: ${t}`);if(!r.ethers.utils.isHexString(n)||32!==r.ethers.utils.hexDataLength(n))throw new Error(`Invalid salt: ${n}`);this.handler=t,this.salt=n,this.data=i,this.staticInput=this.transformDataToStruct(i),this.hasOffChainInput=o}get context(){}assertIsValid(){const e=this.isValid();if(!jd(e))throw new Error(`Invalid order: ${e.reason}`)}get createCalldata(){this.assertIsValid();const e=this.context,t=Kd(),n={handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()};if(e){const i=e.factoryArgs?r.utils.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(),Kd().encodeFunctionData("remove",[this.id])}get id(){return r.utils.keccak256(this.serialize())}get ctx(){return this.isSingleOrder?this.id:r.constants.HashZero}get leaf(){return{handler:this.handler,salt:this.salt,staticInput:this.encodeStaticInput()}}static leafToId(e){return r.utils.keccak256(Bd(e))}get offChainInput(){return"0x"}encodeStaticInputHelper(e,t){return r.utils.defaultAbiCoder.encode(e,[t])}poll(e){try{const t=this,{chainId:r,owner:n,provider:i,orderBookApi:o}=e,s=Wd(r,i);return Promise.resolve(function(i,a){try{var u=function(){const i=t.isValid();return jd(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(Promise.resolve().then(function(){/*#__PURE__*/return h(require("@cowprotocol/contracts"))})).then(function({computeOrderUid:n}){return Promise.resolve(st.getDomain(e)).then(function(e){return n(e,r,t)})})}catch(e){return Promise.reject(e)}}(r,n,qd(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:exports.PollResultCode.SUCCESS,order:i,signature:s}}const u=function(){if(n)return Promise.resolve(t.handlePollFailedAlreadyPresent(r,i,e)).then(function(e){if(e)return o=1,e;const t={result:exports.PollResultCode.TRY_NEXT_BLOCK,reason:"Order already in orderbook"};return o=1,t})}();return u&&u.then?u.then(a):a(u)})})}):{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`NotAuthorized: Order ${t.id} is not authorized for ${n} on chain ${r}`}})}):{result:exports.PollResultCode.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:exports.PollResultCode.UNEXPECTED_ERROR,error:e}}))}catch(e){return Promise.reject(e)}}isAuthorized(e){const{chainId:t,owner:r,provider:n}=e;return Wd(t,n).callStatic.singleOrders(r,this.id)}cabinet(e){const{chainId:t,owner:r,provider:n}=e;return Wd(t,n).callStatic.cabinet(r,this.ctx)}static deserializeHelper(e,t,n,i){try{const{handler:o,salt:s,staticInput:a}=Fd(e);if(o!=t)throw new Error("HandlerMismatch");const[u]=r.utils.defaultAbiCoder.decode(n,a);return i(u,s)}catch(e){throw"HandlerMismatch"===e.message?e:new Error("InvalidSerializedConditionalOrder")}}}const Jd=["address","bytes32","bytes"],Yd=["tuple(bytes32[] proof, tuple(address handler, bytes32 salt, bytes staticInput) params)[]"];class Xd{constructor(e,t,r,n=exports.ProofLocation.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(!Xd.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:n,root:i,location:o}=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(!Xd.orderTypeRegistry.hasOwnProperty(n))throw new Error(`Unknown order type: ${n}`);e[r]=new(0,Xd.orderTypeRegistry[n])(i)}return e}return"object"==typeof t&&null!==t&&t.hasOwnProperty("type")&&t.hasOwnProperty("hex")&&"BigNumber"===t.type?r.BigNumber.from(t):t}),s=new Xd(t,n,i);return s.location=o,s}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=c.StandardMerkleTree.of(Object.values(this.orders).map(e=>[...Object.values(e.leaf)]),Jd)),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 exports.ProofLocation.PRIVATE:return Promise.resolve("0x");case exports.ProofLocation.EMITTED:return Promise.resolve(i.encodeToABI(t));case exports.ProofLocation.SWARM:case exports.ProofLocation.WAKU:case exports.ProofLocation.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.utils.hexlify(r.utils.arrayify(t)),i.location=e,{location:e,data:t}}catch(e){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=Wd(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.utils.defaultAbiCoder.encode(Yd,[this.getProofs(e)])}encodeToJSON(e){return JSON.stringify(this.getProofs(e))}reset(){this.tree=void 0}static registerOrderType(e,t){Xd.orderTypeRegistry[e]=t}static resetOrderTypeRegistry(){Xd.orderTypeRegistry={}}}Xd.orderTypeRegistry={};const Zd="0x6cF1e9cA41f7611dEf408122793c358a3d11E5a5",$d="0x52eD56Da04309Aca4c3FECC595298d80C2f16BAc",eh=r.BigNumber.from(2).pow(32).sub(1),th=r.BigNumber.from(31536e3),rh=["tuple(address sellToken, address buyToken, address receiver, uint256 partSellAmount, uint256 minPartLimit, uint256 t0, uint256 n, uint256 t, uint256 span, bytes32 appData)"];var nh,ih;exports.DurationType=void 0,(nh=exports.DurationType||(exports.DurationType={})).AUTO="AUTO",nh.LIMIT_DURATION="LIMIT_DURATION",exports.StartTimeValue=void 0,(ih=exports.StartTimeValue||(exports.StartTimeValue={})).AT_MINING_TIME="AT_MINING_TIME",ih.AT_EPOCH="AT_EPOCH";const oh={startType:exports.StartTimeValue.AT_MINING_TIME},sh={durationType:exports.DurationType.AUTO};class ah extends Qd{constructor(e){const{handler:t,salt:r,data:n,hasOffChainInput:i}=e;if(t!==Zd)throw new Error(`InvalidHandler: Expected: ${Zd}, provided: ${t}`);super({handler:Zd,salt:r,data:n,hasOffChainInput:i}),this.isSingleOrder=!0}static fromData(e,t){return new ah({handler:Zd,data:e,salt:t})}static fromParams(e){return ah.deserialize(Bd(e))}get context(){return this.staticInput.t0.gt(0)?super.context:{address:$d,factoryArgs:void 0}}get orderType(){return"twap"}isValid(){const e=(()=>{const{sellToken:e,sellAmount:t,buyToken:n,buyAmount:i,startTime:o=oh,numberOfParts:s,timeBetweenParts:a,durationOfPart:u=sh}=this.data;if(e==n)return"InvalidSameToken";if(e==r.constants.AddressZero||n==r.constants.AddressZero)return"InvalidToken";if(!t.gt(r.constants.Zero))return"InvalidSellAmount";if(!i.gt(r.constants.Zero))return"InvalidMinBuyAmount";if(o.startType===exports.StartTimeValue.AT_EPOCH){const e=o.epoch;if(!e.gte(r.constants.Zero)||!e.lt(eh))return"InvalidStartTime"}return s.gt(r.constants.One)&&s.lte(eh)?a.gt(r.constants.Zero)&&a.lte(th)?u.durationType!==exports.DurationType.LIMIT_DURATION||u.duration.lte(a)?Ld(rh,[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===exports.StartTimeValue.AT_EPOCH?Promise.resolve(n.epoch.toNumber()):Promise.resolve(t.cabinet(e)).then(function(e){const t=r.utils.defaultAbiCoder.decode(["uint256"],e)[0];if(t.gt(eh))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===exports.DurationType.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(Pd(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:exports.PollResultCode.TRY_AT_EPOCH,epoch:e,reason:`TWAP hasn't started yet. Starts at ${e} (${Ud(e)})`};const r=t.endTimestamp(e);return i>=r?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`TWAP has expired. Expired at ${r} (${Ud(r)})`}:void 0})}catch(e){return n(e)}return o&&o.then?o.then(void 0,n):o}(0,function(e){return e?.message?.includes("Cabinet is not set")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${e?.message}. User likely removed the order.`}:e?.message?.includes("Cabinet epoch out of range")?{result:exports.PollResultCode.DONT_TRY_AGAIN,reason:`${e?.message}`}:{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`Unexpected error: ${e.message}`,error:e}})})}catch(e){return Promise.reject(e)}}handlePollFailedAlreadyPresent(e,t,r){try{const e=this;return Promise.resolve(Pd(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:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP part hash't started. First TWAP part start at ${e} (${Ud(e)})`,error:void 0};const t=s.mul(o).add(e).toNumber();if(i>=t)return{result:exports.PollResultCode.UNEXPECTED_ERROR,reason:`TWAP is expired. Expired at ${t} (${Ud(t)})`,error:void 0};const r=Math.floor((i-e)/o);if(r===s.toNumber()-1)return{result:exports.PollResultCode.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:exports.PollResultCode.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} (${Ud(n)})`}})})}catch(e){return Promise.reject(e)}}serialize(){return Bd(this.leaf)}encodeStaticInput(){return super.encodeStaticInputHelper(rh,this.staticInput)}static deserialize(e){return super.deserializeHelper(e,Zd,rh,(e,t)=>new ah({handler:Zd,salt:t,data:lh(e)}))}toString(){const{sellAmount:e,sellToken:t,buyAmount:r,buyToken:n,numberOfParts:i,startTime:o=oh,timeBetweenParts:s,durationOfPart:a=sh,receiver:u,appData:l}=this.data,c=o.startType===exports.StartTimeValue.AT_MINING_TIME?"AT_MINING_TIME":o.epoch.toNumber(),d=a.durationType===exports.DurationType.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 uh(e)}transformStructToData(e){return lh(e)}}function uh(e){const{sellAmount:t,buyAmount:n,numberOfParts:i,startTime:o=oh,timeBetweenParts:s,durationOfPart:a=sh,...u}=e,{partSellAmount:l,minPartLimit:c}=i&&!i.isZero()?{partSellAmount:t.div(i),minPartLimit:n.div(i)}:{partSellAmount:r.constants.Zero,minPartLimit:r.constants.Zero},d=a.durationType===exports.DurationType.AUTO?r.constants.Zero:a.duration;return{partSellAmount:l,minPartLimit:c,t0:o.startType===exports.StartTimeValue.AT_MINING_TIME?r.constants.Zero:o.epoch,n:i,t:s,span:d,...u}}function lh(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:exports.DurationType.AUTO}:{durationType:exports.DurationType.LIMIT_DURATION,duration:s},h=o.isZero()?{startType:exports.StartTimeValue.AT_MINING_TIME}:{startType:exports.StartTimeValue.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 ch={[Zd]:e=>ah.fromParams(e)};Object.defineProperty(exports,"WeirollContract",{enumerable:!0,get:function(){return u.Contract}}),Object.defineProperty(exports,"WeirollPlanner",{enumerable:!0,get:function(){return u.Planner}}),exports.ADDITIONAL_TARGET_CHAINS_MAP=ne,exports.ALL_CHAINS=ie,exports.ALL_CHAINS_IDS=oe,exports.ALL_SUPPORTED_CHAINS=te,exports.ALL_SUPPORTED_CHAINS_MAP=ee,exports.ALL_SUPPORTED_CHAIN_IDS=re,exports.AcrossBridgeProvider=class{constructor(e={}){this.options=void 0,this.api=void 0,this.cowShedSdk=void 0,this.info={name:"Across",logoUrl:`${Uc}/across/across-logo.png`},this.options=e,this.api=new Vc(e.apiOptions),this.cowShedSdk=new sd(e.cowShedOptions)}getNetworks(){return Promise.resolve(Ad)}getBuyTokens(e){try{const t=this;if(!t.options.getTokenInfos)throw new Error("'getTokenInfos' parameter is required for AcrossBridgeProvider constructor");const r=jc[e];if(!r)return Promise.resolve([]);const n=Object.values(r.tokens).filter(e=>Boolean(e));return Promise.resolve(t.options.getTokenInfos(e,n))}catch(e){return Promise.reject(e)}}getIntermediateTokens(e){try{if(e.kind!==s.OrderKind.SELL)throw new Error("Only SELL is supported for now");const{sellTokenChainId:n,buyTokenChainId:i,buyTokenAddress:o}=e,a=function(e,t){const r=Jc(e),n=Jc(t);if(r&&n)return{sourceChainConfig:r,targetChainConfig:n}}(n,i);if(!a)return Promise.resolve([]);const{sourceChainConfig:u,targetChainConfig:l}=a,c=(t=o,r=l,Object.keys(r.tokens).find(e=>r.tokens[e]===t));if(!c)return Promise.resolve([]);const d=function(e,t){return t.tokens[e]}(c,u);return Promise.resolve(d?[d]:[])}catch(e){return Promise.reject(e)}var t,r}getQuote(e){try{const t=this,{sellTokenAddress:r,sellTokenChainId:n,buyTokenChainId:i,amount:o,receiver:a}=e;return Promise.resolve(t.api.getSuggestedFees({token:r,originChainId:n,destinationChainId:i,amount:o,recipient:null!=a?a:void 0})).then(function(t){return function(e,t,r){const{kind:n}=e;return{isSell:n===s.OrderKind.SELL,amountsAndCosts:Yc(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=ad[e];if(!t)throw new Error("Spoke pool address not found for chain: "+e);return fd(new Bc(t,yd),exports.WeirollCommandFlags.CALL)}(i),d=function(e){const t=ud[e];if(!t)throw new Error("Math contract address not found for chain: "+e);return fd(new Bc(t,md),exports.WeirollCommandFlags.CALL)}(i),h=function(e){return fd(new Bc(e,gd),exports.WeirollCommandFlags.STATICCALL)}(o),p=function(e){return fd(new Bc(e,bd),exports.WeirollCommandFlags.CALL)}(o),f=n.getCowShedAccount(i,u),{suggestedFees:m}=r;return pd(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){return 11e4}getSignedHook(e,t,r){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})).then(function({signedMulticall:e,cowShedAccount:t,gasLimit:r}){const{to:n,data:i}=e;return{postHook:{target:n,callData:i,gasLimit:r.toString(),dappId:vd},recipient:t}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getBridgingId(e,t,r){try{throw new Error("Not implemented")}catch(e){return Promise.reject(e)}}getExplorerUrl(e){return`https://app.across.to/transactions/${e}`}getStatus(e){try{throw new Error("Not implemented")}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)}}},exports.BARN_ETH_FLOW_ADDRESS=be,exports.BARN_ETH_FLOW_ADDRESSES=Ae,exports.BridgeProviderQuoteError=m,exports.BridgingSdk=class{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&&Ie(e.enableLogging);const o=null!==(t=e.tradingSdk)&&void 0!==t?t:new gl,s=null!==(r=o?.options.orderBookApi)&&void 0!==r?r:new Me;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(te)}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 i=this,{sellTokenChainId:o,buyTokenChainId:s}=e,a=i.config.tradingSdk;if(o!==s){var r;const o=ll(e.signer),s=null!==(r=i.config.getErc20Decimals)&&void 0!==r?r:(n=o,(e,t)=>new Bc(t,Fc,n).decimals());return Promise.resolve(function(e){try{const{provider:t,swapAndBridgeRequest:r,advancedSettings:n,getErc20Decimals:i,tradingSdk:o,bridgeHookSigner:s}=e,{kind:a,sellTokenChainId:u,sellTokenAddress:l,buyTokenChainId:c,buyTokenAddress:d,amount:h,signer:p,...f}=r,y=ll(p);if(a!==exports.OrderKind.SELL)throw new Error("Bridging only support SELL orders");return Se(`Cross-chain ${a} ${h} ${l} (source chain ${u}) for ${d} (target chain ${c})`),Promise.resolve(function(e){try{const{provider:t,getErc20Decimals:r,swapAndBridgeRequest:n}=e,{sellTokenChainId:i}=n;return Promise.resolve(t.getIntermediateTokens(n)).then(function(e){if(0===e.length)throw new m("No path found (not intermediate token for bridging)",{});const t=e[0];return Se(`Using ${t} as intermediate tokens`),Promise.resolve(r(i,t)).then(function(e){return{...n,sellTokenAddress:t,sellTokenDecimals:e}})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:r,provider:t,getErc20Decimals:i})).then(function(e){const i=vl(t.getGasLimitEstimationForHook(e));Se(`Using mocked hook for swap gas estimation: ${JSON.stringify(i)}`);const{sellTokenAddress:c,sellTokenDecimals:d}=e,p={...f,kind:a,chainId:u,sellToken:l,buyToken:c,buyTokenDecimals:d,amount:h.toString(),signer:y},{signer:m,...g}=p;Se(`Getting a quote for the swap (sell token to buy intermediate token). Delegate to trading SDK with params: ${JSON.stringify(g,ke)}`);const b=n?.appData?.metadata?.hooks;return Promise.resolve(o.getQuoteResults(p,{...n,appData:{...n?.appData,metadata:{hooks:{pre:b?.pre,post:[...b?.post||[],i]}}}})).then(function({result:n,orderBookApi:o}){const a=function(o,s){try{return Promise.resolve(function(e){try{const{swapResult:t,bridgeRequestWithoutAmount:r,provider:n,intermediateTokenAmount:i,signer:o,mockedHook:s,appDataOverride:a}=e,u={...r,amount:i};return Promise.resolve(n.getQuote(u)).then(function(e){return Promise.resolve(n.getUnsignedBridgeCall(u,e)).then(function(r){return Promise.resolve(n.getSignedHook(u.sellTokenChainId,r,o)).then(function(i){return Promise.resolve(Ct(t.appDataInfo.doc,a||{})).then(function(t){const o=t.doc.metadata.hooks,a=(o?.post||[]).some(e=>Al(e,i.postHook));return Promise.resolve(Ct(t.doc,{metadata:{hooks:{pre:o?.pre,post:[...o?.post||[],...a?[]:[i.postHook]].filter(e=>!Al(e,s))}}})).then(function(t){return{bridgeResult:{providerInfo:n.info,tradeParameters:u,bridgeCallDetails:{unsignedBridgeCall:r,preAuthorizedBridgingHook:i},isSell:e.isSell,expectedFillTimeSeconds:e.expectedFillTimeSeconds,fees:e.fees,limits:e.limits,quoteTimestamp:e.quoteTimestamp,amountsAndCosts:e.amountsAndCosts},bridgeHook:i,appDataInfo:t}})})})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:{...r,kind:exports.OrderKind.SELL},swapResult:n,bridgeRequestWithoutAmount:e,provider:t,intermediateTokenAmount:u,signer:o,mockedHook:i,appDataOverride:s})).then(function({bridgeHook:e,appDataInfo:{doc:t,fullAppData:r,appDataKeccak256:i},bridgeResult:o}){return Se(`Bridge hook for swap: ${JSON.stringify(e)}`),n.tradeParameters.receiver=e.recipient,Se(`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)}},u=n.amountsAndCosts.afterSlippage.buyAmount;return Se(`Expected to receive ${u} of the intermediate token (${function(e,t){if("string"!=typeof e&&wl.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Tl.indexOf(t);-1!==e&&(t=3*e)}return _r(e,null!=t?t:18)}(u.toString(),d).toString()})`),Promise.resolve(a(s?ll(s):y)).then(function(e){return{swap:e.swapResult,bridge:e.bridgeResult,postSwapOrderFromQuote:function(e){try{return Promise.resolve(a(y,e?.appData)).then(function({swapResult:t}){const r={result:{...t,signer:y},orderBookApi:o};return pl(r,{...e,appData:t.appDataInfo.doc})})}catch(e){return Promise.reject(e)}}}})})})}catch(e){return Promise.reject(e)}}({swapAndBridgeRequest:e,advancedSettings:t,tradingSdk:a,provider:i.provider,getErc20Decimals:s,bridgeHookSigner:t?.quoteSigner}))}return Promise.resolve(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 Se(`Single-chain swap: Delegate to trading SDK with params ${JSON.stringify(c,ke)}`),n.getQuote(u,r)}({quoteBridgeRequest:e,advancedSettings:t,tradingSdk:a}))}catch(e){return Promise.reject(e)}var n}getOrder(e){try{const t=this,{orderBookApi:r}=t.config,{orderId:n,chainId:i,env:o}=e;return Promise.resolve(function(e){try{const{orderId:t,chainId:r,orderBookApi:n,providers:i,env:o}=e,s={chainId:r,env:o};return Promise.resolve(n.getOrder(t,s)).then(function(e){var o;const a=b(null!==(o=e.fullAppData)&&void 0!==o?o:void 0).find(e=>e.dappId?.startsWith(Lc));if(!a)throw new Error(`Order ${t} is not a cross-chain order`);const u=a.dappId?.split(Lc).pop(),l=i.find(e=>e.info.name===u);if(!l)throw new Error(`Unknown Bridge provider: ${u}. 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){if(n.length>0){const i=n[0];if(!i.txHash)throw new Error(`No tx hash found for order ${t} . First trade, with log index ${i.logIndex}`);return Promise.resolve(l.getBridgingId(t,i.txHash,i.logIndex)).then(function(t){return Promise.resolve(l.getStatus(t)).then(function({status:n,fillTimeInSeconds:i}){const o=l.getExplorerUrl(t);return{chainId:r,order:e,status:n,bridgingId:t,explorerUrl:o,fillTimeInSeconds:i}})})}return{chainId:r,order:e,status:exports.BridgeStatus.NOT_INITIATED}})})}catch(e){return Promise.reject(e)}}({orderId:n,chainId:i,orderBookApi:r,providers:t.config.providers,env:o||r.context.env}))}catch(e){return Promise.reject(e)}}},exports.COMPOSABLE_COW=ce,exports.COMPOSABLE_COW_CONTRACT_ADDRESS=ye,exports.CONDITIONAL_ORDER_PARAMS_ABI=Dd,exports.COW_PROTOCOL_SETTLEMENT_CONTRACT_ADDRESS=pe,exports.COW_PROTOCOL_VAULT_RELAYER_ADDRESS=fe,exports.COW_SHED_712_TYPES=nd,exports.COW_SHED_FACTORY=de,exports.COW_SHED_IMPLEMENTATION=he,exports.COW_SHED_PROXY_INIT_CODE=rd,exports.CURRENT_BLOCK_TIMESTAMP_FACTORY_ADDRESS=$d,exports.ConditionalOrder=Qd,exports.ConditionalOrderFactory=class{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)}},exports.CowError=E,exports.CowShedHooks=id,exports.CowShedSdk=sd,exports.DEFAULT_BACKOFF_OPTIONS=C,exports.DEFAULT_CONDITIONAL_ORDER_REGISTRY=ch,exports.DEFAULT_COW_API_CONTEXT=Ce,exports.DEFAULT_IPFS_READ_URI="https://gnosis.mypinata.cloud/ipfs",exports.DEFAULT_IPFS_WRITE_URI="https://api.pinata.cloud",exports.DEFAULT_LIMITER_OPTIONS=k,exports.DEFAULT_TOKEN_FORMATTER=(e,t)=>`${t}@${e}`,exports.ENVS_LIST=xe,exports.ETH_ADDRESS=ue,exports.ETH_FLOW_ADDRESS=ge,exports.ETH_FLOW_ADDRESSES=ve,exports.EXTENSIBLE_FALLBACK_HANDLER=le,exports.EXTENSIBLE_FALLBACK_HANDLER_CONTRACT_ADDRESS=me,exports.MAX_FREQUENCY=th,exports.MAX_UINT32=eh,exports.MAX_VALID_TO_EPOCH=we,exports.MockBridgeProvider=class{constructor(){this.info={name:"Mock",logoUrl:`${Uc}/mock/mock-logo.png`}}getNetworks(){return Promise.resolve([L,X,W])}getBuyTokens(e){try{return Promise.resolve(Hc.filter(t=>t.chainId===e))}catch(e){return Promise.reject(e)}}getIntermediateTokens({sellTokenChainId:e}){try{var t;return Promise.resolve(null!==(t=qc[e])&&void 0!==t?t:[])}catch(e){return Promise.reject(e)}}getQuote(e){try{return Promise.resolve({isSell:!0,amountsAndCosts:{costs:{bridgingFee:{feeBps:10,amountInSellCurrency:123456n,amountInBuyCurrency:123456n}},beforeFee:{sellAmount:123456n,buyAmount:123456n},afterFee:{sellAmount:123456n,buyAmount:123456n},afterSlippage:{sellAmount:123456n,buyAmount:123456n},slippageBps:0},quoteTimestamp:Date.now(),expectedFillTimeSeconds:128,fees:{bridgeFee:1n,destinationGasFee:2n},limits:{minDeposit:1n,maxDeposit:100000n}})}catch(e){return Promise.reject(e)}}getGasLimitEstimationForHook(e){return 11e4}getUnsignedBridgeCall(e,t){return Promise.resolve(Gc)}getSignedHook(e,t,r){try{return Promise.resolve({recipient:"0x0000000000000000000000000000000000000001",postHook:{target:"0x0000000000000000000000000000000000000002",callData:"0x1",gasLimit:"0x2",dappId:"MockBridgeProvider"}})}catch(e){return Promise.reject(e)}}decodeBridgeHook(e){try{return Promise.resolve({kind:exports.OrderKind.SELL,provider:this.info,account:"0x0000000000000000000000000000000000000001",sellTokenChainId:1,sellTokenAddress:"0x0000000000000000000000000000000000000001",sellTokenAmount:"123456",sellTokenDecimals:18,buyTokenChainId:1,buyTokenAddress:"0x0000000000000000000000000000000000000002",buyTokenDecimals:18,minBuyAmount:"123456",receiver:"0x0000000000000000000000000000000000000001",signer:"",appCode:"MOCK"})}catch(e){return Promise.reject(e)}}getBridgingId(e,t,r){return Promise.resolve("123456789asdfg")}getExplorerUrl(e){return"https://www.google.com/search?q="+e}getStatus(e){try{return Promise.resolve({status:exports.BridgeStatus.IN_PROGRESS,fillTimeInSeconds:67})}catch(e){return Promise.reject(e)}}getCancelBridgingTx(e){return Promise.resolve(Gc)}getRefundBridgingTx(e){return Promise.resolve(Gc)}},exports.Multiplexer=Xd,exports.NATIVE_CURRENCY_ADDRESS=_,exports.ORDER_BOOK_PROD_CONFIG=Pe,exports.ORDER_BOOK_STAGING_CONFIG=_e,exports.ORDER_PRIMARY_TYPE=A,exports.OrderBookApi=Me,exports.OrderBookApiError=I,exports.OrderSigningUtils=st,exports.SUBGRAPH_PROD_CONFIG=Id,exports.SUBGRAPH_STAGING_CONFIG=xd,exports.SubgraphApi=class{constructor(e={}){this.API_NAME="CoW Protocol Subgraph",this.context=void 0,this.context={...Ce,...e}}getTotals(e={}){try{return Promise.resolve(this.runQuery(wd,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(Td,{days:e},t))}catch(e){return Promise.reject(e)}}getLastHoursVolume(e,t={}){try{return Promise.resolve(this.runQuery(Ed,{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(l.request(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 E(`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?Id:xd}},exports.TOKEN_LIST_IMAGES_PATH=N,exports.TWAP_ADDRESS=Zd,exports.TradingSdk=gl,exports.Twap=ah,exports.WRAPPED_NATIVE_CURRENCIES=R,exports.areHooksEqual=Al,exports.assertIsBridgeQuoteAndPost=function(e){if(!y(e))throw new Error("Quote result is not of type BridgeQuoteAndPost. Are you sure the sell and buy chains different?")},exports.assertIsQuoteAndPost=function(e){if(!g(e))throw new Error("Quote result is not of type QuoteAndPost. Are you sure the sell and buy chains are the same?")},exports.buildAppData=Pt,exports.calculateUniqueOrderId=ut,exports.createSetDomainVerifierTx=function(e,t){return yt.createInterface().encodeFunctionData("setDomainVerifier",[e,t])},exports.createWeirollContract=fd,exports.createWeirollDelegateCall=pd,exports.createWeirollLibrary=function(e){return u.Contract.createLibrary(e)},exports.decodeParams=Fd,exports.enableLogging=Ie,exports.encodeParams=Bd,exports.formatEpoch=Ud,exports.fromStructToOrder=qd,exports.generateAppDataFromDoc=kt,exports.getBigNumber=Xe,exports.getBlockInfo=Pd,exports.getChainInfo=function(e){return Ze(e)?ee[e]:$e(e)?ne[e]:void 0},exports.getDomainVerifier=function(e,t,r,n){try{const i=yt.connect(me[r],n);return Promise.resolve(i.callStatic.domainVerifiers(e,t))}catch(e){return Promise.reject(e)}},exports.getEthFlowTransaction=St,exports.getHookMockForCostEstimation=vl,exports.getIsValidResult=jd,exports.getOrderToSign=at,exports.getPostHooks=b,exports.getPreSignTransaction=yl,exports.getQuote=dl,exports.getQuoteAmountsAndCosts=Ye,exports.getQuoteWithSigner=cl,exports.isAdditionalTargetChain=$e,exports.isAppDoc=v,exports.isBridgeQuoteAndPost=y,exports.isComposableCow=function(e,t){return e===ye[t]},exports.isExtensibleFallbackHandler=function(e,t){return e===me[t]},exports.isQuoteAndPost=g,exports.isSupportedChain=Ze,exports.isTargetChainId=function(e){return Ze(e)||$e(e)},exports.isValidAbi=Ld,exports.mapAddressToSupportedNetworks=ae,exports.mapQuoteAmountsAndCosts=function(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)}},exports.mapSupportedNetworks=se,exports.mergeAppDataDoc=Ct,exports.nativeCurrencyTemplate=O,exports.postCoWProtocolTrade=xt,exports.postLimitOrder=ml,exports.postSellNativeCurrencyOrder=It,exports.postSwapOrder=fl,exports.postSwapOrderFromQuote=pl,exports.request=S,exports.swapParamsToLimitOrderParams=vt,exports.transformDataToStruct=uh,exports.transformStructToData=lh;
29
29
  //# sourceMappingURL=index.js.map